Un-ignored: the dev drive is the ground truth the restoration and emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio content). Kept in-repo for the pod-owner community. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
464 lines
25 KiB
ArmAsm
464 lines
25 KiB
ArmAsm
|
|
Module: linkio.c
|
|
Group: 'DGROUP' CONST,CONST2,_DATA,_BSS
|
|
|
|
Segment: _TEXT BYTE USE32 00000479 bytes
|
|
0000 68 24 00 00 00 linkio_error_ push 00000024H
|
|
0005 e8 00 00 00 00 call __CHK
|
|
000a 53 push ebx
|
|
000b 51 push ecx
|
|
000c 52 push edx
|
|
000d 56 push esi
|
|
000e 57 push edi
|
|
000f 55 push ebp
|
|
0010 89 e5 mov ebp,esp
|
|
0012 81 ec 04 00 00 00 sub esp,00000004H
|
|
0018 89 45 fc mov -4H[ebp],eax
|
|
001b ff 75 fc push -4H[ebp]
|
|
001e e8 00 00 00 00 call printf_
|
|
0023 83 c4 04 add esp,00000004H
|
|
0026 c7 05 00 00 00 00
|
|
01 00 00 00 mov dword ptr ___connected,00000001H
|
|
0030 89 ec mov esp,ebp
|
|
0032 5d pop ebp
|
|
0033 5f pop edi
|
|
0034 5e pop esi
|
|
0035 5a pop edx
|
|
0036 59 pop ecx
|
|
0037 5b pop ebx
|
|
0038 c3 ret
|
|
0039 68 20 00 00 00 setLA_ push 00000020H
|
|
003e e8 00 00 00 00 call __CHK
|
|
0043 53 push ebx
|
|
0044 51 push ecx
|
|
0045 52 push edx
|
|
0046 56 push esi
|
|
0047 57 push edi
|
|
0048 55 push ebp
|
|
0049 89 e5 mov ebp,esp
|
|
004b 81 ec 04 00 00 00 sub esp,00000004H
|
|
0051 89 45 fc mov -4H[ebp],eax
|
|
0054 8b 45 fc mov eax,-4H[ebp]
|
|
0057 a3 00 00 00 00 mov _inputData,eax
|
|
005c a1 00 00 00 00 mov eax,_inputData
|
|
0061 40 inc eax
|
|
0062 a3 00 00 00 00 mov _outputData,eax
|
|
0067 a1 00 00 00 00 mov eax,_outputData
|
|
006c 40 inc eax
|
|
006d a3 00 00 00 00 mov _inputStatus,eax
|
|
0072 a1 00 00 00 00 mov eax,_inputStatus
|
|
0077 40 inc eax
|
|
0078 a3 00 00 00 00 mov _outputStatus,eax
|
|
007d 8b 45 fc mov eax,-4H[ebp]
|
|
0080 83 c0 10 add eax,00000010H
|
|
0083 a3 00 00 00 00 mov _resetRoot,eax
|
|
0088 a1 00 00 00 00 mov eax,_resetRoot
|
|
008d 40 inc eax
|
|
008e a3 00 00 00 00 mov _analyseRoot,eax
|
|
0093 89 ec mov esp,ebp
|
|
0095 5d pop ebp
|
|
0096 5f pop edi
|
|
0097 5e pop esi
|
|
0098 5a pop edx
|
|
0099 59 pop ecx
|
|
009a 5b pop ebx
|
|
009b c3 ret
|
|
009c 68 1c 00 00 00 initLA_ push 0000001cH
|
|
00a1 e8 00 00 00 00 call __CHK
|
|
00a6 53 push ebx
|
|
00a7 51 push ecx
|
|
00a8 52 push edx
|
|
00a9 56 push esi
|
|
00aa 57 push edi
|
|
00ab 55 push ebp
|
|
00ac 89 e5 mov ebp,esp
|
|
00ae 81 ec 00 00 00 00 sub esp,00000000H
|
|
00b4 5d pop ebp
|
|
00b5 5f pop edi
|
|
00b6 5e pop esi
|
|
00b7 5a pop edx
|
|
00b8 59 pop ecx
|
|
00b9 5b pop ebx
|
|
00ba c3 ret
|
|
00bb 68 2c 00 00 00 outputOrFail_ push 0000002cH
|
|
00c0 e8 00 00 00 00 call __CHK
|
|
00c5 53 push ebx
|
|
00c6 51 push ecx
|
|
00c7 52 push edx
|
|
00c8 56 push esi
|
|
00c9 57 push edi
|
|
00ca 55 push ebp
|
|
00cb 89 e5 mov ebp,esp
|
|
00cd 81 ec 0c 00 00 00 sub esp,0000000cH
|
|
00d3 88 45 fc mov -4H[ebp],al
|
|
00d6 83 3d 00 00 00 00
|
|
00 cmp dword ptr ___connected,00000000H
|
|
00dd 74 4d je L6
|
|
00df 31 d2 xor edx,edx
|
|
00e1 8a 55 fc mov dl,-4H[ebp]
|
|
00e4 a1 00 00 00 00 mov eax,_outputData
|
|
00e9 e8 00 00 00 00 call outp_
|
|
00ee c7 45 f8 00 00 00
|
|
00 mov dword ptr -8H[ebp],00000000H
|
|
00f5 81 7d f8 40 9c 00
|
|
00 L1 cmp dword ptr -8H[ebp],00009c40H
|
|
00fc 7c 07 jl L3
|
|
00fe eb 1e jmp L5
|
|
0100 ff 45 f8 L2 inc dword ptr -8H[ebp]
|
|
0103 eb f0 jmp L1
|
|
0105 a1 00 00 00 00 L3 mov eax,_outputStatus
|
|
010a e8 00 00 00 00 call inp_
|
|
010f a8 01 test al,01H
|
|
0111 74 09 je L4
|
|
0113 c7 45 f4 01 00 00
|
|
00 mov dword ptr -0cH[ebp],00000001H
|
|
011a eb 17 jmp L7
|
|
011c eb e2 L4 jmp L2
|
|
011e b8 00 00 00 00 L5 mov eax,offset L41
|
|
0123 50 push eax
|
|
0124 e8 00 00 00 00 call printf_
|
|
0129 83 c4 04 add esp,00000004H
|
|
012c c7 45 f4 00 00 00
|
|
00 L6 mov dword ptr -0cH[ebp],00000000H
|
|
0133 8b 45 f4 L7 mov eax,-0cH[ebp]
|
|
0136 89 ec mov esp,ebp
|
|
0138 5d pop ebp
|
|
0139 5f pop edi
|
|
013a 5e pop esi
|
|
013b 5a pop edx
|
|
013c 59 pop ecx
|
|
013d 5b pop ebx
|
|
013e c3 ret
|
|
013f 68 28 00 00 00 inputOrFail_ push 00000028H
|
|
0144 e8 00 00 00 00 call __CHK
|
|
0149 53 push ebx
|
|
014a 51 push ecx
|
|
014b 52 push edx
|
|
014c 56 push esi
|
|
014d 57 push edi
|
|
014e 55 push ebp
|
|
014f 89 e5 mov ebp,esp
|
|
0151 81 ec 0c 00 00 00 sub esp,0000000cH
|
|
0157 89 45 f4 mov -0cH[ebp],eax
|
|
015a 83 3d 00 00 00 00
|
|
00 cmp dword ptr ___connected,00000000H
|
|
0161 74 54 je L13
|
|
0163 c7 45 fc 00 00 00
|
|
00 mov dword ptr -4H[ebp],00000000H
|
|
016a 81 7d fc 40 9c 00
|
|
00 L8 cmp dword ptr -4H[ebp],00009c40H
|
|
0171 7c 07 jl L10
|
|
0173 eb 2f jmp L12
|
|
0175 ff 45 fc L9 inc dword ptr -4H[ebp]
|
|
0178 eb f0 jmp L8
|
|
017a a1 00 00 00 00 L10 mov eax,_inputStatus
|
|
017f e8 00 00 00 00 call inp_
|
|
0184 a8 01 test al,01H
|
|
0186 74 1a je L11
|
|
0188 a1 00 00 00 00 mov eax,_inputData
|
|
018d e8 00 00 00 00 call inp_
|
|
0192 89 c2 mov edx,eax
|
|
0194 8b 45 f4 mov eax,-0cH[ebp]
|
|
0197 88 10 mov [eax],dl
|
|
0199 c7 45 f8 01 00 00
|
|
00 mov dword ptr -8H[ebp],00000001H
|
|
01a0 eb 1c jmp L14
|
|
01a2 eb d1 L11 jmp L9
|
|
01a4 b8 16 00 00 00 L12 mov eax,offset L42
|
|
01a9 e8 00 00 00 00 call linkio_error_
|
|
01ae c7 45 f8 00 00 00
|
|
00 mov dword ptr -8H[ebp],00000000H
|
|
01b5 eb 07 jmp L14
|
|
01b7 c7 45 f8 00 00 00
|
|
00 L13 mov dword ptr -8H[ebp],00000000H
|
|
01be 8b 45 f8 L14 mov eax,-8H[ebp]
|
|
01c1 89 ec mov esp,ebp
|
|
01c3 5d pop ebp
|
|
01c4 5f pop edi
|
|
01c5 5e pop esi
|
|
01c6 5a pop edx
|
|
01c7 59 pop ecx
|
|
01c8 5b pop ebx
|
|
01c9 c3 ret
|
|
01ca 68 20 00 00 00 resetLoop_ push 00000020H
|
|
01cf e8 00 00 00 00 call __CHK
|
|
01d4 53 push ebx
|
|
01d5 51 push ecx
|
|
01d6 52 push edx
|
|
01d7 56 push esi
|
|
01d8 57 push edi
|
|
01d9 55 push ebp
|
|
01da 89 e5 mov ebp,esp
|
|
01dc 81 ec 04 00 00 00 sub esp,00000004H
|
|
01e2 e8 00 00 00 00 call clock_
|
|
01e7 89 45 fc mov -4H[ebp],eax
|
|
01ea e8 00 00 00 00 L15 call clock_
|
|
01ef 3b 45 fc cmp eax,-4H[ebp]
|
|
01f2 74 f6 je L15
|
|
01f4 e8 00 00 00 00 L16 call clock_
|
|
01f9 3b 45 fc cmp eax,-4H[ebp]
|
|
01fc 74 f6 je L16
|
|
01fe 89 ec mov esp,ebp
|
|
0200 5d pop ebp
|
|
0201 5f pop edi
|
|
0202 5e pop esi
|
|
0203 5a pop edx
|
|
0204 59 pop ecx
|
|
0205 5b pop ebx
|
|
0206 c3 ret
|
|
0207 68 1c 00 00 00 reset_ push 0000001cH
|
|
020c e8 00 00 00 00 call __CHK
|
|
0211 53 push ebx
|
|
0212 51 push ecx
|
|
0213 52 push edx
|
|
0214 56 push esi
|
|
0215 57 push edi
|
|
0216 55 push ebp
|
|
0217 89 e5 mov ebp,esp
|
|
0219 81 ec 00 00 00 00 sub esp,00000000H
|
|
021f 31 d2 xor edx,edx
|
|
0221 a1 00 00 00 00 mov eax,_analyseRoot
|
|
0226 e8 00 00 00 00 call outp_
|
|
022b 31 d2 xor edx,edx
|
|
022d a1 00 00 00 00 mov eax,_resetRoot
|
|
0232 e8 00 00 00 00 call outp_
|
|
0237 e8 00 00 00 00 call resetLoop_
|
|
023c ba 01 00 00 00 mov edx,00000001H
|
|
0241 a1 00 00 00 00 mov eax,_resetRoot
|
|
0246 e8 00 00 00 00 call outp_
|
|
024b e8 00 00 00 00 call resetLoop_
|
|
0250 31 d2 xor edx,edx
|
|
0252 a1 00 00 00 00 mov eax,_outputStatus
|
|
0257 e8 00 00 00 00 call outp_
|
|
025c 31 d2 xor edx,edx
|
|
025e a1 00 00 00 00 mov eax,_inputStatus
|
|
0263 e8 00 00 00 00 call outp_
|
|
0268 31 d2 xor edx,edx
|
|
026a a1 00 00 00 00 mov eax,_resetRoot
|
|
026f e8 00 00 00 00 call outp_
|
|
0274 5d pop ebp
|
|
0275 5f pop edi
|
|
0276 5e pop esi
|
|
0277 5a pop edx
|
|
0278 59 pop ecx
|
|
0279 5b pop ebx
|
|
027a c3 ret
|
|
027b 68 34 00 00 00 outRecord_ push 00000034H
|
|
0280 e8 00 00 00 00 call __CHK
|
|
0285 53 push ebx
|
|
0286 51 push ecx
|
|
0287 56 push esi
|
|
0288 57 push edi
|
|
0289 55 push ebp
|
|
028a 89 e5 mov ebp,esp
|
|
028c 81 ec 1c 00 00 00 sub esp,0000001cH
|
|
0292 89 45 e4 mov -1cH[ebp],eax
|
|
0295 89 55 e8 mov -18H[ebp],edx
|
|
0298 e8 00 00 00 00 call clock_
|
|
029d 89 45 f0 mov -10H[ebp],eax
|
|
02a0 83 3d 00 00 00 00
|
|
00 cmp dword ptr ___connected,00000000H
|
|
02a7 0f 84 89 00 00 00 je L27
|
|
02ad c7 45 f8 00 00 00
|
|
00 mov dword ptr -8H[ebp],00000000H
|
|
02b4 8b 45 f8 L17 mov eax,-8H[ebp]
|
|
02b7 3b 45 e8 cmp eax,-18H[ebp]
|
|
02ba 7c 0a jl L19
|
|
02bc e9 6c 00 00 00 jmp L26
|
|
02c1 ff 45 f8 L18 inc dword ptr -8H[ebp]
|
|
02c4 eb ee jmp L17
|
|
02c6 c7 45 fc 00 00 00
|
|
00 L19 mov dword ptr -4H[ebp],00000000H
|
|
02cd eb 05 L20 jmp L22
|
|
02cf ff 45 fc L21 inc dword ptr -4H[ebp]
|
|
02d2 eb f9 jmp L20
|
|
02d4 a1 00 00 00 00 L22 mov eax,_outputStatus
|
|
02d9 e8 00 00 00 00 call inp_
|
|
02de a8 01 test al,01H
|
|
02e0 74 16 je L23
|
|
02e2 8b 45 e4 mov eax,-1cH[ebp]
|
|
02e5 ff 45 e4 inc dword ptr -1cH[ebp]
|
|
02e8 31 d2 xor edx,edx
|
|
02ea 8a 10 mov dl,[eax]
|
|
02ec a1 00 00 00 00 mov eax,_outputData
|
|
02f1 e8 00 00 00 00 call outp_
|
|
02f6 eb 33 jmp L25
|
|
02f8 81 7d fc 40 9c 00
|
|
00 L23 cmp dword ptr -4H[ebp],00009c40H
|
|
02ff 7c 28 jl L24
|
|
0301 c7 45 fc 00 00 00
|
|
00 mov dword ptr -4H[ebp],00000000H
|
|
0308 e8 00 00 00 00 call clock_
|
|
030d 89 45 f4 mov -0cH[ebp],eax
|
|
0310 8b 45 f4 mov eax,-0cH[ebp]
|
|
0313 2b 45 f0 sub eax,-10H[ebp]
|
|
0316 3d f4 01 00 00 cmp eax,000001f4H
|
|
031b 76 0c jbe L24
|
|
031d b8 2b 00 00 00 mov eax,offset L43
|
|
0322 e8 00 00 00 00 call linkio_error_
|
|
0327 eb 0d jmp L27
|
|
0329 eb a4 L24 jmp L21
|
|
032b eb 94 L25 jmp L18
|
|
032d c7 45 ec 01 00 00
|
|
00 L26 mov dword ptr -14H[ebp],00000001H
|
|
0334 eb 07 jmp L28
|
|
0336 c7 45 ec 00 00 00
|
|
00 L27 mov dword ptr -14H[ebp],00000000H
|
|
033d 8b 45 ec L28 mov eax,-14H[ebp]
|
|
0340 89 ec mov esp,ebp
|
|
0342 5d pop ebp
|
|
0343 5f pop edi
|
|
0344 5e pop esi
|
|
0345 59 pop ecx
|
|
0346 5b pop ebx
|
|
0347 c3 ret
|
|
0348 68 34 00 00 00 inRecord_ push 00000034H
|
|
034d e8 00 00 00 00 call __CHK
|
|
0352 53 push ebx
|
|
0353 51 push ecx
|
|
0354 56 push esi
|
|
0355 57 push edi
|
|
0356 55 push ebp
|
|
0357 89 e5 mov ebp,esp
|
|
0359 81 ec 1c 00 00 00 sub esp,0000001cH
|
|
035f 89 45 e4 mov -1cH[ebp],eax
|
|
0362 89 55 e8 mov -18H[ebp],edx
|
|
0365 e8 00 00 00 00 call clock_
|
|
036a 89 45 f0 mov -10H[ebp],eax
|
|
036d 83 3d 00 00 00 00
|
|
00 cmp dword ptr ___connected,00000000H
|
|
0374 0f 84 87 00 00 00 je L39
|
|
037a c7 45 fc 00 00 00
|
|
00 mov dword ptr -4H[ebp],00000000H
|
|
0381 8b 45 fc L29 mov eax,-4H[ebp]
|
|
0384 3b 45 e8 cmp eax,-18H[ebp]
|
|
0387 7c 0a jl L31
|
|
0389 e9 6a 00 00 00 jmp L38
|
|
038e ff 45 fc L30 inc dword ptr -4H[ebp]
|
|
0391 eb ee jmp L29
|
|
0393 c7 45 f8 00 00 00
|
|
00 L31 mov dword ptr -8H[ebp],00000000H
|
|
039a eb 05 L32 jmp L34
|
|
039c ff 45 f8 L33 inc dword ptr -8H[ebp]
|
|
039f eb f9 jmp L32
|
|
03a1 a1 00 00 00 00 L34 mov eax,_inputStatus
|
|
03a6 e8 00 00 00 00 call inp_
|
|
03ab a8 01 test al,01H
|
|
03ad 74 14 je L35
|
|
03af a1 00 00 00 00 mov eax,_inputData
|
|
03b4 e8 00 00 00 00 call inp_
|
|
03b9 8b 55 e4 mov edx,-1cH[ebp]
|
|
03bc ff 45 e4 inc dword ptr -1cH[ebp]
|
|
03bf 88 02 mov [edx],al
|
|
03c1 eb 33 jmp L37
|
|
03c3 81 7d f8 40 9c 00
|
|
00 L35 cmp dword ptr -8H[ebp],00009c40H
|
|
03ca 7c 28 jl L36
|
|
03cc c7 45 f8 00 00 00
|
|
00 mov dword ptr -8H[ebp],00000000H
|
|
03d3 e8 00 00 00 00 call clock_
|
|
03d8 89 45 f4 mov -0cH[ebp],eax
|
|
03db 8b 45 f4 mov eax,-0cH[ebp]
|
|
03de 2b 45 f0 sub eax,-10H[ebp]
|
|
03e1 3d f4 01 00 00 cmp eax,000001f4H
|
|
03e6 76 0c jbe L36
|
|
03e8 b8 41 00 00 00 mov eax,offset L44
|
|
03ed e8 00 00 00 00 call linkio_error_
|
|
03f2 eb 0d jmp L39
|
|
03f4 eb a6 L36 jmp L33
|
|
03f6 eb 96 L37 jmp L30
|
|
03f8 c7 45 ec 01 00 00
|
|
00 L38 mov dword ptr -14H[ebp],00000001H
|
|
03ff eb 07 jmp L40
|
|
0401 c7 45 ec 00 00 00
|
|
00 L39 mov dword ptr -14H[ebp],00000000H
|
|
0408 8b 45 ec L40 mov eax,-14H[ebp]
|
|
040b 89 ec mov esp,ebp
|
|
040d 5d pop ebp
|
|
040e 5f pop edi
|
|
040f 5e pop esi
|
|
0410 59 pop ecx
|
|
0411 5b pop ebx
|
|
0412 c3 ret
|
|
0413 68 24 00 00 00 inputReady_ push 00000024H
|
|
0418 e8 00 00 00 00 call __CHK
|
|
041d 53 push ebx
|
|
041e 51 push ecx
|
|
041f 52 push edx
|
|
0420 56 push esi
|
|
0421 57 push edi
|
|
0422 55 push ebp
|
|
0423 89 e5 mov ebp,esp
|
|
0425 81 ec 08 00 00 00 sub esp,00000008H
|
|
042b a1 00 00 00 00 mov eax,_inputStatus
|
|
0430 e8 00 00 00 00 call inp_
|
|
0435 83 e0 01 and eax,00000001H
|
|
0438 89 45 fc mov -4H[ebp],eax
|
|
043b 8b 45 fc mov eax,-4H[ebp]
|
|
043e 89 45 f8 mov -8H[ebp],eax
|
|
0441 8b 45 f8 mov eax,-8H[ebp]
|
|
0444 89 ec mov esp,ebp
|
|
0446 5d pop ebp
|
|
0447 5f pop edi
|
|
0448 5e pop esi
|
|
0449 5a pop edx
|
|
044a 59 pop ecx
|
|
044b 5b pop ebx
|
|
044c c3 ret
|
|
044d 68 20 00 00 00 altRecord_ push 00000020H
|
|
0452 e8 00 00 00 00 call __CHK
|
|
0457 53 push ebx
|
|
0458 51 push ecx
|
|
0459 52 push edx
|
|
045a 56 push esi
|
|
045b 57 push edi
|
|
045c 55 push ebp
|
|
045d 89 e5 mov ebp,esp
|
|
045f 81 ec 04 00 00 00 sub esp,00000004H
|
|
0465 e8 00 00 00 00 call inputReady_
|
|
046a 89 45 fc mov -4H[ebp],eax
|
|
046d 8b 45 fc mov eax,-4H[ebp]
|
|
0470 89 ec mov esp,ebp
|
|
0472 5d pop ebp
|
|
0473 5f pop edi
|
|
0474 5e pop esi
|
|
0475 5a pop edx
|
|
0476 59 pop ecx
|
|
0477 5b pop ebx
|
|
0478 c3 ret
|
|
|
|
No disassembly errors
|
|
|
|
------------------------------------------------------------
|
|
|
|
Segment: CONST DWORD USE32 00000056 bytes
|
|
0000 46 61 69 6c 20 69 6e 20 L41 - Fail in
|
|
0008 6f 75 74 70 75 74 4f 72 - outputOr
|
|
0010 46 61 69 6c 0a 00 - Fail..
|
|
0016 46 61 69 6c 20 69 6e 20 L42 - Fail in
|
|
001e 69 6e 70 75 74 4f 72 46 - inputOrF
|
|
0026 61 69 6c 0a 00 - ail..
|
|
002b 74 69 6d 65 6f 75 74 20 L43 - timeout
|
|
0033 69 6e 20 6f 75 74 52 65 - in outRe
|
|
003b 63 6f 72 64 0a 00 - cord..
|
|
0041 74 69 6d 65 6f 75 74 20 L44 - timeout
|
|
0049 69 6e 20 69 6e 52 65 63 - in inRec
|
|
0051 6f 72 64 0a 00 - ord..
|
|
|
|
No disassembly errors
|
|
|
|
------------------------------------------------------------
|
|
|
|
Segment: _DATA DWORD USE32 00000004 bytes
|
|
0000 01 00 00 00 ___connected - ....
|
|
|
|
No disassembly errors
|
|
|
|
------------------------------------------------------------
|
|
|
|
Segment: _BSS DWORD USE32 0000001c bytes
|
|
|
|
No disassembly errors
|
|
|
|
------------------------------------------------------------
|