.text:08000000 ; .text:08000000 ; 浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 .text:08000000 ; This file is generated by The Interactive Disassembler (IDA) .text:08000000 ; Licensed to: Jason Duerstock (1-user license) .text:08000000 ; Copyright (c) 1999 by DataRescue sa/nv, .text:08000000 ; 藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 .text:08000000 ; .text:08000000 ; File Name : flobj.obj .text:08000000 ; Format : ELF (Relocatable) .text:08000000 ; .text:08000000 ; Source File : 'flsyslnx.c' .text:08000000 ; Source File : 'flcustom.c' .text:08000000 ; Source File : 'docsoc.c' .text:08000000 ; Source File : 'dosformt.c' .text:08000000 ; Source File : 'flbase.c' .text:08000000 ; Source File : 'flflash.c' .text:08000000 ; Source File : 'flsocket.c' .text:08000000 ; Source File : 'fltl.c' .text:08000000 ; Source File : 'diskonc.c' .text:08000000 ; Source File : 'nftllite.c' .text:08000000 ; Source File : 'blockdev.c' .text:08000000 ; Source File : 'reedsol.c' .text:08000000 .text:08000000 model flat .text:08000000 .text:08000000 ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 .text:08000000 .text:08000000 ; Segment type: Pure code .text:08000000 ; Segment permissions: Read/Execute .text:08000000 _text segment dword public 'CODE' use32 .text:08000000 assume cs:_text .text:08000000 ;org 8000000h .text:08000000 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing .text:08000000 .text:08000000 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000000 .text:08000000 .text:08000000 public flSysfunInit .text:08000000 flSysfunInit proc near ; CODE XREF: flInit+4Ap .text:08000000 retn ; Alternative name is 'gcc2_compiled.' .text:08000000 flSysfunInit endp .text:08000000 .text:08000000 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000001 align 4 .text:08000004 .text:08000004 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000004 .text:08000004 .text:08000004 public flCreateMutex .text:08000004 flCreateMutex proc near ; CODE XREF: flInit+29p .text:08000004 xor eax, eax .text:08000006 retn .text:08000006 flCreateMutex endp .text:08000006 .text:08000006 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000007 align 4 .text:08000008 .text:08000008 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000008 .text:08000008 .text:08000008 public flDeleteMutex .text:08000008 flDeleteMutex proc near ; CODE XREF: flExit+45p .text:08000008 retn .text:08000008 flDeleteMutex endp .text:08000008 .text:08000008 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000009 align 4 .text:0800000C .text:0800000C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800000C .text:0800000C .text:0800000C public flTakeMutex .text:0800000C flTakeMutex proc near ; CODE XREF: setBusy+16p .text:0800000C mov eax, 1 .text:08000011 retn .text:08000011 flTakeMutex endp .text:08000011 .text:08000011 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000012 align 4 .text:08000014 .text:08000014 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000014 .text:08000014 .text:08000014 public flFreeMutex .text:08000014 flFreeMutex proc near ; CODE XREF: setBusy+99p .text:08000014 ; flExit+3Fp .text:08000014 retn .text:08000014 flFreeMutex endp .text:08000014 .text:08000014 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000015 align 4 .text:08000018 .text:08000018 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000018 .text:08000018 .text:08000018 public flRegisterComponents .text:08000018 flRegisterComponents proc near ; CODE XREF: flInit+55p .text:08000018 push ebx ; Alternative name is 'gcc2_compiled.' .text:08000019 push 0 .text:0800001B push 0 .text:0800001D call flRegisterDOCSOC .text:08000022 mov ebx, eax .text:08000024 add esp, 8 .text:08000027 test ebx, ebx .text:08000029 jz short loc_0_8000034 .text:0800002B mov eax, 3Ch .text:08000030 jmp short loc_0_8000040 .text:08000030 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000032 align 4 .text:08000034 .text:08000034 loc_0_8000034: ; CODE XREF: flRegisterComponents+11j .text:08000034 call flRegisterDOC2000 .text:08000039 call flRegisterNFTL .text:0800003E mov eax, ebx .text:08000040 .text:08000040 loc_0_8000040: ; CODE XREF: flRegisterComponents+18j .text:08000040 pop ebx .text:08000041 retn .text:08000041 flRegisterComponents endp .text:08000041 .text:08000041 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000042 align 4 .text:08000044 .text:08000044 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000044 .text:08000044 .text:08000044 cardDetected proc near ; DATA XREF: flRegisterDOCSOC+4Fo .text:08000044 mov eax, 1 ; Alternative name is 'gcc2_compiled.' .text:08000049 retn .text:08000049 cardDetected endp .text:08000049 .text:08000049 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800004A align 4 .text:0800004C .text:0800004C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800004C .text:0800004C .text:0800004C VccOn proc near ; DATA XREF: flRegisterDOCSOC+56o .text:0800004C retn .text:0800004C VccOn endp .text:0800004C .text:0800004C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800004D align 4 .text:08000050 .text:08000050 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000050 .text:08000050 .text:08000050 VccOff proc near ; DATA XREF: flRegisterDOCSOC+5Do .text:08000050 retn .text:08000050 VccOff endp .text:08000050 .text:08000050 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000051 align 4 .text:08000054 .text:08000054 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000054 .text:08000054 .text:08000054 initSocket proc near ; DATA XREF: flRegisterDOCSOC+64o .text:08000054 xor eax, eax .text:08000056 retn .text:08000056 initSocket endp .text:08000056 .text:08000056 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000057 align 4 .text:08000058 .text:08000058 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000058 .text:08000058 .text:08000058 setWindow proc near ; DATA XREF: flRegisterDOCSOC+6Bo .text:08000058 retn .text:08000058 setWindow endp .text:08000058 .text:08000058 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000059 align 4 .text:0800005C .text:0800005C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800005C .text:0800005C .text:0800005C setMappingContext proc near ; DATA XREF: flRegisterDOCSOC+72o .text:0800005C retn .text:0800005C setMappingContext endp .text:0800005C .text:0800005C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800005D align 4 .text:08000060 .text:08000060 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000060 .text:08000060 .text:08000060 getAndClearCardChangeIndicator proc near ; DATA XREF: flRegisterDOCSOC+79o .text:08000060 xor eax, eax .text:08000062 retn .text:08000062 getAndClearCardChangeIndicator endp .text:08000062 .text:08000062 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000063 align 4 .text:08000064 .text:08000064 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000064 .text:08000064 .text:08000064 writeProtected proc near ; DATA XREF: flRegisterDOCSOC+80o .text:08000064 xor eax, eax .text:08000066 retn .text:08000066 writeProtected endp .text:08000066 .text:08000066 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000067 align 4 .text:08000068 .text:08000068 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000068 .text:08000068 .text:08000068 freeSocket proc near ; DATA XREF: flRegisterDOCSOC+8Eo .text:08000068 retn .text:08000068 freeSocket endp .text:08000068 .text:08000068 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000069 align 4 .text:0800006C .text:0800006C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800006C .text:0800006C .text:0800006C public flRegisterDOCSOC .text:0800006C flRegisterDOCSOC proc near ; CODE XREF: flRegisterComponents+5p .text:0800006C .text:0800006C arg_0 = dword ptr 14h .text:0800006C arg_4 = dword ptr 18h .text:0800006C .text:0800006C push ebp .text:0800006D push edi .text:0800006E push esi .text:0800006F push ebx .text:08000070 mov eax, noOfDrives .text:08000075 mov ebp, [esp+arg_0] .text:08000079 mov edi, [esp+arg_4] .text:0800007D test eax, eax .text:0800007F jz short loc_0_800008C .text:08000081 mov eax, 66h .text:08000086 jmp loc_0_8000119 .text:08000086 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800008B align 4 .text:0800008C .text:0800008C loc_0_800008C: ; CODE XREF: flRegisterDOCSOC+13j .text:0800008C mov esi, eax .text:0800008E mov esi, esi .text:08000090 .text:08000090 loc_0_8000090: ; CODE XREF: flRegisterDOCSOC+9Cj .text:08000090 mov eax, noOfDrives .text:08000095 push eax .text:08000096 call flSocketOf .text:0800009B mov ebx, eax .text:0800009D mov [ebx], esi .text:0800009F push 2 .text:080000A1 push ebx .text:080000A2 call flSetWindowSize .text:080000A7 push edi .text:080000A8 push ebp .text:080000A9 mov eax, [ebx] .text:080000AB push eax .text:080000AC call flDocWindowBaseAddress .text:080000B1 mov [ebx+28h], eax .text:080000B4 add esp, 18h .text:080000B7 test eax, eax .text:080000B9 jz short loc_0_800010A .text:080000BB mov dword ptr [ebx+40h], offset cardDetected .text:080000C2 mov dword ptr [ebx+44h], offset VccOn .text:080000C9 mov dword ptr [ebx+48h], offset VccOff .text:080000D0 mov dword ptr [ebx+4Ch], offset initSocket .text:080000D7 mov dword ptr [ebx+50h], offset setWindow .text:080000DE mov dword ptr [ebx+54h], offset setMappingContext .text:080000E5 mov dword ptr [ebx+58h], offset getAndClearCardChangeIndicator .text:080000EC mov dword ptr [ebx+5Ch], offset writeProtected .text:080000F3 mov dword ptr [ebx+60h], 0 .text:080000FA mov dword ptr [ebx+64h], offset freeSocket .text:08000101 inc esi .text:08000102 inc noOfDrives .text:08000108 jz short loc_0_8000090 .text:0800010A .text:0800010A loc_0_800010A: ; CODE XREF: flRegisterDOCSOC+4Dj .text:0800010A test esi, esi .text:0800010C jz short loc_0_8000114 .text:0800010E xor eax, eax .text:08000110 jmp short loc_0_8000119 .text:08000110 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000112 align 4 .text:08000114 .text:08000114 loc_0_8000114: ; CODE XREF: flRegisterDOCSOC+A0j .text:08000114 mov eax, 3Ch .text:08000119 .text:08000119 loc_0_8000119: ; CODE XREF: flRegisterDOCSOC+1Aj .text:08000119 ; flRegisterDOCSOC+A4j .text:08000119 pop ebx .text:0800011A pop esi .text:0800011B pop edi .text:0800011C pop ebp .text:0800011D retn .text:0800011D flRegisterDOCSOC endp .text:0800011D .text:0800011D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800011E align 4 .text:08000120 .text:08000120 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000120 .text:08000120 .text:08000120 getDriveGeometry proc near ; CODE XREF: flDosFormat+1Dp .text:08000120 .text:08000120 var_1C = dword ptr -1Ch .text:08000120 var_18 = dword ptr -18h .text:08000120 var_14 = dword ptr -14h .text:08000120 var_10 = dword ptr -10h .text:08000120 var_C = dword ptr -0Ch .text:08000120 var_8 = dword ptr -8 .text:08000120 var_4 = dword ptr -4 .text:08000120 arg_0 = dword ptr 4 .text:08000120 arg_4 = dword ptr 8 .text:08000120 arg_8 = dword ptr 0Ch .text:08000120 arg_C = byte ptr 10h .text:08000120 .text:08000120 sub esp, 1Ch ; Alternative name is 'gcc2_compiled.' .text:08000123 push ebp .text:08000124 push edi .text:08000125 push esi .text:08000126 push ebx .text:08000127 mov eax, [esp+2Ch+arg_0] .text:0800012B mov [esp+2Ch+var_4], 4 .text:08000133 mov eax, [eax] .text:08000135 mov edi, [esp+2Ch+arg_4] .text:08000139 mov [esp+2Ch+var_14], eax .text:0800013D mov esi, [esp+2Ch+arg_8] .text:08000141 push eax .text:08000142 mov edx, [esp+30h+arg_0] .text:08000146 mov edx, [edx+24h] .text:08000149 mov eax, edx .text:0800014B mov [esp+30h+var_18], edx .text:0800014F call eax .text:08000151 mov [esp+30h+var_C], eax .text:08000155 mov ebx, 10h .text:0800015A mov dword ptr [esi], 400h .text:08000160 mov ecx, 4000h .text:08000165 mov eax, [esp+30h+var_C] .text:08000169 add esp, 4 .text:0800016C xor edx, edx .text:0800016E div ecx .text:08000170 mov ebp, eax .text:08000172 mov ecx, edx .text:08000174 test ecx, ecx .text:08000176 jz short loc_0_800019E .text:08000178 inc ebp .text:08000179 mov ecx, ebp .text:0800017B mov eax, [esp+2Ch+var_C] .text:0800017F shl ecx, 0Ah .text:08000182 xor edx, edx .text:08000184 div ecx .text:08000186 mov ebx, eax .text:08000188 test edx, edx .text:0800018A jz short loc_0_800019E .text:0800018C inc ebx .text:0800018D mov ecx, ebx .text:0800018F mov eax, [esp+2Ch+var_C] .text:08000193 imul ecx, ebp .text:08000196 xor edx, edx .text:08000198 div ecx .text:0800019A mov ecx, eax .text:0800019C mov [esi], ecx .text:0800019E .text:0800019E loc_0_800019E: ; CODE XREF: getDriveGeometry+56j .text:0800019E ; getDriveGeometry+6Aj .text:0800019E mov edx, [esp+2Ch+arg_0] .text:080001A2 mov ecx, [edx+28h] .text:080001A5 test ecx, ecx .text:080001A7 jz short loc_0_80001CF .text:080001A9 lea eax, [esp+2Ch+var_8] .text:080001AD mov [esp+2Ch+var_10], eax .text:080001B1 push eax .text:080001B2 lea edx, [esp+30h+var_4] .text:080001B6 mov [esp+30h+var_10], edx .text:080001BA mov eax, edx .text:080001BC push eax .text:080001BD mov edx, [esp+34h+arg_0] .text:080001C1 mov edx, [edx] .text:080001C3 mov [esp+34h+var_1C], edx .text:080001C7 mov eax, edx .text:080001C9 push eax .text:080001CA call ecx .text:080001CC add esp, 0Ch .text:080001CF .text:080001CF loc_0_80001CF: ; CODE XREF: getDriveGeometry+87j .text:080001CF mov [edi+18h], bp .text:080001D3 mov [edi+1Ah], bx .text:080001D7 lea edx, [edi+0Bh] .text:080001DA push 200h .text:080001DF mov eax, edx .text:080001E1 mov [esp+30h+var_10], edx .text:080001E5 push eax .text:080001E6 call toUNAL .text:080001EB mov dl, [esp+34h+arg_C] .text:080001EF mov byte ptr [edi+15h], 0F8h .text:080001F3 mov [edi+1Ch], ebp .text:080001F6 mov [edi+10h], dl .text:080001F9 add esp, 8 .text:080001FC imul ebx, [esi] .text:080001FF imul ebx, ebp .text:08000202 sub ebx, ebp .text:08000204 xor ecx, ecx .text:08000206 mov [edi+20h], ebx .text:08000209 cmp ebx, 0FFFFh .text:0800020F jg short loc_0_8000214 .text:08000211 mov cx, bx .text:08000214 .text:08000214 loc_0_8000214: ; CODE XREF: getDriveGeometry+EFj .text:08000214 lea eax, [edi+13h] .text:08000217 push ecx .text:08000218 mov edx, eax .text:0800021A mov [esp+30h+var_10], eax .text:0800021E push edx .text:0800021F call toUNAL .text:08000224 mov eax, ebx .text:08000226 cdq .text:08000227 idiv [esp+34h+var_4] .text:0800022B mov ecx, eax .text:0800022D mov al, byte ptr [esp+34h+var_4] .text:08000231 add esp, 8 .text:08000234 mov [edi+0Dh], al .text:08000237 cmp byte ptr [esp+2Ch+var_4], 7 .text:0800023C jbe short loc_0_8000257 .text:0800023E mov esi, esi .text:08000240 .text:08000240 loc_0_8000240: ; CODE XREF: getDriveGeometry+135j .text:08000240 cmp ecx, 0FFFEh .text:08000246 jle short loc_0_800025F .text:08000248 .text:08000248 loc_0_8000248: ; CODE XREF: getDriveGeometry+13Dj .text:08000248 mov al, [edi+0Dh] .text:0800024B add al, al .text:0800024D sar ecx, 1 .text:08000250 mov [edi+0Dh], al .text:08000253 cmp al, 7 .text:08000255 ja short loc_0_8000240 .text:08000257 .text:08000257 loc_0_8000257: ; CODE XREF: getDriveGeometry+11Cj .text:08000257 cmp ecx, 7FFEh .text:0800025D jg short loc_0_8000248 .text:0800025F .text:0800025F loc_0_800025F: ; CODE XREF: getDriveGeometry+126j .text:0800025F xor edx, edx .text:08000261 mov dl, [edi+0Dh] .text:08000264 mov eax, edx .text:08000266 shl eax, 9 .text:08000269 sub eax, edx .text:0800026B shl eax, 2 .text:0800026E sub eax, edx .text:08000270 add eax, eax .text:08000272 cmp [edi+20h], eax .text:08000275 jnb short loc_0_8000288 .text:08000277 lea edx, [ecx+ecx*2+7] .text:0800027B mov eax, edx .text:0800027D shr eax, 1Fh .text:08000280 lea ebx, [eax+edx] .text:08000283 sar ebx, 1 .text:08000286 jmp short loc_0_800028F .text:08000288 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000288 .text:08000288 loc_0_8000288: ; CODE XREF: getDriveGeometry+155j .text:08000288 lea ebx, ds:4[ecx*2] .text:0800028F .text:0800028F loc_0_800028F: ; CODE XREF: getDriveGeometry+166j .text:0800028F lea ecx, [ebx-1] .text:08000292 test ecx, ecx .text:08000294 jge short loc_0_800029C .text:08000296 lea ecx, [ebx+1FEh] .text:0800029C .text:0800029C loc_0_800029C: ; CODE XREF: getDriveGeometry+174j .text:0800029C sar ecx, 9 .text:0800029F mov eax, ecx .text:080002A1 inc eax .text:080002A2 xor esi, esi .text:080002A4 mov si, ax .text:080002A7 mov [edi+16h], si .text:080002AB mov eax, 51EB851Fh .text:080002B0 mul [esp+2Ch+var_C] .text:080002B4 mov ebx, edx .text:080002B6 shr ebx, 6 .text:080002B9 test ebx, ebx .text:080002BB jg short loc_0_80002C2 .text:080002BD mov ebx, 1 .text:080002C2 .text:080002C2 loc_0_80002C2: ; CODE XREF: getDriveGeometry+19Bj .text:080002C2 cmp ebx, 0Fh .text:080002C5 jle short loc_0_80002CC .text:080002C7 mov ebx, 0Fh .text:080002CC .text:080002CC loc_0_80002CC: ; CODE XREF: getDriveGeometry+1A5j .text:080002CC mov eax, ebx .text:080002CE shl eax, 4 .text:080002D1 mov [esp+2Ch+var_10], eax .text:080002D5 lea edx, [edi+11h] .text:080002D8 push eax .text:080002D9 mov eax, edx .text:080002DB mov [esp+30h+var_10], edx .text:080002DF push eax .text:080002E0 call toUNAL .text:080002E5 add esp, 8 .text:080002E8 mov edx, [esp+2Ch+arg_0] .text:080002EC cmp dword ptr [edx+28h], 0 .text:080002F0 jz short loc_0_8000328 .text:080002F2 imul esi, dword ptr [esp+2Ch+arg_C] .text:080002F7 lea esi, [ebp+esi+1] .text:080002FB mov [esp+2Ch+var_10], esi .text:080002FF add ebx, esi .text:08000301 mov ecx, [esp+2Ch+var_8] .text:08000305 mov [esp+2Ch+var_10], ebx .text:08000309 sub ecx, ebx .text:0800030B xor ebx, ebx .text:0800030D mov bl, [edi+0Dh] .text:08000310 mov eax, ecx .text:08000312 xor edx, edx .text:08000314 div ebx .text:08000316 mov esi, edx .text:08000318 test esi, esi .text:0800031A jge short loc_0_800031E .text:0800031C add esi, ebx .text:0800031E .text:0800031E loc_0_800031E: ; CODE XREF: getDriveGeometry+1FAj .text:0800031E inc esi .text:0800031F mov [edi+0Eh], si .text:08000323 jmp short loc_0_800032E .text:08000323 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000325 align 4 .text:08000328 .text:08000328 loc_0_8000328: ; CODE XREF: getDriveGeometry+1D0j .text:08000328 mov word ptr [edi+0Eh], 1 .text:0800032E .text:0800032E loc_0_800032E: ; CODE XREF: getDriveGeometry+203j .text:0800032E pop ebx .text:0800032F pop esi .text:08000330 pop edi .text:08000331 pop ebp .text:08000332 add esp, 1Ch .text:08000335 retn .text:08000335 getDriveGeometry endp .text:08000335 .text:08000335 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000336 align 4 .text:08000338 .text:08000338 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000338 .text:08000338 .text:08000338 createMasterBootRecord proc near ; CODE XREF: flDosFormat+29p .text:08000338 .text:08000338 var_200 = byte ptr -200h .text:08000338 var_42 = byte ptr -42h .text:08000338 var_41 = byte ptr -41h .text:08000338 var_40 = word ptr -40h .text:08000338 var_3E = byte ptr -3Eh .text:08000338 var_3D = byte ptr -3Dh .text:08000338 var_3C = word ptr -3Ch .text:08000338 var_3A = byte ptr -3Ah .text:08000338 var_36 = byte ptr -36h .text:08000338 var_2 = word ptr -2 .text:08000338 arg_0 = dword ptr 4 .text:08000338 arg_4 = dword ptr 8 .text:08000338 arg_8 = dword ptr 0Ch .text:08000338 .text:08000338 sub esp, 200h .text:0800033E push ebp .text:0800033F push edi .text:08000340 push esi .text:08000341 push ebx .text:08000342 mov ebp, [esp+210h+arg_0] .text:08000349 mov esi, [esp+210h+arg_4] .text:08000350 mov edi, [esp+210h+arg_8] .text:08000357 push 200h .text:0800035C push 0 .text:0800035E lea ebx, [esp+218h+var_200] .text:08000362 push ebx .text:08000363 call flmemset .text:08000368 push 0DAh .text:0800036D push offset bootCode_4 .text:08000372 push ebx .text:08000373 call flmemcpy .text:08000378 mov [esp+228h+var_42], 80h .text:08000380 add esp, 18h .text:08000383 cmp word ptr [esi+1Ah], 1 .text:08000388 jbe short loc_0_80003A0 .text:0800038A mov [esp+210h+var_41], 1 .text:08000392 mov [esp+210h+var_40], 1 .text:0800039C jmp short loc_0_80003B2 .text:0800039C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800039E align 4 .text:080003A0 .text:080003A0 loc_0_80003A0: ; CODE XREF: createMasterBootRecord+50j .text:080003A0 mov [esp+210h+var_41], 0 .text:080003A8 mov [esp+210h+var_40], 101h .text:080003B2 .text:080003B2 loc_0_80003B2: ; CODE XREF: createMasterBootRecord+64j .text:080003B2 xor eax, eax .text:080003B4 mov al, [esi+0Dh] .text:080003B7 mov edx, eax .text:080003B9 shl edx, 9 .text:080003BC sub edx, eax .text:080003BE shl edx, 2 .text:080003C1 sub edx, eax .text:080003C3 mov al, 4 .text:080003C5 add edx, edx .text:080003C7 cmp [esi+20h], edx .text:080003CA jnb short loc_0_80003CE .text:080003CC mov al, 1 .text:080003CE .text:080003CE loc_0_80003CE: ; CODE XREF: createMasterBootRecord+92j .text:080003CE mov [esp+210h+var_3E], al .text:080003D5 mov edx, edi .text:080003D7 mov cl, [esi+1Ah] .text:080003DA dec edx .text:080003DB lea eax, [edi-1] .text:080003DE dec cl .text:080003E0 shl dx, 8 .text:080003E4 and eax, 300h .text:080003E9 mov [esp+210h+var_3D], cl .text:080003F0 shr eax, 2 .text:080003F3 add dx, [esi+18h] .text:080003F7 add edx, eax .text:080003F9 mov [esp+210h+var_3C], dx .text:08000401 xor eax, eax .text:08000403 mov ax, [esi+18h] .text:08000407 push eax .text:08000408 lea eax, [esp+214h+var_3A] .text:0800040F lea ebx, [esp+214h+var_200] .text:08000413 push eax .text:08000414 call toUNALLONG .text:08000419 mov eax, [esi+20h] .text:0800041C push eax .text:0800041D lea eax, [esp+21Ch+var_36] .text:08000424 push eax .text:08000425 call toUNALLONG .text:0800042A mov [esp+220h+var_2], 0AA55h .text:08000434 push ebx .text:08000435 push 0 .text:08000437 mov eax, [ebp+0] .text:0800043A push eax .text:0800043B mov eax, [ebp+8] .text:0800043E call eax .text:08000440 add esp, 1Ch .text:08000443 pop ebx .text:08000444 pop esi .text:08000445 pop edi .text:08000446 pop ebp .text:08000447 add esp, 200h .text:0800044D retn .text:0800044D createMasterBootRecord endp .text:0800044D .text:0800044D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800044E align 4 .text:08000450 .text:08000450 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000450 .text:08000450 .text:08000450 createDOSbootSector proc near ; CODE XREF: flDosFormat+3Fp .text:08000450 .text:08000450 var_204 = dword ptr -204h .text:08000450 var_200 = byte ptr -200h .text:08000450 var_1FD = byte ptr -1FDh .text:08000450 var_1DC = byte ptr -1DCh .text:08000450 var_1DA = byte ptr -1DAh .text:08000450 var_1D9 = byte ptr -1D9h .text:08000450 var_1D5 = byte ptr -1D5h .text:08000450 var_1CA = byte ptr -1CAh .text:08000450 var_2 = word ptr -2 .text:08000450 arg_0 = dword ptr 4 .text:08000450 arg_4 = dword ptr 8 .text:08000450 arg_8 = dword ptr 0Ch .text:08000450 arg_C = dword ptr 10h .text:08000450 .text:08000450 sub esp, 204h .text:08000456 push ebp .text:08000457 push edi .text:08000458 push esi .text:08000459 push ebx .text:0800045A mov ebp, [esp+214h+arg_4] .text:08000461 mov ebx, [esp+214h+arg_8] .text:08000468 mov esi, [esp+214h+arg_C] .text:0800046F push 200h .text:08000474 push 0 .text:08000476 lea ecx, [esp+21Ch+var_200] .text:0800047A mov [esp+21Ch+var_204], ecx .text:0800047E push ecx .text:0800047F call flmemset .text:08000484 mov [esp+220h+var_1DC], 80h .text:08000489 mov [esp+220h+var_1DA], 29h .text:0800048E push 4 .text:08000490 push ebx .text:08000491 lea eax, [esp+228h+var_1D9] .text:08000495 push eax .text:08000496 call flmemcpy .text:0800049B push 0Bh .text:0800049D push 20h .text:0800049F lea ebx, [esp+234h+var_1D5] .text:080004A3 push ebx .text:080004A4 call flmemset .text:080004A9 add esp, 24h .text:080004AC test esi, esi .text:080004AE jz short loc_0_80004BC .text:080004B0 push 0Bh .text:080004B2 push esi .text:080004B3 push ebx .text:080004B4 call flmemcpy .text:080004B9 add esp, 0Ch .text:080004BC .text:080004BC loc_0_80004BC: ; CODE XREF: createDOSbootSector+5Ej .text:080004BC push 8 .text:080004BE xor eax, eax .text:080004C0 mov al, [ebp+0Dh] .text:080004C3 mov edx, eax .text:080004C5 shl edx, 9 .text:080004C8 sub edx, eax .text:080004CA shl edx, 2 .text:080004CD sub edx, eax .text:080004CF mov eax, offset aFat16 ; "FAT16 " .text:080004D4 add edx, edx .text:080004D6 cmp [ebp+20h], edx .text:080004D9 jnb short loc_0_80004E0 .text:080004DB mov eax, offset aFat12 ; "FAT12 " .text:080004E0 .text:080004E0 loc_0_80004E0: ; CODE XREF: createDOSbootSector+89j .text:080004E0 push eax .text:080004E1 lea eax, [esp+21Ch+var_1CA] .text:080004E5 push eax .text:080004E6 call flmemcpy .text:080004EB mov edi, [esp+220h+var_204] .text:080004EF mov esi, ebp .text:080004F1 cld .text:080004F2 mov ecx, 9 .text:080004F7 repe movsd .text:080004F9 mov [esp+220h+var_200], 0E9h .text:080004FE push 8 .text:08000500 push offset aMsystems ; "MSystems" .text:08000505 lea eax, [esp+228h+var_1FD] .text:08000509 push eax .text:0800050A call flmemcpy .text:0800050F mov ecx, [esp+22Ch+var_204] .text:08000513 mov [esp+22Ch+var_2], 0AA55h .text:0800051D push ecx .text:0800051E mov eax, [ebp+1Ch] .text:08000521 push eax .text:08000522 mov ecx, [esp+234h+arg_0] .text:08000529 mov eax, [ecx] .text:0800052B push eax .text:0800052C mov ecx, [esp+238h+arg_0] .text:08000533 mov eax, [ecx+8] .text:08000536 call eax .text:08000538 add esp, 24h .text:0800053B pop ebx .text:0800053C pop esi .text:0800053D pop edi .text:0800053E pop ebp .text:0800053F add esp, 204h .text:08000545 retn .text:08000545 createDOSbootSector endp .text:08000545 .text:08000545 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000546 align 4 .text:08000548 .text:08000548 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000548 .text:08000548 .text:08000548 createFATs proc near ; CODE XREF: flDosFormat+4Dp .text:08000548 .text:08000548 var_204 = dword ptr -204h .text:08000548 var_200 = byte ptr -200h .text:08000548 var_1FF = byte ptr -1FFh .text:08000548 var_1FE = byte ptr -1FEh .text:08000548 var_1FD = byte ptr -1FDh .text:08000548 arg_0 = dword ptr 4 .text:08000548 arg_4 = dword ptr 8 .text:08000548 .text:08000548 sub esp, 204h .text:0800054E push ebp .text:0800054F push edi .text:08000550 push esi .text:08000551 push ebx .text:08000552 mov esi, [esp+214h+arg_4] .text:08000559 xor edi, edi .text:0800055B mov di, [esi+0Eh] .text:0800055F xor ebp, ebp .text:08000561 add edi, [esi+1Ch] .text:08000564 cmp byte ptr [esi+10h], 0 .text:08000568 jz loc_0_8000607 .text:0800056E lea ecx, [esp+214h+var_200] .text:08000572 mov [esp+214h+var_204], ecx .text:08000576 mov esi, esi .text:08000578 .text:08000578 loc_0_8000578: ; CODE XREF: createFATs+B9j .text:08000578 xor ebx, ebx .text:0800057A cmp word ptr [esi+16h], 0 .text:0800057F jz short loc_0_80005F9 .text:08000581 lea esi, [esi+0] .text:08000584 .text:08000584 loc_0_8000584: ; CODE XREF: createFATs+AFj .text:08000584 push 200h .text:08000589 push 0 .text:0800058B mov ecx, [esp+21Ch+var_204] .text:0800058F push ecx .text:08000590 call flmemset .text:08000595 add esp, 0Ch .text:08000598 test ebx, ebx .text:0800059A jnz short loc_0_80005CA .text:0800059C mov al, [esi+15h] .text:0800059F mov [esp+214h+var_1FF], 0FFh .text:080005A4 mov [esp+214h+var_1FE], 0FFh .text:080005A9 mov [esp+214h+var_200], al .text:080005AD xor edx, edx .text:080005AF mov dl, [esi+0Dh] .text:080005B2 mov eax, edx .text:080005B4 shl eax, 9 .text:080005B7 sub eax, edx .text:080005B9 shl eax, 2 .text:080005BC sub eax, edx .text:080005BE add eax, eax .text:080005C0 cmp [esi+20h], eax .text:080005C3 jb short loc_0_80005CA .text:080005C5 mov [esp+214h+var_1FD], 0FFh .text:080005CA .text:080005CA loc_0_80005CA: ; CODE XREF: createFATs+52j .text:080005CA ; createFATs+7Bj .text:080005CA mov ecx, [esp+214h+var_204] .text:080005CE push ecx .text:080005CF push edi .text:080005D0 mov ecx, [esp+21Ch+arg_0] .text:080005D7 mov eax, [ecx] .text:080005D9 push eax .text:080005DA mov ecx, [esp+220h+arg_0] .text:080005E1 mov eax, [ecx+8] .text:080005E4 inc edi .text:080005E5 call eax .text:080005E7 add esp, 0Ch .text:080005EA test eax, eax .text:080005EC jnz short loc_0_8000609 .text:080005EE inc ebx .text:080005EF xor eax, eax .text:080005F1 mov ax, [esi+16h] .text:080005F5 cmp ebx, eax .text:080005F7 jl short loc_0_8000584 .text:080005F9 .text:080005F9 loc_0_80005F9: ; CODE XREF: createFATs+37j .text:080005F9 inc ebp .text:080005FA xor eax, eax .text:080005FC mov al, [esi+10h] .text:080005FF cmp ebp, eax .text:08000601 jl loc_0_8000578 .text:08000607 .text:08000607 loc_0_8000607: ; CODE XREF: createFATs+20j .text:08000607 xor eax, eax .text:08000609 .text:08000609 loc_0_8000609: ; CODE XREF: createFATs+A4j .text:08000609 pop ebx .text:0800060A pop esi .text:0800060B pop edi .text:0800060C pop ebp .text:0800060D add esp, 204h .text:08000613 retn .text:08000613 createFATs endp .text:08000613 .text:08000614 .text:08000614 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000614 .text:08000614 .text:08000614 createRootDirectory proc near ; CODE XREF: flDosFormat+5Fp .text:08000614 .text:08000614 var_200 = byte ptr -200h .text:08000614 var_1F5 = byte ptr -1F5h .text:08000614 var_1EA = word ptr -1EAh .text:08000614 var_1E8 = word ptr -1E8h .text:08000614 arg_0 = dword ptr 4 .text:08000614 arg_4 = dword ptr 8 .text:08000614 arg_8 = dword ptr 0Ch .text:08000614 .text:08000614 sub esp, 204h .text:0800061A push ebp .text:0800061B push edi .text:0800061C push esi .text:0800061D xor eax, eax .text:0800061F push ebx .text:08000620 xor edx, edx .text:08000622 xor ecx, ecx .text:08000624 mov ebp, [esp+214h+arg_4] .text:0800062B xor ebx, ebx .text:0800062D lea esi, [esp+214h+var_200] .text:08000631 mov ax, [ebp+0Eh] .text:08000635 mov dl, [ebp+10h] .text:08000638 mov cx, [ebp+16h] .text:0800063C add eax, [ebp+1Ch] .text:0800063F imul ecx, edx .text:08000642 lea edi, [ecx+eax] .text:08000645 lea esi, [esi+0] .text:08000648 .text:08000648 loc_0_8000648: ; CODE XREF: createRootDirectory+B8j .text:08000648 lea eax, [ebp+11h] .text:0800064B push eax .text:0800064C call fromUNAL .text:08000651 and eax, 0FFFFh .text:08000656 add esp, 4 .text:08000659 cmp ebx, eax .text:0800065B jge short loc_0_80006D4 .text:0800065D push 200h .text:08000662 push 0 .text:08000664 push esi .text:08000665 call flmemset .text:0800066A add esp, 0Ch .text:0800066D test ebx, ebx .text:0800066F jnz short loc_0_80006A9 .text:08000671 cmp [esp+214h+arg_8], 0 .text:08000679 jz short loc_0_80006A9 .text:0800067B push 0Bh .text:0800067D push 20h .text:0800067F push esi .text:08000680 call flmemset .text:08000685 push 0Bh .text:08000687 mov edx, [esp+224h+arg_8] .text:0800068E push edx .text:0800068F push esi .text:08000690 call flmemcpy .text:08000695 mov [esp+22Ch+var_1F5], 28h .text:0800069A mov [esp+22Ch+var_1EA], bx .text:0800069F mov [esp+22Ch+var_1E8], 21h .text:080006A6 add esp, 18h .text:080006A9 .text:080006A9 loc_0_80006A9: ; CODE XREF: createRootDirectory+5Bj .text:080006A9 ; createRootDirectory+65j .text:080006A9 push esi .text:080006AA push edi .text:080006AB mov edx, [esp+21Ch+arg_0] .text:080006B2 mov eax, [edx] .text:080006B4 push eax .text:080006B5 mov edx, [esp+220h+arg_0] .text:080006BC mov eax, [edx+8] .text:080006BF inc edi .text:080006C0 call eax .text:080006C2 add esp, 0Ch .text:080006C5 test eax, eax .text:080006C7 jnz short loc_0_80006D6 .text:080006C9 add ebx, 10h .text:080006CC jmp loc_0_8000648 .text:080006CC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080006D1 align 4 .text:080006D4 .text:080006D4 loc_0_80006D4: ; CODE XREF: createRootDirectory+47j .text:080006D4 xor eax, eax .text:080006D6 .text:080006D6 loc_0_80006D6: ; CODE XREF: createRootDirectory+B3j .text:080006D6 pop ebx .text:080006D7 pop esi .text:080006D8 pop edi .text:080006D9 pop ebp .text:080006DA add esp, 204h .text:080006E0 retn .text:080006E0 createRootDirectory endp .text:080006E0 .text:080006E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080006E1 align 4 .text:080006E4 .text:080006E4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080006E4 .text:080006E4 .text:080006E4 public flDosFormat .text:080006E4 flDosFormat proc near ; CODE XREF: formatVolume+B7p .text:080006E4 .text:080006E4 var_28 = dword ptr -28h .text:080006E4 var_24 = byte ptr -24h .text:080006E4 arg_0 = dword ptr 4 .text:080006E4 arg_4 = dword ptr 8 .text:080006E4 .text:080006E4 sub esp, 28h .text:080006E7 push edi .text:080006E8 push esi .text:080006E9 push ebx .text:080006EA mov edi, [esp+34h+arg_4] .text:080006EE mov eax, [edi+1Ch] .text:080006F1 mov esi, [esp+34h+arg_0] .text:080006F5 push eax .text:080006F6 lea eax, [esp+38h+var_28] .text:080006FA push eax .text:080006FB lea ebx, [esp+3Ch+var_24] .text:080006FF push ebx .text:08000700 push esi .text:08000701 call getDriveGeometry .text:08000706 mov eax, [esp+44h+var_28] .text:0800070A push eax .text:0800070B push ebx .text:0800070C push esi .text:0800070D call createMasterBootRecord .text:08000712 add esp, 1Ch .text:08000715 test eax, eax .text:08000717 jnz short loc_0_800074B .text:08000719 mov eax, [edi+18h] .text:0800071C push eax .text:0800071D lea eax, [edi+14h] .text:08000720 push eax .text:08000721 push ebx .text:08000722 push esi .text:08000723 call createDOSbootSector .text:08000728 add esp, 10h .text:0800072B test eax, eax .text:0800072D jnz short loc_0_800074B .text:0800072F push ebx .text:08000730 push esi .text:08000731 call createFATs .text:08000736 add esp, 8 .text:08000739 test eax, eax .text:0800073B jnz short loc_0_800074B .text:0800073D mov eax, [edi+18h] .text:08000740 push eax .text:08000741 push ebx .text:08000742 push esi .text:08000743 call createRootDirectory .text:08000748 add esp, 0Ch .text:0800074B .text:0800074B loc_0_800074B: ; CODE XREF: flDosFormat+33j .text:0800074B ; flDosFormat+49j ... .text:0800074B pop ebx .text:0800074C pop esi .text:0800074D pop edi .text:0800074E add esp, 28h .text:08000751 retn .text:08000751 flDosFormat endp .text:08000751 .text:08000751 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000752 align 4 .text:08000754 .text:08000754 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000754 .text:08000754 .text:08000754 public toUNAL .text:08000754 toUNAL proc near ; CODE XREF: getDriveGeometry+C6p .text:08000754 ; getDriveGeometry+FFp ... .text:08000754 .text:08000754 arg_0 = dword ptr 4 .text:08000754 arg_4 = dword ptr 8 .text:08000754 .text:08000754 mov edx, [esp+arg_4] ; Alternative name is 'gcc2_compiled.' .text:08000758 mov ecx, [esp+arg_0] .text:0800075C mov eax, edx .text:0800075E shr eax, 8 .text:08000761 mov [ecx], dl .text:08000763 mov [ecx+1], al .text:08000766 retn .text:08000766 toUNAL endp .text:08000766 .text:08000766 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000767 align 4 .text:08000768 .text:08000768 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000768 .text:08000768 .text:08000768 public fromUNAL .text:08000768 fromUNAL proc near ; CODE XREF: createRootDirectory+38p .text:08000768 ; fromUNALLONG+7p ... .text:08000768 .text:08000768 arg_0 = dword ptr 4 .text:08000768 .text:08000768 mov eax, [esp+arg_0] .text:0800076C xor edx, edx .text:0800076E mov dl, [eax+1] .text:08000771 mov al, [eax] .text:08000773 shl dx, 8 .text:08000777 mov ah, 0 .text:08000779 add eax, edx .text:0800077B and eax, 0FFFFh .text:08000780 retn .text:08000780 fromUNAL endp .text:08000780 .text:08000780 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000781 align 4 .text:08000784 .text:08000784 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000784 .text:08000784 .text:08000784 public toUNALLONG .text:08000784 toUNALLONG proc near ; CODE XREF: createMasterBootRecord+DCp .text:08000784 ; createMasterBootRecord+EDp ... .text:08000784 .text:08000784 arg_0 = dword ptr 0Ch .text:08000784 arg_4 = dword ptr 10h .text:08000784 .text:08000784 push esi .text:08000785 push ebx .text:08000786 mov esi, [esp+arg_4] .text:0800078A xor eax, eax .text:0800078C mov ax, si .text:0800078F mov ebx, [esp+arg_0] .text:08000793 push eax .text:08000794 push ebx .text:08000795 call toUNAL .text:0800079A shr esi, 10h .text:0800079D push esi .text:0800079E add ebx, 2 .text:080007A1 push ebx .text:080007A2 call toUNAL .text:080007A7 add esp, 10h .text:080007AA pop ebx .text:080007AB pop esi .text:080007AC retn .text:080007AC toUNALLONG endp .text:080007AC .text:080007AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080007AD align 4 .text:080007B0 .text:080007B0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080007B0 .text:080007B0 .text:080007B0 public fromUNALLONG .text:080007B0 fromUNALLONG proc near ; CODE XREF: mountNFTL+17Ap .text:080007B0 ; getBPB+76p .text:080007B0 .text:080007B0 arg_0 = dword ptr 0Ch .text:080007B0 .text:080007B0 push esi .text:080007B1 push ebx .text:080007B2 mov ebx, [esp+arg_0] .text:080007B6 push ebx .text:080007B7 call fromUNAL .text:080007BC add ebx, 2 .text:080007BF mov esi, eax .text:080007C1 push ebx .text:080007C2 call fromUNAL .text:080007C7 xor edx, edx .text:080007C9 mov dx, si .text:080007CC shl eax, 10h .text:080007CF add esp, 8 .text:080007D2 add eax, edx .text:080007D4 pop ebx .text:080007D5 pop esi .text:080007D6 retn .text:080007D6 fromUNALLONG endp .text:080007D6 .text:080007D6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080007D7 align 4 .text:080007D8 .text:080007D8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080007D8 .text:080007D8 .text:080007D8 flashMap proc near ; DATA XREF: flIdentifyFlash+2Eo .text:080007D8 .text:080007D8 arg_0 = dword ptr 4 .text:080007D8 arg_4 = dword ptr 8 .text:080007D8 .text:080007D8 mov edx, [esp+arg_4] ; Alternative name is 'gcc2_compiled.' .text:080007DC mov eax, [esp+arg_0] .text:080007E0 push edx .text:080007E1 mov eax, [eax+1Ch] .text:080007E4 push eax .text:080007E5 call flMap .text:080007EA add esp, 8 .text:080007ED retn .text:080007ED flashMap endp .text:080007ED .text:080007ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080007EE align 4 .text:080007F0 .text:080007F0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080007F0 .text:080007F0 .text:080007F0 flashRead proc near ; DATA XREF: flIdentifyFlash+35o .text:080007F0 .text:080007F0 arg_0 = dword ptr 8 .text:080007F0 arg_4 = dword ptr 0Ch .text:080007F0 arg_8 = dword ptr 10h .text:080007F0 arg_C = dword ptr 14h .text:080007F0 .text:080007F0 push ebx .text:080007F1 mov ecx, [esp+arg_0] .text:080007F5 mov edx, [esp+arg_4] .text:080007F9 mov eax, [esp+arg_C] .text:080007FD mov ebx, [esp+arg_8] .text:08000801 push eax .text:08000802 push eax .text:08000803 push edx .text:08000804 push ecx .text:08000805 mov eax, [ecx+20h] .text:08000808 call eax .text:0800080A add esp, 0Ch .text:0800080D push eax .text:0800080E push ebx .text:0800080F call flmemcpy .text:08000814 add esp, 0Ch .text:08000817 xor eax, eax .text:08000819 pop ebx .text:0800081A retn .text:0800081A flashRead endp .text:0800081A .text:0800081A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800081B align 4 .text:0800081C .text:0800081C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800081C .text:0800081C .text:0800081C flashNoWrite proc near ; DATA XREF: flIdentifyFlash+3Co .text:0800081C mov eax, 13h .text:08000821 retn .text:08000821 flashNoWrite endp .text:08000821 .text:08000821 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000822 align 4 .text:08000824 .text:08000824 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000824 .text:08000824 .text:08000824 flashNoErase proc near ; DATA XREF: flIdentifyFlash+43o .text:08000824 mov eax, 13h .text:08000829 retn .text:08000829 flashNoErase endp .text:08000829 .text:08000829 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800082A align 4 .text:0800082C .text:0800082C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800082C .text:0800082C .text:0800082C setNoCallback proc near ; DATA XREF: flIdentifyFlash+4Ao .text:0800082C .text:0800082C arg_0 = dword ptr 4 .text:0800082C .text:0800082C mov eax, [esp+arg_0] .text:08000830 push 0 .text:08000832 push 0 .text:08000834 mov eax, [eax+1Ch] .text:08000837 push eax .text:08000838 call flSetPowerOnCallback .text:0800083D add esp, 0Ch .text:08000840 retn .text:08000840 setNoCallback endp .text:08000840 .text:08000840 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000841 align 4 .text:08000844 .text:08000844 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000844 .text:08000844 .text:08000844 public flIntelIdentify .text:08000844 flIntelIdentify proc near .text:08000844 .text:08000844 var_6 = byte ptr -6 .text:08000844 var_5 = byte ptr -5 .text:08000844 var_4 = byte ptr -4 .text:08000844 arg_0 = dword ptr 4 .text:08000844 arg_4 = dword ptr 8 .text:08000844 arg_8 = dword ptr 0Ch .text:08000844 .text:08000844 sub esp, 8 .text:08000847 push ebp .text:08000848 push edi .text:08000849 push esi .text:0800084A push ebx .text:0800084B mov edi, [esp+18h+arg_0] .text:0800084F mov ecx, [esp+18h+arg_8] .text:08000853 mov ebp, [esp+18h+arg_4] .text:08000857 push ecx .text:08000858 mov eax, [edi+1Ch] .text:0800085B push eax .text:0800085C call flMap .text:08000861 add esp, 8 .text:08000864 mov esi, eax .text:08000866 mov [esp+18h+var_6], 0FFh .text:0800086B test ebp, ebp .text:0800086D jz short loc_0_8000874 .text:0800086F mov [esp+18h+var_6], 0F0h .text:08000874 .text:08000874 loc_0_8000874: ; CODE XREF: flIntelIdentify+29j .text:08000874 xor ebx, ebx .text:08000876 mov esi, esi .text:08000878 .text:08000878 loc_0_8000878: ; CODE XREF: flIntelIdentify+AFj .text:08000878 mov cl, [esp+18h+var_6] .text:0800087C mov [ebx+esi], cl .text:0800087F mov [ebx+esi], cl .text:08000882 test ebx, ebx .text:08000884 jnz short loc_0_800088C .text:08000886 mov cl, [esi] .text:08000888 mov [esp+18h+var_5], cl .text:0800088C .text:0800088C loc_0_800088C: ; CODE XREF: flIntelIdentify+40j .text:0800088C test ebp, ebp .text:0800088E jz short loc_0_80008A8 .text:08000890 push esi .text:08000891 push 90h .text:08000896 mov eax, [esp+20h+arg_8] .text:0800089A add eax, ebx .text:0800089C push eax .text:0800089D push edi .text:0800089E call ebp .text:080008A0 add esp, 10h .text:080008A3 jmp short loc_0_80008AC .text:080008A3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080008A5 align 4 .text:080008A8 .text:080008A8 loc_0_80008A8: ; CODE XREF: flIntelIdentify+4Aj .text:080008A8 mov byte ptr [ebx+esi], 90h .text:080008AC .text:080008AC loc_0_80008AC: ; CODE XREF: flIntelIdentify+5Fj .text:080008AC test ebx, ebx .text:080008AE jnz short loc_0_80008B8 .text:080008B0 mov cl, [esi] .text:080008B2 mov [esp+18h+var_4], cl .text:080008B6 jmp short loc_0_80008E8 .text:080008B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080008B8 .text:080008B8 loc_0_80008B8: ; CODE XREF: flIntelIdentify+6Aj .text:080008B8 mov al, [ebx+esi] .text:080008BB cmp [esp+18h+var_4], al .text:080008BF jnz short loc_0_80008C9 .text:080008C1 mov al, [esi] .text:080008C3 cmp [esp+18h+var_5], al .text:080008C7 jz short loc_0_80008E8 .text:080008C9 .text:080008C9 loc_0_80008C9: ; CODE XREF: flIntelIdentify+7Bj .text:080008C9 mov al, [esp+18h+var_4] .text:080008CD mov dl, [ebx+esi] .text:080008D0 shl ax, 8 .text:080008D4 and edx, 0FFh .text:080008DA or eax, edx .text:080008DC mov [edi], ax .text:080008DF mov cl, [esp+18h+var_6] .text:080008E3 mov [ebx+esi], cl .text:080008E6 jmp short loc_0_80008F5 .text:080008E8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080008E8 .text:080008E8 loc_0_80008E8: ; CODE XREF: flIntelIdentify+72j .text:080008E8 ; flIntelIdentify+83j .text:080008E8 mov cl, [esp+18h+var_6] .text:080008EC mov [ebx+esi], cl .text:080008EF inc ebx .text:080008F0 cmp ebx, 0Eh .text:080008F3 jle short loc_0_8000878 .text:080008F5 .text:080008F5 loc_0_80008F5: ; CODE XREF: flIntelIdentify+A2j .text:080008F5 lea eax, [ebx-1] .text:080008F8 test eax, ebx .text:080008FA jz short loc_0_8000904 .text:080008FC mov word ptr [edi], 0 .text:08000901 jmp short loc_0_8000907 .text:08000901 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000903 align 4 .text:08000904 .text:08000904 loc_0_8000904: ; CODE XREF: flIntelIdentify+B6j .text:08000904 mov [edi+10h], ebx .text:08000907 .text:08000907 loc_0_8000907: ; CODE XREF: flIntelIdentify+BDj .text:08000907 pop ebx .text:08000908 pop esi .text:08000909 pop edi .text:0800090A pop ebp .text:0800090B add esp, 8 .text:0800090E retn .text:0800090E flIntelIdentify endp .text:0800090E .text:0800090E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800090F align 4 .text:08000910 .text:08000910 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000910 .text:08000910 .text:08000910 public flIntelSize .text:08000910 flIntelSize proc near .text:08000910 .text:08000910 var_1 = byte ptr -1 .text:08000910 arg_0 = dword ptr 4 .text:08000910 arg_4 = dword ptr 8 .text:08000910 arg_8 = dword ptr 0Ch .text:08000910 .text:08000910 sub esp, 4 .text:08000913 push ebp .text:08000914 push edi .text:08000915 push esi .text:08000916 push ebx .text:08000917 mov edi, [esp+14h+arg_0] .text:0800091B mov ebp, [esp+14h+arg_4] .text:0800091F mov [esp+14h+var_1], 0FFh .text:08000924 test ebp, ebp .text:08000926 jz short loc_0_800092D .text:08000928 mov [esp+14h+var_1], 0F0h .text:0800092D .text:0800092D loc_0_800092D: ; CODE XREF: flIntelSize+16j .text:0800092D push 0 .text:0800092F mov ecx, [esp+18h+arg_8] .text:08000933 push ecx .text:08000934 push edi .text:08000935 mov eax, [edi+20h] .text:08000938 call eax .text:0800093A mov esi, eax .text:0800093C add esp, 0Ch .text:0800093F test ebp, ebp .text:08000941 jz short loc_0_8000954 .text:08000943 push esi .text:08000944 push 90h .text:08000949 push 0 .text:0800094B push edi .text:0800094C call ebp .text:0800094E add esp, 10h .text:08000951 jmp short loc_0_8000957 .text:08000951 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000953 align 4 .text:08000954 .text:08000954 loc_0_8000954: ; CODE XREF: flIntelSize+31j .text:08000954 mov byte ptr [esi], 90h .text:08000957 .text:08000957 loc_0_8000957: ; CODE XREF: flIntelSize+41j .text:08000957 mov dword ptr [edi+0Ch], 0 .text:0800095E mov esi, esi .text:08000960 .text:08000960 loc_0_8000960: ; CODE XREF: flIntelSize+F4j .text:08000960 push 0 .text:08000962 mov eax, [edi+0Ch] .text:08000965 imul eax, [edi+8] .text:08000969 add eax, [esp+18h+arg_8] .text:0800096D push eax .text:0800096E push edi .text:0800096F mov eax, [edi+20h] .text:08000972 call eax .text:08000974 mov esi, eax .text:08000976 mov ebx, [edi+0Ch] .text:08000979 add esp, 0Ch .text:0800097C test ebx, ebx .text:0800097E jle short loc_0_800099A .text:08000980 mov al, [esi] .text:08000982 mov edx, eax .text:08000984 shl dx, 8 .text:08000988 mov eax, [edi+10h] .text:0800098B mov al, [eax+esi] .text:0800098E and eax, 0FFh .text:08000993 or eax, edx .text:08000995 cmp [edi], ax .text:08000998 jz short loc_0_8000A0A .text:0800099A .text:0800099A loc_0_800099A: ; CODE XREF: flIntelSize+6Ej .text:0800099A test ebx, ebx .text:0800099C setz al .text:0800099F xor ebx, ebx .text:080009A1 mov bl, al .text:080009A3 cmp [edi+10h], ebx .text:080009A6 jle short loc_0_80009F6 .text:080009A8 .text:080009A8 loc_0_80009A8: ; CODE XREF: flIntelSize+E4j .text:080009A8 test ebp, ebp .text:080009AA jz short loc_0_80009C8 .text:080009AC push esi .text:080009AD push 90h .text:080009B2 mov eax, [edi+0Ch] .text:080009B5 imul eax, [edi+8] .text:080009B9 add eax, [esp+1Ch+arg_8] .text:080009BD add eax, ebx .text:080009BF push eax .text:080009C0 push edi .text:080009C1 call ebp .text:080009C3 add esp, 10h .text:080009C6 jmp short loc_0_80009CC .text:080009C8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080009C8 .text:080009C8 loc_0_80009C8: ; CODE XREF: flIntelSize+9Aj .text:080009C8 mov byte ptr [ebx+esi], 90h .text:080009CC .text:080009CC loc_0_80009CC: ; CODE XREF: flIntelSize+B6j .text:080009CC mov al, [ebx+esi] .text:080009CF mov edx, eax .text:080009D1 shl dx, 8 .text:080009D5 mov eax, ebx .text:080009D7 add eax, [edi+10h] .text:080009DA mov al, [eax+esi] .text:080009DD and eax, 0FFh .text:080009E2 or eax, edx .text:080009E4 cmp [edi], ax .text:080009E7 jnz short loc_0_8000A0A .text:080009E9 mov cl, [esp+14h+var_1] .text:080009ED mov [ebx+esi], cl .text:080009F0 inc ebx .text:080009F1 cmp [edi+10h], ebx .text:080009F4 jg short loc_0_80009A8 .text:080009F6 .text:080009F6 loc_0_80009F6: ; CODE XREF: flIntelSize+96j .text:080009F6 mov eax, [edi+10h] .text:080009F9 add eax, [edi+0Ch] .text:080009FC mov [edi+0Ch], eax .text:080009FF cmp eax, 7CFh .text:08000A04 jle loc_0_8000960 .text:08000A0A .text:08000A0A loc_0_8000A0A: ; CODE XREF: flIntelSize+88j .text:08000A0A ; flIntelSize+D7j .text:08000A0A push 0 .text:08000A0C mov ecx, [esp+18h+arg_8] .text:08000A10 push ecx .text:08000A11 push edi .text:08000A12 mov eax, [edi+20h] .text:08000A15 call eax .text:08000A17 mov esi, eax .text:08000A19 mov cl, [esp+20h+var_1] .text:08000A1D add esp, 0Ch .text:08000A20 xor eax, eax .text:08000A22 mov [esi], cl .text:08000A24 cmp dword ptr [edi+0Ch], 0 .text:08000A28 jnz short loc_0_8000A2F .text:08000A2A mov eax, 1Ah .text:08000A2F .text:08000A2F loc_0_8000A2F: ; CODE XREF: flIntelSize+118j .text:08000A2F pop ebx .text:08000A30 pop esi .text:08000A31 pop edi .text:08000A32 pop ebp .text:08000A33 add esp, 4 .text:08000A36 retn .text:08000A36 flIntelSize endp .text:08000A36 .text:08000A36 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000A37 align 4 .text:08000A38 .text:08000A38 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000A38 .text:08000A38 .text:08000A38 isRAM proc near ; CODE XREF: flIdentifyFlash+14p .text:08000A38 .text:08000A38 var_1 = byte ptr -1 .text:08000A38 arg_0 = dword ptr 4 .text:08000A38 .text:08000A38 sub esp, 4 .text:08000A3B push ebx .text:08000A3C mov eax, [esp+8+arg_0] .text:08000A40 push 0 .text:08000A42 mov eax, [eax+1Ch] .text:08000A45 push eax .text:08000A46 call flMap .text:08000A4B mov ebx, eax .text:08000A4D or ebx, 0C0000000h .text:08000A53 mov dl, [ebx] .text:08000A55 mov [esp+10h+var_1], dl .text:08000A59 add esp, 8 .text:08000A5C xor ecx, ecx .text:08000A5E cmp [esp+8+var_1], 0 .text:08000A63 jnz short loc_0_8000A67 .text:08000A65 mov cl, 0FFh .text:08000A67 .text:08000A67 loc_0_8000A67: ; CODE XREF: isRAM+2Bj .text:08000A67 mov [ebx], cl .text:08000A69 mov al, [ebx] .text:08000A6B xor edx, edx .text:08000A6D mov dl, al .text:08000A6F movsx eax, cl .text:08000A72 cmp edx, eax .text:08000A74 jnz short loc_0_8000A90 .text:08000A76 mov dl, [esp+8+var_1] .text:08000A7A mov [ebx], dl .text:08000A7C push offset aDebugErrorSock ; "Debug: error, socket window looks like "... .text:08000A81 call flprintk .text:08000A86 mov eax, 1 .text:08000A8B add esp, 4 .text:08000A8E jmp short loc_0_8000A92 .text:08000A90 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000A90 .text:08000A90 loc_0_8000A90: ; CODE XREF: isRAM+3Cj .text:08000A90 xor eax, eax .text:08000A92 .text:08000A92 loc_0_8000A92: ; CODE XREF: isRAM+56j .text:08000A92 pop ebx .text:08000A93 add esp, 4 .text:08000A96 retn .text:08000A96 isRAM endp .text:08000A96 .text:08000A96 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000A97 align 4 .text:08000A98 .text:08000A98 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000A98 .text:08000A98 .text:08000A98 public flIdentifyFlash .text:08000A98 flIdentifyFlash proc near ; CODE XREF: flMount+26p .text:08000A98 ; flFormat+1Ep ... .text:08000A98 .text:08000A98 arg_0 = dword ptr 10h .text:08000A98 arg_4 = dword ptr 14h .text:08000A98 .text:08000A98 push edi .text:08000A99 push esi .text:08000A9A push ebx .text:08000A9B mov esi, [esp+arg_4] .text:08000A9F mov eax, [esp+arg_0] .text:08000AA3 mov [esi+1Ch], eax .text:08000AA6 push esi .text:08000AA7 mov edi, 1Ah .text:08000AAC call isRAM .text:08000AB1 add esp, 4 .text:08000AB4 test eax, eax .text:08000AB6 jz short loc_0_8000AC0 .text:08000AB8 mov eax, edi .text:08000ABA jmp loc_0_8000B46 .text:08000ABA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000ABF align 4 .text:08000AC0 .text:08000AC0 loc_0_8000AC0: ; CODE XREF: flIdentifyFlash+1Ej .text:08000AC0 mov [esi], ax .text:08000AC3 mov [esi+14h], eax .text:08000AC6 mov dword ptr [esi+20h], offset flashMap .text:08000ACD mov dword ptr [esi+24h], offset flashRead .text:08000AD4 mov dword ptr [esi+28h], offset flashNoWrite .text:08000ADB mov dword ptr [esi+2Ch], offset flashNoErase .text:08000AE2 mov dword ptr [esi+30h], offset setNoCallback .text:08000AE9 mov ebx, eax .text:08000AEB cmp noOfMTDs, ebx .text:08000AF1 jle short loc_0_8000B10 .text:08000AF3 nop .text:08000AF4 .text:08000AF4 loc_0_8000AF4: ; CODE XREF: flIdentifyFlash+76j .text:08000AF4 test edi, edi .text:08000AF6 jz short loc_0_8000B44 .text:08000AF8 mov eax, ds:mtdTable[ebx*4] .text:08000AFF push esi .text:08000B00 call eax .text:08000B02 mov edi, eax .text:08000B04 add esp, 4 .text:08000B07 inc ebx .text:08000B08 cmp noOfMTDs, ebx .text:08000B0E jg short loc_0_8000AF4 .text:08000B10 .text:08000B10 loc_0_8000B10: ; CODE XREF: flIdentifyFlash+59j .text:08000B10 test edi, edi .text:08000B12 jz short loc_0_8000B44 .text:08000B14 mov dword ptr [esi+8], 100000h .text:08000B1B mov dword ptr [esi+4], 1000h .text:08000B22 mov dword ptr [esi+0Ch], 1 .text:08000B29 mov dword ptr [esi+10h], 1 .text:08000B30 push offset aDebugDidNotIde ; "Debug: did not identify flash media.\n" .text:08000B35 call flprintk .text:08000B3A mov eax, 1Ah .text:08000B3F add esp, 4 .text:08000B42 jmp short loc_0_8000B46 .text:08000B44 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000B44 .text:08000B44 loc_0_8000B44: ; CODE XREF: flIdentifyFlash+5Ej .text:08000B44 ; flIdentifyFlash+7Aj .text:08000B44 xor eax, eax .text:08000B46 .text:08000B46 loc_0_8000B46: ; CODE XREF: flIdentifyFlash+22j .text:08000B46 ; flIdentifyFlash+AAj .text:08000B46 pop ebx .text:08000B47 pop esi .text:08000B48 pop edi .text:08000B49 retn .text:08000B49 flIdentifyFlash endp .text:08000B49 .text:08000B49 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000B4A align 4 .text:08000B4C .text:08000B4C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000B4C .text:08000B4C .text:08000B4C public flSocketNoOf .text:08000B4C flSocketNoOf proc near ; CODE XREF: doc2Identify+22p .text:08000B4C ; doc2Identify+3Dp ... .text:08000B4C .text:08000B4C arg_0 = dword ptr 4 .text:08000B4C .text:08000B4C mov eax, [esp+arg_0] ; Alternative name is 'gcc2_compiled.' .text:08000B50 mov eax, [eax] .text:08000B52 retn .text:08000B52 flSocketNoOf endp .text:08000B52 .text:08000B52 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000B53 align 4 .text:08000B54 .text:08000B54 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000B54 .text:08000B54 .text:08000B54 public flSocketOf .text:08000B54 flSocketOf proc near ; CODE XREF: flRegisterDOCSOC+2Ap .text:08000B54 ; flMount+14p ... .text:08000B54 .text:08000B54 arg_0 = dword ptr 4 .text:08000B54 .text:08000B54 mov eax, [esp+arg_0] .text:08000B58 lea edx, [eax+eax*2] .text:08000B5B lea edx, [eax+edx*4] .text:08000B5E lea eax, vols[edx*8] .text:08000B65 retn .text:08000B65 flSocketOf endp .text:08000B65 .text:08000B65 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000B66 align 4 .text:08000B68 .text:08000B68 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000B68 .text:08000B68 .text:08000B68 public flBufferOf .text:08000B68 flBufferOf proc near ; CODE XREF: doc2Identify+43p .text:08000B68 ; initNFTL+CFp .text:08000B68 .text:08000B68 arg_0 = dword ptr 4 .text:08000B68 .text:08000B68 mov edx, [esp+arg_0] .text:08000B6C lea eax, ds:0[edx*4] .text:08000B73 mov eax, ds:volBuffers[eax] .text:08000B79 retn .text:08000B79 flBufferOf endp .text:08000B79 .text:08000B79 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000B7A align 4 .text:08000B7C .text:08000B7C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000B7C .text:08000B7C .text:08000B7C public flWriteProtected .text:08000B7C flWriteProtected proc near ; CODE XREF: writeOneSector+27p .text:08000B7C ; doc2Erase+25p .text:08000B7C .text:08000B7C arg_0 = dword ptr 4 .text:08000B7C .text:08000B7C mov eax, [esp+arg_0] .text:08000B80 push eax .text:08000B81 mov eax, [eax+5Ch] .text:08000B84 call eax .text:08000B86 add esp, 4 .text:08000B89 retn .text:08000B89 flWriteProtected endp .text:08000B89 .text:08000B89 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000B8A align 4 .text:08000B8C .text:08000B8C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000B8C .text:08000B8C .text:08000B8C public flInitSockets .text:08000B8C flInitSockets proc near ; CODE XREF: flInit+68p .text:08000B8C push edi .text:08000B8D push esi .text:08000B8E xor edi, edi .text:08000B90 mov esi, offset vols .text:08000B95 push ebx .text:08000B96 cmp noOfDrives, edi .text:08000B9C jbe short loc_0_8000C1A .text:08000B9E mov esi, esi .text:08000BA0 .text:08000BA0 loc_0_8000BA0: ; CODE XREF: flInitSockets+8Cj .text:08000BA0 push 0FAh .text:08000BA5 push esi .text:08000BA6 call flSetWindowSpeed .text:08000BAB push 10h .text:08000BAD push esi .text:08000BAE call flSetWindowBusWidth .text:08000BB3 push 2 .text:08000BB5 push esi .text:08000BB6 call flSetWindowSize .text:08000BBB mov dword ptr [esi+8], 0 .text:08000BC2 push 210h .text:08000BC7 call flkmalloc .text:08000BCC mov ds:volBuffers[edi*4], eax .text:08000BD3 add esp, 1Ch .text:08000BD6 test eax, eax .text:08000BD8 jnz short loc_0_8000BF0 .text:08000BDA push offset aDebugFailedAll ; "Debug: failed allocating sector buffer."... .text:08000BDF call flprintk .text:08000BE4 mov eax, 3Fh .text:08000BE9 add esp, 4 .text:08000BEC jmp short loc_0_8000C1C .text:08000BEC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000BEE align 4 .text:08000BF0 .text:08000BF0 loc_0_8000BF0: ; CODE XREF: flInitSockets+4Cj .text:08000BF0 push esi .text:08000BF1 mov eax, [esi+4Ch] .text:08000BF4 call eax .text:08000BF6 mov ebx, eax .text:08000BF8 add esp, 4 .text:08000BFB test ebx, ebx .text:08000BFD jnz short loc_0_8000C1C .text:08000BFF push esi .text:08000C00 mov eax, [esi+48h] .text:08000C03 call eax .text:08000C05 mov [esi+14h], ebx .text:08000C08 mov [esi+0Ch], ebx .text:08000C0B add esp, 4 .text:08000C0E inc edi .text:08000C0F add esi, 68h .text:08000C12 cmp noOfDrives, edi .text:08000C18 ja short loc_0_8000BA0 .text:08000C1A .text:08000C1A loc_0_8000C1A: ; CODE XREF: flInitSockets+10j .text:08000C1A xor eax, eax .text:08000C1C .text:08000C1C loc_0_8000C1C: ; CODE XREF: flInitSockets+60j .text:08000C1C ; flInitSockets+71j .text:08000C1C pop ebx .text:08000C1D pop esi .text:08000C1E pop edi .text:08000C1F retn .text:08000C1F flInitSockets endp .text:08000C1F .text:08000C20 .text:08000C20 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000C20 .text:08000C20 .text:08000C20 public flGetMappingContext .text:08000C20 flGetMappingContext proc near .text:08000C20 .text:08000C20 arg_0 = dword ptr 4 .text:08000C20 .text:08000C20 mov eax, [esp+arg_0] .text:08000C24 mov eax, [eax+2Ch] .text:08000C27 retn .text:08000C27 flGetMappingContext endp .text:08000C27 .text:08000C28 .text:08000C28 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000C28 .text:08000C28 .text:08000C28 public flMap .text:08000C28 flMap proc near ; CODE XREF: flashMap+Dp .text:08000C28 ; flIntelIdentify+18p ... .text:08000C28 .text:08000C28 arg_0 = dword ptr 10h .text:08000C28 arg_4 = dword ptr 14h .text:08000C28 .text:08000C28 push edi .text:08000C29 push esi .text:08000C2A push ebx .text:08000C2B mov esi, [esp+arg_0] .text:08000C2F mov edi, [esp+arg_4] .text:08000C33 cmp dword ptr [esi+2Ch], 7FFFh .text:08000C3A jnz short loc_0_8000C45 .text:08000C3C push esi .text:08000C3D mov eax, [esi+50h] .text:08000C40 call eax .text:08000C42 add esp, 4 .text:08000C45 .text:08000C45 loc_0_8000C45: ; CODE XREF: flMap+12j .text:08000C45 mov ebx, [esi+34h] .text:08000C48 neg ebx .text:08000C4A and ebx, edi .text:08000C4C shr ebx, 0Ch .text:08000C4F cmp [esi+2Ch], ebx .text:08000C52 jz short loc_0_8000C68 .text:08000C54 push ebx .text:08000C55 push esi .text:08000C56 mov eax, [esi+54h] .text:08000C59 call eax .text:08000C5B mov [esi+2Ch], ebx .text:08000C5E mov dword ptr [esi+1Ch], 1 .text:08000C65 add esp, 8 .text:08000C68 .text:08000C68 loc_0_8000C68: ; CODE XREF: flMap+2Aj .text:08000C68 mov eax, [esi+34h] .text:08000C6B dec eax .text:08000C6C and edi, eax .text:08000C6E pop ebx .text:08000C6F add edi, [esi+30h] .text:08000C72 pop esi .text:08000C73 mov eax, edi .text:08000C75 pop edi .text:08000C76 retn .text:08000C76 flMap endp .text:08000C76 .text:08000C76 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000C77 align 4 .text:08000C78 .text:08000C78 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000C78 .text:08000C78 .text:08000C78 public flSetWindowBusWidth .text:08000C78 flSetWindowBusWidth proc near ; CODE XREF: flInitSockets+22p .text:08000C78 ; doc2Identify+61p .text:08000C78 .text:08000C78 arg_0 = dword ptr 4 .text:08000C78 arg_4 = dword ptr 8 .text:08000C78 .text:08000C78 mov edx, [esp+arg_0] .text:08000C7C mov eax, [esp+arg_4] .text:08000C80 mov [edx+3Ch], eax .text:08000C83 mov dword ptr [edx+2Ch], 7FFFh .text:08000C8A retn .text:08000C8A flSetWindowBusWidth endp .text:08000C8A .text:08000C8A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000C8B align 4 .text:08000C8C .text:08000C8C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000C8C .text:08000C8C .text:08000C8C public flSetWindowSpeed .text:08000C8C flSetWindowSpeed proc near ; CODE XREF: flInitSockets+1Ap .text:08000C8C ; doc2Identify+6Fp .text:08000C8C .text:08000C8C arg_0 = dword ptr 4 .text:08000C8C arg_4 = dword ptr 8 .text:08000C8C .text:08000C8C mov edx, [esp+arg_0] .text:08000C90 mov eax, [esp+arg_4] .text:08000C94 mov [edx+38h], eax .text:08000C97 mov dword ptr [edx+2Ch], 7FFFh .text:08000C9E retn .text:08000C9E flSetWindowSpeed endp .text:08000C9E .text:08000C9E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000C9F align 4 .text:08000CA0 .text:08000CA0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000CA0 .text:08000CA0 .text:08000CA0 public flSetWindowSize .text:08000CA0 flSetWindowSize proc near ; CODE XREF: flRegisterDOCSOC+36p .text:08000CA0 ; flInitSockets+2Ap .text:08000CA0 .text:08000CA0 arg_0 = dword ptr 4 .text:08000CA0 arg_4 = dword ptr 8 .text:08000CA0 .text:08000CA0 mov edx, [esp+arg_4] .text:08000CA4 mov eax, [esp+arg_0] .text:08000CA8 shl edx, 0Ch .text:08000CAB mov [eax+34h], edx .text:08000CAE mov edx, [eax+28h] .text:08000CB1 shl edx, 0Ch .text:08000CB4 mov dword ptr [eax+2Ch], 7FFFh .text:08000CBB mov [eax+30h], edx .text:08000CBE retn .text:08000CBE flSetWindowSize endp .text:08000CBE .text:08000CBE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000CBF align 4 .text:08000CC0 .text:08000CC0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000CC0 .text:08000CC0 .text:08000CC0 public flSocketSetBusy .text:08000CC0 flSocketSetBusy proc near ; CODE XREF: flExitSocket+16p .text:08000CC0 ; setBusy+34p ... .text:08000CC0 .text:08000CC0 arg_0 = dword ptr 4 .text:08000CC0 arg_4 = dword ptr 8 .text:08000CC0 .text:08000CC0 mov eax, [esp+arg_0] .text:08000CC4 cmp [esp+arg_4], 0 .text:08000CC9 jnz short loc_0_8000CD8 .text:08000CCB push eax .text:08000CCC call flIntervalRoutine .text:08000CD1 add esp, 4 .text:08000CD4 retn .text:08000CD4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000CD5 align 4 .text:08000CD8 .text:08000CD8 loc_0_8000CD8: ; CODE XREF: flSocketSetBusy+9j .text:08000CD8 mov dword ptr [eax+2Ch], 7FFFh .text:08000CDF mov dword ptr [eax+1Ch], 1 .text:08000CE6 retn .text:08000CE6 flSocketSetBusy endp .text:08000CE6 .text:08000CE6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000CE7 align 4 .text:08000CE8 .text:08000CE8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000CE8 .text:08000CE8 .text:08000CE8 public flNeedVcc .text:08000CE8 flNeedVcc proc near ; CODE XREF: setBusy+40p .text:08000CE8 .text:08000CE8 arg_0 = dword ptr 8 .text:08000CE8 .text:08000CE8 push ebx .text:08000CE9 mov ebx, [esp+arg_0] .text:08000CED inc dword ptr [ebx+0Ch] .text:08000CF0 cmp dword ptr [ebx+14h], 0 .text:08000CF4 jnz short loc_0_8000D0F .text:08000CF6 push ebx .text:08000CF7 mov eax, [ebx+44h] .text:08000CFA call eax .text:08000CFC add esp, 4 .text:08000CFF mov edx, [ebx+20h] .text:08000D02 test edx, edx .text:08000D04 jz short loc_0_8000D0F .text:08000D06 mov eax, [ebx+24h] .text:08000D09 push eax .text:08000D0A call edx .text:08000D0C add esp, 4 .text:08000D0F .text:08000D0F loc_0_8000D0F: ; CODE XREF: flNeedVcc+Cj .text:08000D0F ; flNeedVcc+1Cj .text:08000D0F mov dword ptr [ebx+14h], 2 .text:08000D16 pop ebx .text:08000D17 retn .text:08000D17 flNeedVcc endp .text:08000D17 .text:08000D18 .text:08000D18 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000D18 .text:08000D18 .text:08000D18 public flDontNeedVcc .text:08000D18 flDontNeedVcc proc near ; CODE XREF: flExitSocket+Ep .text:08000D18 ; setBusy+82p .text:08000D18 .text:08000D18 arg_0 = dword ptr 4 .text:08000D18 .text:08000D18 mov edx, [esp+arg_0] .text:08000D1C mov eax, [edx+0Ch] .text:08000D1F test eax, eax .text:08000D21 jle short locret_0_8000D27 .text:08000D23 dec eax .text:08000D24 mov [edx+0Ch], eax .text:08000D27 .text:08000D27 locret_0_8000D27: ; CODE XREF: flDontNeedVcc+9j .text:08000D27 retn .text:08000D27 flDontNeedVcc endp .text:08000D27 .text:08000D28 .text:08000D28 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000D28 .text:08000D28 .text:08000D28 public flSetPowerOnCallback .text:08000D28 flSetPowerOnCallback proc near ; CODE XREF: setNoCallback+Cp .text:08000D28 .text:08000D28 arg_0 = dword ptr 4 .text:08000D28 arg_4 = dword ptr 8 .text:08000D28 arg_8 = dword ptr 0Ch .text:08000D28 .text:08000D28 mov eax, [esp+arg_0] .text:08000D2C mov edx, [esp+arg_4] .text:08000D30 mov ecx, [esp+arg_8] .text:08000D34 mov [eax+20h], edx .text:08000D37 mov [eax+24h], ecx .text:08000D3A retn .text:08000D3A flSetPowerOnCallback endp .text:08000D3A .text:08000D3A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000D3B align 4 .text:08000D3C .text:08000D3C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000D3C .text:08000D3C .text:08000D3C public flIntervalRoutine .text:08000D3C flIntervalRoutine proc near ; CODE XREF: flSocketSetBusy+Cp .text:08000D3C .text:08000D3C arg_0 = dword ptr 4 .text:08000D3C .text:08000D3C mov edx, [esp+arg_0] .text:08000D40 mov ecx, [edx+10h] .text:08000D43 test ecx, ecx .text:08000D45 jnz short locret_0_8000D89 .text:08000D47 mov eax, [edx+18h] .text:08000D4A cmp eax, 2 .text:08000D4D jnz short loc_0_8000D58 .text:08000D4F mov dword ptr [edx+18h], 1 .text:08000D56 jmp short loc_0_8000D60 .text:08000D58 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000D58 .text:08000D58 loc_0_8000D58: ; CODE XREF: flIntervalRoutine+11j .text:08000D58 cmp eax, 1 .text:08000D5B jnz short loc_0_8000D60 .text:08000D5D mov [edx+18h], ecx .text:08000D60 .text:08000D60 loc_0_8000D60: ; CODE XREF: flIntervalRoutine+1Aj .text:08000D60 ; flIntervalRoutine+1Fj .text:08000D60 mov ecx, [edx+0Ch] .text:08000D63 test ecx, ecx .text:08000D65 jnz short locret_0_8000D89 .text:08000D67 mov eax, [edx+14h] .text:08000D6A cmp eax, 2 .text:08000D6D jnz short loc_0_8000D78 .text:08000D6F mov dword ptr [edx+14h], 1 .text:08000D76 retn .text:08000D76 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000D77 align 4 .text:08000D78 .text:08000D78 loc_0_8000D78: ; CODE XREF: flIntervalRoutine+31j .text:08000D78 cmp eax, 1 .text:08000D7B jnz short locret_0_8000D89 .text:08000D7D mov [edx+14h], ecx .text:08000D80 push edx .text:08000D81 mov eax, [edx+48h] .text:08000D84 call eax .text:08000D86 add esp, 4 .text:08000D89 .text:08000D89 locret_0_8000D89: ; CODE XREF: flIntervalRoutine+9j .text:08000D89 ; flIntervalRoutine+29j ... .text:08000D89 retn .text:08000D89 flIntervalRoutine endp .text:08000D89 .text:08000D89 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000D8A align 4 .text:08000D8C .text:08000D8C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000D8C .text:08000D8C .text:08000D8C public updateSocketParameters .text:08000D8C updateSocketParameters proc near ; CODE XREF: bdCall+1D4p .text:08000D8C .text:08000D8C arg_0 = dword ptr 4 .text:08000D8C arg_4 = dword ptr 8 .text:08000D8C .text:08000D8C mov ecx, [esp+arg_0] .text:08000D90 mov edx, [ecx+60h] .text:08000D93 test edx, edx .text:08000D95 jz short loc_0_8000DA2 .text:08000D97 mov eax, [esp+arg_4] .text:08000D9B push eax .text:08000D9C push ecx .text:08000D9D call edx .text:08000D9F add esp, 8 .text:08000DA2 .text:08000DA2 loc_0_8000DA2: ; CODE XREF: updateSocketParameters+9j .text:08000DA2 xor eax, eax .text:08000DA4 retn .text:08000DA4 updateSocketParameters endp .text:08000DA4 .text:08000DA4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000DA5 align 4 .text:08000DA8 .text:08000DA8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000DA8 .text:08000DA8 .text:08000DA8 public flExitSocket .text:08000DA8 flExitSocket proc near ; CODE XREF: flExit+36p .text:08000DA8 .text:08000DA8 arg_0 = dword ptr 8 .text:08000DA8 .text:08000DA8 push ebx .text:08000DA9 mov ebx, [esp+arg_0] .text:08000DAD push 0 .text:08000DAF push ebx .text:08000DB0 call flMap .text:08000DB5 push ebx .text:08000DB6 call flDontNeedVcc .text:08000DBB push 0 .text:08000DBD push ebx .text:08000DBE call flSocketSetBusy .text:08000DC3 push ebx .text:08000DC4 mov eax, [ebx+64h] .text:08000DC7 call eax .text:08000DC9 mov ebx, [ebx] .text:08000DCB lea eax, ds:0[ebx*4] .text:08000DD2 mov eax, ds:volBuffers[eax] .text:08000DD8 push eax .text:08000DD9 call flkfree .text:08000DDE add esp, 1Ch .text:08000DE1 pop ebx .text:08000DE2 retn .text:08000DE2 flExitSocket endp .text:08000DE2 .text:08000DE2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000DE3 align 4 .text:08000DE4 .text:08000DE4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000DE4 .text:08000DE4 .text:08000DE4 public flMount .text:08000DE4 flMount proc near ; CODE XREF: absMountVolume+29p .text:08000DE4 ; mountVolume+29p ... .text:08000DE4 .text:08000DE4 var_38 = dword ptr -38h .text:08000DE4 var_34 = byte ptr -34h .text:08000DE4 arg_0 = dword ptr 4 .text:08000DE4 arg_4 = dword ptr 8 .text:08000DE4 arg_8 = dword ptr 0Ch .text:08000DE4 .text:08000DE4 sub esp, 38h ; Alternative name is 'gcc2_compiled.' .text:08000DE7 push ebp .text:08000DE8 push edi .text:08000DE9 push esi .text:08000DEA push ebx .text:08000DEB mov ecx, [esp+48h+arg_0] .text:08000DEF mov [esp+48h+var_38], 0 .text:08000DF7 push ecx .text:08000DF8 call flSocketOf .text:08000DFD mov edx, eax .text:08000DFF lea eax, [esp+4Ch+var_34] .text:08000E03 push eax .text:08000E04 push edx .text:08000E05 mov edi, 1Ah .text:08000E0A call flIdentifyFlash .text:08000E0F mov esi, eax .text:08000E11 add esp, 0Ch .text:08000E14 test esi, esi .text:08000E16 jz short loc_0_8000E21 .text:08000E18 cmp esi, 1Ah .text:08000E1B jnz loc_0_8000EDA .text:08000E21 .text:08000E21 loc_0_8000E21: ; CODE XREF: flMount+32j .text:08000E21 mov ecx, [esp+48h+arg_4] .text:08000E25 xor ebx, ebx .text:08000E27 mov dword ptr [ecx+28h], 0 .text:08000E2E cmp ds:noOfTLs, ebx .text:08000E34 jle short loc_0_8000E7B .text:08000E36 mov ebp, offset tlTable .text:08000E3B nop .text:08000E3C .text:08000E3C loc_0_8000E3C: ; CODE XREF: flMount+95j .text:08000E3C test edi, edi .text:08000E3E jz short loc_0_8000E7F .text:08000E40 lea edx, ds:0[ebx*8] .text:08000E47 cmp dword ptr [edx+ebp+4], 0 .text:08000E4C jz short loc_0_8000E72 .text:08000E4E lea eax, [esp+48h+var_38] .text:08000E52 push eax .text:08000E53 xor eax, eax .text:08000E55 test esi, esi .text:08000E57 jnz short loc_0_8000E5D .text:08000E59 lea eax, [esp+4Ch+var_34] .text:08000E5D .text:08000E5D loc_0_8000E5D: ; CODE XREF: flMount+73j .text:08000E5D push eax .text:08000E5E mov ecx, [esp+50h+arg_4] .text:08000E62 push ecx .text:08000E63 mov ecx, [esp+54h+arg_0] .text:08000E67 push ecx .text:08000E68 mov eax, [edx+ebp] .text:08000E6B call eax .text:08000E6D mov edi, eax .text:08000E6F add esp, 10h .text:08000E72 .text:08000E72 loc_0_8000E72: ; CODE XREF: flMount+68j .text:08000E72 inc ebx .text:08000E73 cmp ds:noOfTLs, ebx .text:08000E79 jg short loc_0_8000E3C .text:08000E7B .text:08000E7B loc_0_8000E7B: ; CODE XREF: flMount+50j .text:08000E7B test edi, edi .text:08000E7D jnz short loc_0_8000ED8 .text:08000E7F .text:08000E7F loc_0_8000E7F: ; CODE XREF: flMount+5Aj .text:08000E7F mov eax, [esp+48h+var_38] .text:08000E83 test eax, eax .text:08000E85 jz short loc_0_8000E90 .text:08000E87 push eax .text:08000E88 mov eax, [eax+30h] .text:08000E8B call eax .text:08000E8D add esp, 4 .text:08000E90 .text:08000E90 loc_0_8000E90: ; CODE XREF: flMount+A1j .text:08000E90 cmp [esp+48h+arg_8], 0 .text:08000E95 jz short loc_0_8000ED8 .text:08000E97 xor ebx, ebx .text:08000E99 cmp ds:noOfTLs, ebx .text:08000E9F jle short loc_0_8000ED8 .text:08000EA1 mov esi, offset tlTable .text:08000EA6 mov esi, esi .text:08000EA8 .text:08000EA8 loc_0_8000EA8: ; CODE XREF: flMount+F2j .text:08000EA8 lea edx, ds:0[ebx*8] .text:08000EAF mov eax, [edx+esi+4] .text:08000EB3 test eax, eax .text:08000EB5 jnz short loc_0_8000ECF .text:08000EB7 push eax .text:08000EB8 push eax .text:08000EB9 mov ecx, [esp+50h+arg_4] .text:08000EBD push ecx .text:08000EBE mov ecx, [esp+54h+arg_0] .text:08000EC2 push ecx .text:08000EC3 mov eax, [edx+esi] .text:08000EC6 call eax .text:08000EC8 add esp, 10h .text:08000ECB test eax, eax .text:08000ECD jz short loc_0_8000ED8 .text:08000ECF .text:08000ECF loc_0_8000ECF: ; CODE XREF: flMount+D1j .text:08000ECF inc ebx .text:08000ED0 cmp ds:noOfTLs, ebx .text:08000ED6 jg short loc_0_8000EA8 .text:08000ED8 .text:08000ED8 loc_0_8000ED8: ; CODE XREF: flMount+99j .text:08000ED8 ; flMount+B1j ... .text:08000ED8 mov eax, edi .text:08000EDA .text:08000EDA loc_0_8000EDA: ; CODE XREF: flMount+37j .text:08000EDA pop ebx .text:08000EDB pop esi .text:08000EDC pop edi .text:08000EDD pop ebp .text:08000EDE add esp, 38h .text:08000EE1 retn .text:08000EE1 flMount endp .text:08000EE1 .text:08000EE1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000EE2 align 4 .text:08000EE4 .text:08000EE4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000EE4 .text:08000EE4 .text:08000EE4 public flFormat .text:08000EE4 flFormat proc near ; CODE XREF: formatVolume+49p .text:08000EE4 ; formatVolume+81p .text:08000EE4 .text:08000EE4 var_34 = byte ptr -34h .text:08000EE4 arg_0 = dword ptr 4 .text:08000EE4 arg_4 = dword ptr 8 .text:08000EE4 .text:08000EE4 sub esp, 34h .text:08000EE7 push ebp .text:08000EE8 push edi .text:08000EE9 push esi .text:08000EEA push ebx .text:08000EEB mov ebp, [esp+44h+arg_0] .text:08000EEF push ebp .text:08000EF0 call flSocketOf .text:08000EF5 mov edx, eax .text:08000EF7 lea eax, [esp+48h+var_34] .text:08000EFB push eax .text:08000EFC push edx .text:08000EFD mov esi, 1Ah .text:08000F02 call flIdentifyFlash .text:08000F07 mov edi, eax .text:08000F09 add esp, 0Ch .text:08000F0C test edi, edi .text:08000F0E jz short loc_0_8000F15 .text:08000F10 cmp edi, 1Ah .text:08000F13 jnz short loc_0_8000F53 .text:08000F15 .text:08000F15 loc_0_8000F15: ; CODE XREF: flFormat+2Aj .text:08000F15 xor ebx, ebx .text:08000F17 cmp ds:noOfTLs, ebx .text:08000F1D jle short loc_0_8000F51 .text:08000F1F nop .text:08000F20 .text:08000F20 loc_0_8000F20: ; CODE XREF: flFormat+6Bj .text:08000F20 cmp esi, 1Ah .text:08000F23 jnz short loc_0_8000F51 .text:08000F25 mov edx, dword ptr ds:tlTable+4[ebx*8] .text:08000F2C test edx, edx .text:08000F2E jz short loc_0_8000F48 .text:08000F30 xor eax, eax .text:08000F32 test edi, edi .text:08000F34 jnz short loc_0_8000F3A .text:08000F36 lea eax, [esp+44h+var_34] .text:08000F3A .text:08000F3A loc_0_8000F3A: ; CODE XREF: flFormat+50j .text:08000F3A push eax .text:08000F3B mov ecx, [esp+48h+arg_4] .text:08000F3F push ecx .text:08000F40 push ebp .text:08000F41 call edx .text:08000F43 mov esi, eax .text:08000F45 add esp, 0Ch .text:08000F48 .text:08000F48 loc_0_8000F48: ; CODE XREF: flFormat+4Aj .text:08000F48 inc ebx .text:08000F49 cmp ds:noOfTLs, ebx .text:08000F4F jg short loc_0_8000F20 .text:08000F51 .text:08000F51 loc_0_8000F51: ; CODE XREF: flFormat+39j .text:08000F51 ; flFormat+3Fj .text:08000F51 mov eax, esi .text:08000F53 .text:08000F53 loc_0_8000F53: ; CODE XREF: flFormat+2Fj .text:08000F53 pop ebx .text:08000F54 pop esi .text:08000F55 pop edi .text:08000F56 pop ebp .text:08000F57 add esp, 34h .text:08000F5A retn .text:08000F5A flFormat endp .text:08000F5A .text:08000F5A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000F5B align 4 .text:08000F5C .text:08000F5C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000F5C .text:08000F5C .text:08000F5C public noFormat .text:08000F5C noFormat proc near .text:08000F5C xor eax, eax .text:08000F5E retn .text:08000F5E noFormat endp .text:08000F5E .text:08000F5E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000F5F align 4 .text:08000F60 .text:08000F60 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000F60 .text:08000F60 .text:08000F60 eccONread proc near ; CODE XREF: readOneSector+5Fp .text:08000F60 .text:08000F60 arg_0 = dword ptr 4 .text:08000F60 .text:08000F60 mov edx, [esp+arg_0] ; Alternative name is 'gcc2_compiled.' .text:08000F64 mov eax, [edx+18h] .text:08000F67 mov eax, [eax+28h] .text:08000F6A add eax, 1006h .text:08000F6F or eax, 0C0000000h .text:08000F74 mov byte ptr [eax], 0 .text:08000F77 mov eax, [edx+18h] .text:08000F7A mov eax, [eax+28h] .text:08000F7D add eax, 1006h .text:08000F82 or eax, 0C0000000h .text:08000F87 mov byte ptr [eax], 0Ah .text:08000F8A retn .text:08000F8A eccONread endp .text:08000F8A .text:08000F8A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000F8B align 4 .text:08000F8C .text:08000F8C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000F8C .text:08000F8C .text:08000F8C eccONwrite proc near ; CODE XREF: writeOneSector+C5p .text:08000F8C .text:08000F8C arg_0 = dword ptr 4 .text:08000F8C .text:08000F8C mov edx, [esp+arg_0] .text:08000F90 mov eax, [edx+18h] .text:08000F93 mov eax, [eax+28h] .text:08000F96 add eax, 1006h .text:08000F9B or eax, 0C0000000h .text:08000FA0 mov byte ptr [eax], 0 .text:08000FA3 mov eax, [edx+18h] .text:08000FA6 mov eax, [eax+28h] .text:08000FA9 add eax, 1006h .text:08000FAE or eax, 0C0000000h .text:08000FB3 mov byte ptr [eax], 2Ah .text:08000FB6 retn .text:08000FB6 eccONwrite endp .text:08000FB6 .text:08000FB6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08000FB7 align 4 .text:08000FB8 .text:08000FB8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000FB8 .text:08000FB8 .text:08000FB8 eccOFF proc near ; CODE XREF: writeOneSector+1D6p .text:08000FB8 ; readOneSector+1BBp ... .text:08000FB8 .text:08000FB8 arg_0 = dword ptr 4 .text:08000FB8 .text:08000FB8 mov eax, [esp+arg_0] .text:08000FBC mov eax, [eax+18h] .text:08000FBF mov eax, [eax+28h] .text:08000FC2 add eax, 1006h .text:08000FC7 or eax, 0C0000000h .text:08000FCC mov byte ptr [eax], 2 .text:08000FCF retn .text:08000FCF eccOFF endp .text:08000FCF .text:08000FD0 .text:08000FD0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08000FD0 .text:08000FD0 .text:08000FD0 eccError proc near ; CODE XREF: readOneSector+111p .text:08000FD0 .text:08000FD0 var_1 = byte ptr -1 .text:08000FD0 arg_0 = dword ptr 4 .text:08000FD0 .text:08000FD0 sub esp, 4 .text:08000FD3 push esi .text:08000FD4 push ebx .text:08000FD5 mov esi, [esp+0Ch+arg_0] .text:08000FD9 mov [esp+0Ch+var_1], 0 .text:08000FDE mov eax, [esi+18h] .text:08000FE1 test byte ptr [eax+1Ch], 8 .text:08000FE5 jz short loc_0_8001018 .text:08000FE7 xor ecx, ecx .text:08000FE9 mov ebx, eax .text:08000FEB nop .text:08000FEC .text:08000FEC loc_0_8000FEC: ; CODE XREF: eccError+39j .text:08000FEC mov eax, [ebx+28h] .text:08000FEF add eax, 1006h .text:08000FF4 or eax, 0C0000000h .text:08000FF9 mov dl, [esp+0Ch+var_1] .text:08000FFD mov al, [eax] .text:08000FFF add dl, al .text:08001001 inc ecx .text:08001002 mov [esp+0Ch+var_1], dl .text:08001006 cmp ecx, 1 .text:08001009 jle short loc_0_8000FEC .text:0800100B mov eax, [esi+18h] .text:0800100E mov eax, [eax+28h] .text:08001011 add eax, 1006h .text:08001016 jmp short loc_0_8001046 .text:08001018 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001018 .text:08001018 loc_0_8001018: ; CODE XREF: eccError+15j .text:08001018 xor ecx, ecx .text:0800101A mov ebx, eax .text:0800101C .text:0800101C loc_0_800101C: ; CODE XREF: eccError+69j .text:0800101C mov eax, [ebx+28h] .text:0800101F add eax, 1007h .text:08001024 or eax, 0C0000000h .text:08001029 mov dl, [esp+0Ch+var_1] .text:0800102D mov al, [eax] .text:0800102F add dl, al .text:08001031 inc ecx .text:08001032 mov [esp+0Ch+var_1], dl .text:08001036 cmp ecx, 1 .text:08001039 jle short loc_0_800101C .text:0800103B mov eax, [esi+18h] .text:0800103E mov eax, [eax+28h] .text:08001041 add eax, 1007h .text:08001046 .text:08001046 loc_0_8001046: ; CODE XREF: eccError+46j .text:08001046 or eax, 0C0000000h .text:0800104B mov al, [eax] .text:0800104D pop ebx .text:0800104E and al, 80h .text:08001050 pop esi .text:08001051 and eax, 0FFh .text:08001056 add esp, 4 .text:08001059 retn .text:08001059 eccError endp .text:08001059 .text:08001059 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800105A align 4 .text:0800105C .text:0800105C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800105C .text:0800105C .text:0800105C makeCommand proc near ; CODE XREF: writeOneSector+57p .text:0800105C ; readOneSector+3Ep .text:0800105C .text:0800105C arg_0 = dword ptr 14h .text:0800105C arg_4 = dword ptr 18h .text:0800105C arg_8 = dword ptr 1Ch .text:0800105C arg_C = dword ptr 20h .text:0800105C .text:0800105C push ebp .text:0800105D push edi .text:0800105E push esi .text:0800105F push ebx .text:08001060 mov ebp, [esp+arg_0] .text:08001064 mov esi, [esp+arg_4] .text:08001068 mov ebx, [esp+arg_8] .text:0800106C mov ecx, [esp+arg_C] .text:08001070 test byte ptr [ebp+15h], 1 .text:08001074 jnz short loc_0_80010A4 .text:08001076 mov eax, ecx .text:08001078 and eax, 4 .text:0800107B jz short loc_0_80010A0 .text:0800107D mov edx, [ebx] .text:0800107F mov dword ptr [esi], 50h .text:08001085 and edx, 1FFh .text:0800108B cmp edx, 7 .text:0800108E ja short loc_0_8001098 .text:08001090 add dword ptr [ebx], 100h .text:08001096 jmp short loc_0_8001103 .text:08001098 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001098 .text:08001098 loc_0_8001098: ; CODE XREF: makeCommand+32j .text:08001098 add dword ptr [ebx], 0FFFFFFF8h .text:0800109B jmp short loc_0_8001103 .text:0800109B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800109D align 4 .text:080010A0 .text:080010A0 loc_0_80010A0: ; CODE XREF: makeCommand+1Fj .text:080010A0 mov [esi], eax .text:080010A2 jmp short loc_0_8001103 .text:080010A4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080010A4 .text:080010A4 loc_0_80010A4: ; CODE XREF: makeCommand+18j .text:080010A4 mov eax, [ebp+18h] .text:080010A7 mov di, [ebx] .text:080010AA and di, [eax+8] .text:080010AE mov eax, edi .text:080010B0 xor edx, edx .text:080010B2 mov dx, ax .text:080010B5 sub [ebx], edx .text:080010B7 test cl, 4 .text:080010BA jz short loc_0_80010C2 .text:080010BC add edx, 200h .text:080010C2 .text:080010C2 loc_0_80010C2: ; CODE XREF: makeCommand+5Ej .text:080010C2 mov ecx, [ebp+18h] .text:080010C5 xor eax, eax .text:080010C7 mov ax, [ecx+0Ah] .text:080010CB cmp edx, eax .text:080010CD jnb short loc_0_80010D8 .text:080010CF mov dword ptr [esi], 0 .text:080010D5 jmp short loc_0_80010F2 .text:080010D5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080010D7 align 4 .text:080010D8 .text:080010D8 loc_0_80010D8: ; CODE XREF: makeCommand+71j .text:080010D8 xor eax, eax .text:080010DA mov ax, [ecx+6] .text:080010DE cmp edx, eax .text:080010E0 jnb short loc_0_80010EC .text:080010E2 mov dword ptr [esi], 1 .text:080010E8 jmp short loc_0_80010F2 .text:080010E8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080010EA align 4 .text:080010EC .text:080010EC loc_0_80010EC: ; CODE XREF: makeCommand+84j .text:080010EC mov dword ptr [esi], 50h .text:080010F2 .text:080010F2 loc_0_80010F2: ; CODE XREF: makeCommand+79j .text:080010F2 ; makeCommand+8Cj .text:080010F2 mov eax, [ebp+18h] .text:080010F5 mov ax, [eax+0Ah] .text:080010F9 and eax, 0FFFFh .text:080010FE dec eax .text:080010FF and edx, eax .text:08001101 add [ebx], edx .text:08001103 .text:08001103 loc_0_8001103: ; CODE XREF: makeCommand+3Aj .text:08001103 ; makeCommand+3Fj ... .text:08001103 pop ebx .text:08001104 pop esi .text:08001105 pop edi .text:08001106 pop ebp .text:08001107 retn .text:08001107 makeCommand endp .text:08001107 .text:08001108 .text:08001108 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001108 .text:08001108 .text:08001108 busy proc near ; CODE XREF: waitForReady+9p .text:08001108 .text:08001108 var_2 = byte ptr -2 .text:08001108 var_1 = byte ptr -1 .text:08001108 arg_0 = dword ptr 4 .text:08001108 .text:08001108 sub esp, 4 .text:0800110B push esi .text:0800110C push ebx .text:0800110D mov esi, [esp+0Ch+arg_0] .text:08001111 mov [esp+0Ch+var_1], 0 .text:08001116 xor ecx, ecx .text:08001118 mov ebx, [esi+18h] .text:0800111B nop .text:0800111C .text:0800111C loc_0_800111C: ; CODE XREF: busy+31j .text:0800111C mov eax, [ebx+28h] .text:0800111F add eax, 1020h .text:08001124 or eax, 0C0000000h .text:08001129 mov dl, [esp+0Ch+var_1] .text:0800112D mov al, [eax] .text:0800112F add dl, al .text:08001131 inc ecx .text:08001132 mov [esp+0Ch+var_1], dl .text:08001136 cmp ecx, 3 .text:08001139 jle short loc_0_800111C .text:0800113B mov edx, [esi+18h] .text:0800113E mov eax, [edx+28h] .text:08001141 add eax, 1004h .text:08001146 or eax, 0C0000000h .text:0800114B xor ecx, ecx .text:0800114D mov al, [eax] .text:0800114F mov ebx, edx .text:08001151 mov [esp+0Ch+var_2], al .text:08001155 lea esi, [esi+0] .text:08001158 .text:08001158 loc_0_8001158: ; CODE XREF: busy+6Dj .text:08001158 mov eax, [ebx+28h] .text:0800115B add eax, 1020h .text:08001160 or eax, 0C0000000h .text:08001165 mov dl, [esp+0Ch+var_1] .text:08001169 mov al, [eax] .text:0800116B add dl, al .text:0800116D inc ecx .text:0800116E mov [esp+0Ch+var_1], dl .text:08001172 cmp ecx, 1 .text:08001175 jle short loc_0_8001158 .text:08001177 mov al, [esp+0Ch+var_2] .text:0800117B shr al, 7 .text:0800117E pop ebx .text:0800117F xor al, 1 .text:08001181 pop esi .text:08001182 and eax, 0FFh .text:08001187 add esp, 4 .text:0800118A retn .text:0800118A busy endp .text:0800118A .text:0800118A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800118B align 4 .text:0800118C .text:0800118C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800118C .text:0800118C .text:0800118C waitForReady proc near ; CODE XREF: readCommand+1Fp .text:0800118C ; writeCommand+17p ... .text:0800118C .text:0800118C arg_0 = dword ptr 0Ch .text:0800118C .text:0800118C push esi .text:0800118D push ebx .text:0800118E xor ebx, ebx .text:08001190 mov esi, [esp+arg_0] .text:08001194 .text:08001194 loc_0_8001194: ; CODE XREF: waitForReady+1Cj .text:08001194 push esi .text:08001195 call busy .text:0800119A add esp, 4 .text:0800119D test eax, eax .text:0800119F jz short loc_0_80011BC .text:080011A1 inc ebx .text:080011A2 cmp ebx, 752Fh .text:080011A8 jle short loc_0_8001194 .text:080011AA push offset aDebugTimeoutEr ; "Debug: timeout error in NFDC 2148.\n" .text:080011AF call flprintk .text:080011B4 xor eax, eax .text:080011B6 add esp, 4 .text:080011B9 jmp short loc_0_80011C1 .text:080011B9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080011BB align 4 .text:080011BC .text:080011BC loc_0_80011BC: ; CODE XREF: waitForReady+13j .text:080011BC mov eax, 1 .text:080011C1 .text:080011C1 loc_0_80011C1: ; CODE XREF: waitForReady+2Dj .text:080011C1 pop ebx .text:080011C2 pop esi .text:080011C3 retn .text:080011C3 waitForReady endp .text:080011C3 .text:080011C4 .text:080011C4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080011C4 .text:080011C4 .text:080011C4 writeSignals proc near ; CODE XREF: selectChip+15p .text:080011C4 ; selectChip+56p ... .text:080011C4 .text:080011C4 var_1 = byte ptr -1 .text:080011C4 arg_0 = dword ptr 4 .text:080011C4 arg_4 = dword ptr 8 .text:080011C4 .text:080011C4 sub esp, 4 .text:080011C7 push ebx .text:080011C8 mov ecx, [esp+8+arg_0] .text:080011CC mov [esp+8+var_1], 0 .text:080011D1 mov eax, [ecx+18h] .text:080011D4 mov eax, [eax+28h] .text:080011D7 add eax, 1004h .text:080011DC or eax, 0C0000000h .text:080011E1 mov edx, [esp+8+arg_4] .text:080011E5 mov [eax], dl .text:080011E7 xor ebx, ebx .text:080011E9 mov ecx, [ecx+18h] .text:080011EC .text:080011EC loc_0_80011EC: ; CODE XREF: writeSignals+45j .text:080011EC mov eax, [ecx+28h] .text:080011EF add eax, 1020h .text:080011F4 or eax, 0C0000000h .text:080011F9 mov dl, [esp+8+var_1] .text:080011FD mov al, [eax] .text:080011FF add dl, al .text:08001201 inc ebx .text:08001202 mov [esp+8+var_1], dl .text:08001206 cmp ebx, 3 .text:08001209 jle short loc_0_80011EC .text:0800120B pop ebx .text:0800120C add esp, 4 .text:0800120F retn .text:0800120F writeSignals endp .text:0800120F .text:08001210 .text:08001210 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001210 .text:08001210 .text:08001210 selectChip proc near ; CODE XREF: mapWin+4Bp .text:08001210 ; doc2Identify+196p .text:08001210 .text:08001210 var_1 = byte ptr -1 .text:08001210 arg_0 = dword ptr 4 .text:08001210 arg_4 = dword ptr 8 .text:08001210 .text:08001210 sub esp, 4 .text:08001213 push esi .text:08001214 push ebx .text:08001215 mov esi, [esp+0Ch+arg_0] .text:08001219 mov [esp+0Ch+var_1], 0 .text:0800121E mov ebx, [esp+0Ch+arg_4] .text:08001222 push 8 .text:08001224 push esi .text:08001225 call writeSignals .text:0800122A mov eax, [esi+18h] .text:0800122D mov eax, [eax+28h] .text:08001230 add eax, 1005h .text:08001235 or eax, 0C0000000h .text:0800123A xor ecx, ecx .text:0800123C mov [eax], bl .text:0800123E add esp, 8 .text:08001241 mov ebx, [esi+18h] .text:08001244 .text:08001244 loc_0_8001244: ; CODE XREF: selectChip+51j .text:08001244 mov eax, [ebx+28h] .text:08001247 add eax, 1020h .text:0800124C or eax, 0C0000000h .text:08001251 mov dl, [esp+0Ch+var_1] .text:08001255 mov al, [eax] .text:08001257 add dl, al .text:08001259 inc ecx .text:0800125A mov [esp+0Ch+var_1], dl .text:0800125E cmp ecx, 3 .text:08001261 jle short loc_0_8001244 .text:08001263 push 19h .text:08001265 push esi .text:08001266 call writeSignals .text:0800126B add esp, 8 .text:0800126E pop ebx .text:0800126F pop esi .text:08001270 add esp, 4 .text:08001273 retn .text:08001273 selectChip endp .text:08001273 .text:08001274 .text:08001274 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001274 .text:08001274 .text:08001274 chkASICmode proc near ; CODE XREF: doc2Write+4Ap .text:08001274 ; doc2Read+38p ... .text:08001274 .text:08001274 arg_0 = dword ptr 8 .text:08001274 .text:08001274 push ebx .text:08001275 mov ecx, [esp+arg_0] .text:08001279 mov eax, [ecx+18h] .text:0800127C mov edx, [eax+28h] .text:0800127F lea eax, [edx+1001h] .text:08001285 or eax, 0C0000000h .text:0800128A mov bl, [eax] .text:0800128C test bl, bl .text:0800128E jnz short loc_0_80012B7 .text:08001290 lea eax, [edx+1002h] .text:08001296 or eax, 0C0000000h .text:0800129B mov byte ptr [eax], 85h .text:0800129E mov eax, [ecx+18h] .text:080012A1 mov eax, [eax+28h] .text:080012A4 add eax, 1002h .text:080012A9 or eax, 0C0000000h .text:080012AE mov byte ptr [eax], 85h .text:080012B1 mov eax, [ecx+18h] .text:080012B4 mov [eax+15h], bl .text:080012B7 .text:080012B7 loc_0_80012B7: ; CODE XREF: chkASICmode+1Aj .text:080012B7 pop ebx .text:080012B8 retn .text:080012B8 chkASICmode endp .text:080012B8 .text:080012B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080012B9 align 4 .text:080012BC .text:080012BC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080012BC .text:080012BC .text:080012BC setASICmode proc near ; CODE XREF: doc2Identify+56p .text:080012BC .text:080012BC arg_0 = dword ptr 8 .text:080012BC arg_4 = dword ptr 0Ch .text:080012BC .text:080012BC push ebx .text:080012BD mov eax, [esp+arg_0] .text:080012C1 mov ebx, [esp+arg_4] .text:080012C5 push 0 .text:080012C7 mov eax, [eax+1Ch] .text:080012CA push eax .text:080012CB call flMap .text:080012D0 add eax, 1002h .text:080012D5 or eax, 0C0000000h .text:080012DA mov [eax], bl .text:080012DC add esp, 8 .text:080012DF mov [eax], bl .text:080012E1 pop ebx .text:080012E2 retn .text:080012E2 setASICmode endp .text:080012E2 .text:080012E2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080012E3 align 4 .text:080012E4 .text:080012E4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080012E4 .text:080012E4 .text:080012E4 checkToggle proc near ; CODE XREF: checkWinForDOC+3Ep .text:080012E4 ; flDocWindowBaseAddress+BAp ... .text:080012E4 .text:080012E4 var_2 = byte ptr -2 .text:080012E4 var_1 = byte ptr -1 .text:080012E4 arg_4 = dword ptr 8 .text:080012E4 .text:080012E4 sub esp, 4 .text:080012E7 mov edx, [esp+4+arg_4] .text:080012EB lea eax, [edx+1000h] .text:080012F1 or eax, 0C0000000h .text:080012F6 mov al, [eax] .text:080012F8 cmp al, 30h .text:080012FA jnz short loc_0_8001304 .text:080012FC add edx, 1006h .text:08001302 jmp short loc_0_800130A .text:08001304 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001304 .text:08001304 loc_0_8001304: ; CODE XREF: checkToggle+16j .text:08001304 add edx, 1007h .text:0800130A .text:0800130A loc_0_800130A: ; CODE XREF: checkToggle+1Ej .text:0800130A or edx, 0C0000000h .text:08001310 mov al, [edx] .text:08001312 mov [esp+4+var_1], al .text:08001316 mov al, [esp+4+var_1] .text:0800131A mov dl, [edx] .text:0800131C xor al, dl .text:0800131E mov [esp+4+var_2], al .text:08001322 mov al, [esp+4+var_2] .text:08001326 test al, 4 .text:08001328 jz short loc_0_8001330 .text:0800132A xor eax, eax .text:0800132C jmp short loc_0_8001335 .text:0800132C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800132E align 4 .text:08001330 .text:08001330 loc_0_8001330: ; CODE XREF: checkToggle+44j .text:08001330 mov eax, 1 .text:08001335 .text:08001335 loc_0_8001335: ; CODE XREF: checkToggle+48j .text:08001335 add esp, 4 .text:08001338 retn .text:08001338 checkToggle endp .text:08001338 .text:08001338 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001339 align 4 .text:0800133C .text:0800133C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800133C .text:0800133C .text:0800133C public checkWinForDOC .text:0800133C checkWinForDOC proc near .text:0800133C .text:0800133C arg_0 = dword ptr 4 .text:0800133C arg_4 = dword ptr 8 .text:0800133C .text:0800133C mov ecx, [esp+arg_4] .text:08001340 lea eax, [ecx+1002h] .text:08001346 or eax, 0C0000000h .text:0800134B mov byte ptr [eax], 84h .text:0800134E mov byte ptr [eax], 84h .text:08001351 lea edx, [ecx+1000h] .text:08001357 mov byte ptr [eax], 85h .text:0800135A or edx, 0C0000000h .text:08001360 mov byte ptr [eax], 85h .text:08001363 mov al, [edx] .text:08001365 cmp al, 20h .text:08001367 jz short loc_0_8001374 .text:08001369 mov al, [edx] .text:0800136B cmp al, 30h .text:0800136D jz short loc_0_8001374 .text:0800136F xor eax, eax .text:08001371 retn .text:08001371 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001372 align 4 .text:08001374 .text:08001374 loc_0_8001374: ; CODE XREF: checkWinForDOC+2Bj .text:08001374 ; checkWinForDOC+31j .text:08001374 push ecx .text:08001375 mov eax, [esp+4+arg_0] .text:08001379 push eax .text:0800137A call checkToggle .text:0800137F add esp, 8 .text:08001382 test eax, eax .text:08001384 jnz short loc_0_800138C .text:08001386 mov eax, 1 .text:0800138B retn .text:0800138C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800138C .text:0800138C loc_0_800138C: ; CODE XREF: checkWinForDOC+48j .text:0800138C xor eax, eax .text:0800138E retn .text:0800138E checkWinForDOC endp .text:0800138E .text:0800138E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800138F align 4 .text:08001390 .text:08001390 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001390 .text:08001390 .text:08001390 public flDocWindowBaseAddress .text:08001390 flDocWindowBaseAddress proc near ; CODE XREF: flRegisterDOCSOC+40p .text:08001390 .text:08001390 var_1 = byte ptr -1 .text:08001390 arg_0 = dword ptr 4 .text:08001390 arg_4 = dword ptr 8 .text:08001390 arg_8 = dword ptr 0Ch .text:08001390 .text:08001390 sub esp, 4 .text:08001393 push ebp .text:08001394 push edi .text:08001395 push esi .text:08001396 push ebx .text:08001397 xor ebp, ebp .text:08001399 mov edi, [esp+14h+arg_4] .text:0800139D test edi, edi .text:0800139F jnz short loc_0_80013AE .text:080013A1 mov edi, 0C8000h .text:080013A6 mov [esp+14h+arg_8], 0F0000h .text:080013AE .text:080013AE loc_0_80013AE: ; CODE XREF: flDocWindowBaseAddress+Fj .text:080013AE cmp currentAddress_432, edi .text:080013B4 jnb short loc_0_80013F4 .text:080013B6 mov currentAddress_432, edi .text:080013BC cmp [esp+14h+arg_8], edi .text:080013C0 jb short loc_0_80013EE .text:080013C2 mov esi, esi .text:080013C4 .text:080013C4 loc_0_80013C4: ; CODE XREF: flDocWindowBaseAddress+5Cj .text:080013C4 mov eax, currentAddress_432 .text:080013C9 add eax, 1002h .text:080013CE or eax, 0C0000000h .text:080013D3 mov byte ptr [eax], 84h .text:080013D6 mov byte ptr [eax], 84h .text:080013D9 mov eax, currentAddress_432 .text:080013DE add eax, 2000h .text:080013E3 mov currentAddress_432, eax .text:080013E8 cmp [esp+14h+arg_8], eax .text:080013EC jnb short loc_0_80013C4 .text:080013EE .text:080013EE loc_0_80013EE: ; CODE XREF: flDocWindowBaseAddress+30j .text:080013EE mov currentAddress_432, edi .text:080013F4 .text:080013F4 loc_0_80013F4: ; CODE XREF: flDocWindowBaseAddress+24j .text:080013F4 mov eax, currentAddress_432 .text:080013F9 cmp [esp+14h+arg_8], eax .text:080013FD jb loc_0_80014FA .text:08001403 nop .text:08001404 .text:08001404 loc_0_8001404: ; CODE XREF: flDocWindowBaseAddress+164j .text:08001404 mov ebx, eax .text:08001406 lea eax, [ebx+1002h] .text:0800140C or eax, 0C0000000h .text:08001411 lea edx, [ebx+1000h] .text:08001417 mov byte ptr [eax], 85h .text:0800141A or edx, 0C0000000h .text:08001420 mov byte ptr [eax], 85h .text:08001423 mov al, [edx] .text:08001425 cmp al, 20h .text:08001427 jz short loc_0_8001440 .text:08001429 mov al, [edx] .text:0800142B cmp al, 30h .text:0800142D jz short loc_0_8001440 .text:0800142F cmp ebp, 1 .text:08001432 jz loc_0_80014FA .text:08001438 jmp loc_0_80014E1 .text:08001438 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800143D align 4 .text:08001440 .text:08001440 loc_0_8001440: ; CODE XREF: flDocWindowBaseAddress+97j .text:08001440 ; flDocWindowBaseAddress+9Dj .text:08001440 test ebp, ebp .text:08001442 jnz short loc_0_8001490 .text:08001444 push ebx .text:08001445 mov ecx, [esp+18h+arg_0] .text:08001449 push ecx .text:0800144A call checkToggle .text:0800144F add esp, 8 .text:08001452 test eax, eax .text:08001454 jnz loc_0_80014E1 .text:0800145A lea eax, [ebx+1000h] .text:08001460 or eax, 0C0000000h .text:08001465 mov al, [eax] .text:08001467 test al, al .text:08001469 jz short loc_0_8001474 .text:0800146B lea eax, [ebx+101Bh] .text:08001471 jmp short loc_0_800147A .text:08001471 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001473 align 4 .text:08001474 .text:08001474 loc_0_8001474: ; CODE XREF: flDocWindowBaseAddress+D9j .text:08001474 lea eax, [ebx+1005h] .text:0800147A .text:0800147A loc_0_800147A: ; CODE XREF: flDocWindowBaseAddress+E1j .text:0800147A or eax, 0C0000000h .text:0800147F mov byte ptr [eax], 1Ah .text:08001482 mov ebp, 1 .text:08001487 mov edi, currentAddress_432 .text:0800148D jmp short loc_0_80014E1 .text:0800148D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800148F align 4 .text:08001490 .text:08001490 loc_0_8001490: ; CODE XREF: flDocWindowBaseAddress+B2j .text:08001490 lea esi, [ebx+1000h] .text:08001496 or esi, 0C0000000h .text:0800149C mov al, [esi] .text:0800149E cmp al, 20h .text:080014A0 jz short loc_0_80014A8 .text:080014A2 mov al, [esi] .text:080014A4 cmp al, 30h .text:080014A6 jnz short loc_0_80014FA .text:080014A8 .text:080014A8 loc_0_80014A8: ; CODE XREF: flDocWindowBaseAddress+110j .text:080014A8 push ebx .text:080014A9 mov ecx, [esp+18h+arg_0] .text:080014AD push ecx .text:080014AE call checkToggle .text:080014B3 add esp, 8 .text:080014B6 test eax, eax .text:080014B8 jnz short loc_0_80014FA .text:080014BA mov al, [esi] .text:080014BC cmp al, 30h .text:080014BE jnz short loc_0_80014C8 .text:080014C0 lea eax, [ebx+101Bh] .text:080014C6 jmp short loc_0_80014CE .text:080014C8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080014C8 .text:080014C8 loc_0_80014C8: ; CODE XREF: flDocWindowBaseAddress+12Ej .text:080014C8 lea eax, [ebx+1005h] .text:080014CE .text:080014CE loc_0_80014CE: ; CODE XREF: flDocWindowBaseAddress+136j .text:080014CE or eax, 0C0000000h .text:080014D3 mov al, [eax] .text:080014D5 mov [esp+14h+var_1], al .text:080014D9 mov al, [esp+14h+var_1] .text:080014DD cmp al, 1Ah .text:080014DF jnz short loc_0_80014FA .text:080014E1 .text:080014E1 loc_0_80014E1: ; CODE XREF: flDocWindowBaseAddress+A8j .text:080014E1 ; flDocWindowBaseAddress+C4j ... .text:080014E1 mov eax, currentAddress_432 .text:080014E6 add eax, 2000h .text:080014EB mov currentAddress_432, eax .text:080014F0 cmp [esp+14h+arg_8], eax .text:080014F4 jnb loc_0_8001404 .text:080014FA .text:080014FA loc_0_80014FA: ; CODE XREF: flDocWindowBaseAddress+6Dj .text:080014FA ; flDocWindowBaseAddress+A2j ... .text:080014FA test ebp, ebp .text:080014FC jz short loc_0_8001508 .text:080014FE shr edi, 0Ch .text:08001501 mov eax, edi .text:08001503 jmp short loc_0_800150A .text:08001503 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001505 align 4 .text:08001508 .text:08001508 loc_0_8001508: ; CODE XREF: flDocWindowBaseAddress+16Cj .text:08001508 mov eax, ebp .text:0800150A .text:0800150A loc_0_800150A: ; CODE XREF: flDocWindowBaseAddress+173j .text:0800150A pop ebx .text:0800150B pop esi .text:0800150C pop edi .text:0800150D pop ebp .text:0800150E add esp, 4 .text:08001511 retn .text:08001511 flDocWindowBaseAddress endp .text:08001511 .text:08001511 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001512 align 4 .text:08001514 .text:08001514 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001514 .text:08001514 .text:08001514 setAddress proc near ; CODE XREF: readCommand+19p .text:08001514 ; writeCommand+3Dp .text:08001514 .text:08001514 arg_0 = dword ptr 0Ch .text:08001514 arg_4 = dword ptr 10h .text:08001514 .text:08001514 push esi .text:08001515 push ebx .text:08001516 mov esi, [esp+arg_0] .text:0800151A mov eax, [esi+8] .text:0800151D imul eax, [esi+10h] .text:08001521 lea ebx, [eax-1] .text:08001524 and ebx, [esp+arg_4] .text:08001528 test byte ptr [esi+15h], 1 .text:0800152C jz short loc_0_800153E .text:0800152E mov eax, ebx .text:08001530 shr eax, 9 .text:08001533 and ebx, 0FFh .text:08001539 shl eax, 8 .text:0800153C or ebx, eax .text:0800153E .text:0800153E loc_0_800153E: ; CODE XREF: setAddress+18j .text:0800153E push 15h .text:08001540 push esi .text:08001541 call writeSignals .text:08001546 mov eax, [esi+18h] .text:08001549 mov edx, [eax+24h] .text:0800154C add edx, [eax+28h] .text:0800154F or edx, 0C0000000h .text:08001555 mov [edx], bl .text:08001557 mov eax, [esi+18h] .text:0800155A mov edx, [eax+24h] .text:0800155D add edx, [eax+28h] .text:08001560 mov eax, ebx .text:08001562 or edx, 0C0000000h .text:08001568 shr eax, 8 .text:0800156B mov [edx], al .text:0800156D mov eax, [esi+18h] .text:08001570 mov edx, [eax+24h] .text:08001573 add edx, [eax+28h] .text:08001576 mov eax, ebx .text:08001578 or edx, 0C0000000h .text:0800157E shr eax, 10h .text:08001581 mov [edx], al .text:08001583 mov eax, [esi+18h] .text:08001586 add esp, 8 .text:08001589 test byte ptr [eax+1Ch], 8 .text:0800158D jz short loc_0_800159F .text:0800158F mov eax, [eax+28h] .text:08001592 add eax, 101Eh .text:08001597 or eax, 0C0000000h .text:0800159C mov byte ptr [eax], 0 .text:0800159F .text:0800159F loc_0_800159F: ; CODE XREF: setAddress+79j .text:0800159F push 31h .text:080015A1 push esi .text:080015A2 call writeSignals .text:080015A7 add esp, 8 .text:080015AA pop ebx .text:080015AB pop esi .text:080015AC retn .text:080015AC setAddress endp .text:080015AC .text:080015AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080015AD align 4 .text:080015B0 .text:080015B0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080015B0 .text:080015B0 .text:080015B0 command proc near ; CODE XREF: readStatus+11p .text:080015B0 ; readCommand+12p ... .text:080015B0 .text:080015B0 arg_0 = dword ptr 0Ch .text:080015B0 arg_4 = dword ptr 10h .text:080015B0 .text:080015B0 push esi .text:080015B1 push ebx .text:080015B2 mov ebx, [esp+arg_0] .text:080015B6 mov esi, [esp+arg_4] .text:080015BA push 13h .text:080015BC push ebx .text:080015BD call writeSignals .text:080015C2 mov eax, [ebx+18h] .text:080015C5 mov edx, [eax+24h] .text:080015C8 add edx, [eax+28h] .text:080015CB or edx, 0C0000000h .text:080015D1 mov ecx, esi .text:080015D3 mov [edx], cl .text:080015D5 mov eax, [ebx+18h] .text:080015D8 add esp, 8 .text:080015DB test byte ptr [eax+1Ch], 8 .text:080015DF jz short loc_0_80015F0 .text:080015E1 mov eax, [eax+28h] .text:080015E4 add eax, 101Eh .text:080015E9 or eax, 0C0000000h .text:080015EE mov [eax], cl .text:080015F0 .text:080015F0 loc_0_80015F0: ; CODE XREF: command+2Fj .text:080015F0 push 11h .text:080015F2 push ebx .text:080015F3 call writeSignals .text:080015F8 add esp, 8 .text:080015FB pop ebx .text:080015FC pop esi .text:080015FD retn .text:080015FD command endp .text:080015FD .text:080015FD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080015FE align 4 .text:08001600 .text:08001600 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001600 .text:08001600 .text:08001600 selectFloor proc near ; CODE XREF: mapWin+22p .text:08001600 .text:08001600 arg_0 = dword ptr 10h .text:08001600 arg_4 = dword ptr 14h .text:08001600 .text:08001600 push edi .text:08001601 push esi .text:08001602 push ebx .text:08001603 mov ebx, [esp+arg_0] .text:08001607 mov edi, [ebx+18h] .text:0800160A mov esi, [esp+arg_4] .text:0800160E cmp byte ptr [edi+14h], 1 .text:08001612 jbe short loc_0_800164A .text:08001614 mov ecx, [esi] .text:08001616 mov eax, ecx .text:08001618 xor edx, edx .text:0800161A div dword ptr [edi+18h] .text:0800161D mov ecx, eax .text:0800161F mov dl, cl .text:08001621 cmp [edi+15h], dl .text:08001624 jz short loc_0_800163B .text:08001626 mov [edi+15h], cl .text:08001629 mov eax, [ebx+18h] .text:0800162C mov eax, [eax+28h] .text:0800162F add eax, 1003h .text:08001634 or eax, 0C0000000h .text:08001639 mov [eax], cl .text:0800163B .text:0800163B loc_0_800163B: ; CODE XREF: selectFloor+24j .text:0800163B mov eax, [ebx+18h] .text:0800163E and edx, 0FFh .text:08001644 imul edx, [eax+18h] .text:08001648 sub [esi], edx .text:0800164A .text:0800164A loc_0_800164A: ; CODE XREF: selectFloor+12j .text:0800164A pop ebx .text:0800164B pop esi .text:0800164C pop edi .text:0800164D retn .text:0800164D selectFloor endp .text:0800164D .text:0800164D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800164E align 4 .text:08001650 .text:08001650 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001650 .text:08001650 .text:08001650 mapWin proc near ; CODE XREF: writeOneSector+46p .text:08001650 ; readOneSector+2Dp ... .text:08001650 .text:08001650 var_4 = dword ptr -4 .text:08001650 arg_0 = dword ptr 4 .text:08001650 arg_4 = dword ptr 8 .text:08001650 .text:08001650 sub esp, 4 .text:08001653 push esi .text:08001654 push ebx .text:08001655 mov ebx, [esp+0Ch+arg_0] .text:08001659 mov esi, [esp+0Ch+arg_4] .text:0800165D push 0 .text:0800165F mov eax, [ebx+1Ch] .text:08001662 push eax .text:08001663 call flMap .text:08001668 mov edx, [ebx+18h] .text:0800166B mov ecx, eax .text:0800166D mov [edx+28h], ecx .text:08001670 push esi .text:08001671 push ebx .text:08001672 call selectFloor .text:08001677 mov eax, [ebx+8] .text:0800167A imul eax, [ebx+10h] .text:0800167E mov [esp+1Ch+var_4], eax .text:08001682 mov esi, [esi] .text:08001684 mov eax, esi .text:08001686 xor edx, edx .text:08001688 div [esp+1Ch+var_4] .text:0800168C mov esi, eax .text:0800168E and eax, 0FFh .text:08001693 mov [esp+1Ch+var_4], eax .text:08001697 mov edx, eax .text:08001699 push edx .text:0800169A push ebx .text:0800169B call selectChip .text:080016A0 add esp, 18h .text:080016A3 pop ebx .text:080016A4 pop esi .text:080016A5 add esp, 4 .text:080016A8 retn .text:080016A8 mapWin endp .text:080016A8 .text:080016A8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080016A9 align 4 .text:080016AC .text:080016AC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080016AC .text:080016AC .text:080016AC rdBuf proc near ; CODE XREF: readOneSector+B5p .text:080016AC ; readOneSector+D9p ... .text:080016AC .text:080016AC var_8 = dword ptr -8 .text:080016AC var_1 = byte ptr -1 .text:080016AC arg_0 = dword ptr 4 .text:080016AC arg_4 = dword ptr 8 .text:080016AC arg_8 = dword ptr 0Ch .text:080016AC .text:080016AC sub esp, 8 .text:080016AF push ebp .text:080016B0 push edi .text:080016B1 push esi .text:080016B2 push ebx .text:080016B3 mov esi, [esp+18h+arg_0] .text:080016B7 mov [esp+18h+var_1], 0 .text:080016BC mov ecx, [esi+18h] .text:080016BF mov ebp, [esp+18h+arg_4] .text:080016C3 mov ebx, [esp+18h+arg_8] .text:080016C7 test byte ptr [ecx+1Ch], 8 .text:080016CB jz short loc_0_800171C .text:080016CD mov eax, [ecx+28h] .text:080016D0 add eax, 101Dh .text:080016D5 or eax, 0C0000000h .text:080016DA mov dl, [esp+18h+var_1] .text:080016DE mov al, [eax] .text:080016E0 add dl, al .text:080016E2 dec ebx .text:080016E3 mov [esp+18h+var_1], dl .text:080016E7 mov edx, ebx .text:080016E9 cmp ebx, 100h .text:080016EF jle short loc_0_80016F6 .text:080016F1 mov edx, 100h .text:080016F6 .text:080016F6 loc_0_80016F6: ; CODE XREF: rdBuf+43j .text:080016F6 mov esi, [ecx+24h] .text:080016F9 mov edi, ebp .text:080016FB add esi, [ecx+28h] .text:080016FE mov ecx, edx .text:08001700 or esi, 0C0000000h .text:08001706 shr ecx, 2 .text:08001709 cld .text:0800170A repe movsd .text:0800170C test dl, 2 .text:0800170F jz short loc_0_8001713 .text:08001711 movsw .text:08001713 .text:08001713 loc_0_8001713: ; CODE XREF: rdBuf+63j .text:08001713 test dl, 1 .text:08001716 jz short loc_0_8001719 .text:08001718 movsb .text:08001719 .text:08001719 loc_0_8001719: ; CODE XREF: rdBuf+6Aj .text:08001719 jmp short loc_0_800171E .text:08001719 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800171B align 4 .text:0800171C .text:0800171C loc_0_800171C: ; CODE XREF: rdBuf+1Fj .text:0800171C xor edx, edx .text:0800171E .text:0800171E loc_0_800171E: ; CODE XREF: rdBuf+6Dj .text:0800171E cmp ebx, edx .text:08001720 jle short loc_0_8001755 .text:08001722 mov esi, [esp+18h+arg_0] .text:08001726 mov eax, [esi+18h] .text:08001729 mov esi, [eax+24h] .text:0800172C mov eax, [eax+28h] .text:0800172F add esi, eax .text:08001731 mov eax, ebx .text:08001733 lea edi, [edx+ebp] .text:08001736 sub eax, edx .text:08001738 or esi, 0C0000000h .text:0800173E mov ecx, eax .text:08001740 mov [esp+18h+var_8], esi .text:08001744 shr ecx, 2 .text:08001747 cld .text:08001748 repe movsd .text:0800174A test al, 2 .text:0800174C jz short loc_0_8001750 .text:0800174E movsw .text:08001750 .text:08001750 loc_0_8001750: ; CODE XREF: rdBuf+A0j .text:08001750 test al, 1 .text:08001752 jz short loc_0_8001755 .text:08001754 movsb .text:08001755 .text:08001755 loc_0_8001755: ; CODE XREF: rdBuf+74j .text:08001755 ; rdBuf+A6j .text:08001755 mov esi, [esp+18h+arg_0] .text:08001759 mov eax, [esi+18h] .text:0800175C test byte ptr [eax+1Ch], 8 .text:08001760 jz short loc_0_8001774 .text:08001762 mov eax, [eax+28h] .text:08001765 add eax, 101Fh .text:0800176A or eax, 0C0000000h .text:0800176F mov al, [eax] .text:08001771 mov [ebx+ebp], al .text:08001774 .text:08001774 loc_0_8001774: ; CODE XREF: rdBuf+B4j .text:08001774 pop ebx .text:08001775 pop esi .text:08001776 pop edi .text:08001777 pop ebp .text:08001778 add esp, 8 .text:0800177B retn .text:0800177B rdBuf endp .text:0800177B .text:0800177C .text:0800177C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800177C .text:0800177C .text:0800177C wrBuf proc near ; CODE XREF: writeOneSector+10Dp .text:0800177C ; writeOneSector+143p ... .text:0800177C .text:0800177C arg_0 = dword ptr 10h .text:0800177C arg_4 = dword ptr 14h .text:0800177C arg_8 = dword ptr 18h .text:0800177C .text:0800177C push edi .text:0800177D push esi .text:0800177E push ebx .text:0800177F mov ebx, [esp+arg_0] .text:08001783 mov edx, [ebx+18h] .text:08001786 mov esi, [esp+arg_4] .text:0800178A mov eax, [esp+arg_8] .text:0800178E mov edi, [edx+24h] .text:08001791 mov ecx, eax .text:08001793 add edi, [edx+28h] .text:08001796 shr ecx, 2 .text:08001799 or edi, 0C0000000h .text:0800179F cld .text:080017A0 repe movsd .text:080017A2 test al, 2 .text:080017A4 jz short loc_0_80017A8 .text:080017A6 movsw .text:080017A8 .text:080017A8 loc_0_80017A8: ; CODE XREF: wrBuf+28j .text:080017A8 test al, 1 .text:080017AA jz short loc_0_80017AD .text:080017AC movsb .text:080017AD .text:080017AD loc_0_80017AD: ; CODE XREF: wrBuf+2Ej .text:080017AD mov eax, [ebx+18h] .text:080017B0 test byte ptr [eax+1Ch], 8 .text:080017B4 jz short loc_0_80017C6 .text:080017B6 mov eax, [eax+28h] .text:080017B9 add eax, 101Eh .text:080017BE or eax, 0C0000000h .text:080017C3 mov byte ptr [eax], 0 .text:080017C6 .text:080017C6 loc_0_80017C6: ; CODE XREF: wrBuf+38j .text:080017C6 pop ebx .text:080017C7 pop esi .text:080017C8 pop edi .text:080017C9 retn .text:080017C9 wrBuf endp .text:080017C9 .text:080017C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080017CA align 4 .text:080017CC .text:080017CC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080017CC .text:080017CC .text:080017CC wrSet proc near ; CODE XREF: writeOneSector+9Ep .text:080017CC ; writeOneSector+1A1p .text:080017CC .text:080017CC arg_0 = dword ptr 0Ch .text:080017CC arg_4 = byte ptr 10h .text:080017CC arg_8 = dword ptr 14h .text:080017CC .text:080017CC push edi .text:080017CD push ebx .text:080017CE mov edx, [esp+arg_0] .text:080017D2 mov eax, [edx+18h] .text:080017D5 mov ecx, [esp+arg_8] .text:080017D9 mov edi, [eax+24h] .text:080017DC mov bl, [esp+arg_4] .text:080017E0 add edi, [eax+28h] .text:080017E3 mov al, bl .text:080017E5 or edi, 0C0000000h .text:080017EB cld .text:080017EC repe stosb .text:080017EE mov edx, [edx+18h] .text:080017F1 test byte ptr [edx+1Ch], 8 .text:080017F5 jz short loc_0_8001807 .text:080017F7 mov eax, [edx+28h] .text:080017FA add eax, 101Eh .text:080017FF or eax, 0C0000000h .text:08001804 mov byte ptr [eax], 0 .text:08001807 .text:08001807 loc_0_8001807: ; CODE XREF: wrSet+29j .text:08001807 pop ebx .text:08001808 pop edi .text:08001809 retn .text:08001809 wrSet endp .text:08001809 .text:08001809 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800180A align 4 .text:0800180C .text:0800180C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800180C .text:0800180C .text:0800180C readStatus proc near ; CODE XREF: writeExecute+14p .text:0800180C ; doc2Erase+19Cp ... .text:0800180C .text:0800180C var_1 = byte ptr -1 .text:0800180C arg_0 = dword ptr 4 .text:0800180C .text:0800180C sub esp, 4 .text:0800180F push esi .text:08001810 push ebx .text:08001811 mov [esp+0Ch+var_1], 0 .text:08001816 mov esi, [esp+0Ch+arg_0] .text:0800181A push 70h .text:0800181C push esi .text:0800181D call command .text:08001822 mov ecx, [esi+18h] .text:08001825 mov edx, [ecx+28h] .text:08001828 add edx, 100Dh .text:0800182E or edx, 0C0000000h .text:08001834 mov al, [esp+14h+var_1] .text:08001838 mov dl, [edx] .text:0800183A add al, dl .text:0800183C mov [esp+14h+var_1], al .text:08001840 xor ebx, ebx .text:08001842 add esp, 8 .text:08001845 lea esi, [esi+0] .text:08001848 .text:08001848 loc_0_8001848: ; CODE XREF: readStatus+59j .text:08001848 mov eax, [ecx+28h] .text:0800184B add eax, 1020h .text:08001850 or eax, 0C0000000h .text:08001855 mov dl, [esp+0Ch+var_1] .text:08001859 mov al, [eax] .text:0800185B add dl, al .text:0800185D inc ebx .text:0800185E mov [esp+0Ch+var_1], dl .text:08001862 cmp ebx, 1 .text:08001865 jle short loc_0_8001848 .text:08001867 mov eax, [esi+18h] .text:0800186A mov edx, [eax+24h] .text:0800186D add edx, [eax+28h] .text:08001870 or edx, 0C0000000h .text:08001876 mov bl, [edx] .text:08001878 push 18h .text:0800187A push esi .text:0800187B call writeSignals .text:08001880 xor eax, eax .text:08001882 add esp, 8 .text:08001885 mov al, bl .text:08001887 pop ebx .text:08001888 pop esi .text:08001889 add esp, 4 .text:0800188C retn .text:0800188C readStatus endp .text:0800188C .text:0800188C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800188D align 4 .text:08001890 .text:08001890 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001890 .text:08001890 .text:08001890 readCommand proc near ; CODE XREF: readOneSector+4Ep .text:08001890 ; readOneSector+CBp .text:08001890 .text:08001890 arg_0 = dword ptr 0Ch .text:08001890 arg_4 = byte ptr 10h .text:08001890 arg_8 = dword ptr 14h .text:08001890 .text:08001890 push esi .text:08001891 push ebx .text:08001892 xor eax, eax .text:08001894 mov ebx, [esp+arg_0] .text:08001898 mov al, [esp+arg_4] .text:0800189C mov esi, [esp+arg_8] .text:080018A0 push eax .text:080018A1 push ebx .text:080018A2 call command .text:080018A7 push esi .text:080018A8 push ebx .text:080018A9 call setAddress .text:080018AE push ebx .text:080018AF call waitForReady .text:080018B4 add esp, 14h .text:080018B7 pop ebx .text:080018B8 pop esi .text:080018B9 retn .text:080018B9 readCommand endp .text:080018B9 .text:080018B9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080018BA align 4 .text:080018BC .text:080018BC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080018BC .text:080018BC .text:080018BC writeCommand proc near ; CODE XREF: writeOneSector+92p .text:080018BC ; writeOneSector+B3p ... .text:080018BC .text:080018BC arg_0 = dword ptr 8 .text:080018BC arg_4 = byte ptr 0Ch .text:080018BC arg_8 = dword ptr 10h .text:080018BC .text:080018BC push ebx .text:080018BD mov ebx, [esp+arg_0] .text:080018C1 test byte ptr [ebx+15h], 2 .text:080018C5 jz short loc_0_80018DB .text:080018C7 push 0FFh .text:080018CC push ebx .text:080018CD call command .text:080018D2 push ebx .text:080018D3 call waitForReady .text:080018D8 add esp, 0Ch .text:080018DB .text:080018DB loc_0_80018DB: ; CODE XREF: writeCommand+9j .text:080018DB xor eax, eax .text:080018DD mov al, [esp+arg_4] .text:080018E1 push eax .text:080018E2 push ebx .text:080018E3 call command .text:080018E8 push 80h .text:080018ED push ebx .text:080018EE call command .text:080018F3 mov eax, [esp+10h+arg_8] .text:080018F7 push eax .text:080018F8 push ebx .text:080018F9 call setAddress .text:080018FE push ebx .text:080018FF call waitForReady .text:08001904 add esp, 1Ch .text:08001907 pop ebx .text:08001908 retn .text:08001908 writeCommand endp .text:08001908 .text:08001908 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001909 align 4 .text:0800190C .text:0800190C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800190C .text:0800190C .text:0800190C writeExecute proc near ; CODE XREF: writeOneSector+11Ep .text:0800190C ; writeOneSector+1F9p .text:0800190C .text:0800190C arg_0 = dword ptr 8 .text:0800190C .text:0800190C push ebx .text:0800190D mov ebx, [esp+arg_0] .text:08001911 push 10h .text:08001913 push ebx .text:08001914 call command .text:08001919 push ebx .text:0800191A call waitForReady .text:0800191F push ebx .text:08001920 call readStatus .text:08001925 add esp, 10h .text:08001928 test al, 1 .text:0800192A jz short loc_0_8001940 .text:0800192C push offset aDebugNfdc2148W ; "Debug: NFDC 2148 write failed.\n" .text:08001931 call flprintk .text:08001936 mov eax, 1Dh .text:0800193B add esp, 4 .text:0800193E jmp short loc_0_8001942 .text:08001940 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001940 .text:08001940 loc_0_8001940: ; CODE XREF: writeExecute+1Ej .text:08001940 xor eax, eax .text:08001942 .text:08001942 loc_0_8001942: ; CODE XREF: writeExecute+32j .text:08001942 pop ebx .text:08001943 retn .text:08001943 writeExecute endp .text:08001943 .text:08001944 .text:08001944 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001944 .text:08001944 .text:08001944 writeOneSector proc near ; CODE XREF: doc2Write+7Fp .text:08001944 .text:08001944 var_10 = dword ptr -10h .text:08001944 var_C = dword ptr -0Ch .text:08001944 var_8 = dword ptr -8 .text:08001944 var_4 = word ptr -4 .text:08001944 arg_0 = dword ptr 4 .text:08001944 arg_4 = dword ptr 8 .text:08001944 arg_8 = dword ptr 0Ch .text:08001944 arg_C = dword ptr 10h .text:08001944 arg_10 = dword ptr 14h .text:08001944 .text:08001944 sub esp, 10h .text:08001947 push ebp .text:08001948 push edi .text:08001949 push esi .text:0800194A push ebx .text:0800194B mov [esp+20h+var_10], 0 .text:08001953 mov ecx, [esp+20h+var_10] .text:08001957 mov esi, [esp+20h+arg_0] .text:0800195B mov [esp+20h+var_C], ecx .text:0800195F mov edi, [esp+20h+arg_C] .text:08001963 mov eax, [esi+1Ch] .text:08001966 mov ebp, [esp+20h+arg_8] .text:0800196A push eax .text:0800196B call flWriteProtected .text:08001970 add esp, 4 .text:08001973 test eax, eax .text:08001975 jz short loc_0_8001984 .text:08001977 mov eax, 13h .text:0800197C jmp loc_0_8001B58 .text:0800197C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001981 align 4 .text:08001984 .text:08001984 loc_0_8001984: ; CODE XREF: writeOneSector+31j .text:08001984 lea ebx, [esp+20h+arg_4] .text:08001988 push ebx .text:08001989 push esi .text:0800198A call mapWin .text:0800198F mov ecx, [esp+28h+arg_10] .text:08001993 push ecx .text:08001994 push ebx .text:08001995 lea eax, [esp+30h+var_C] .text:08001999 push eax .text:0800199A push esi .text:0800199B call makeCommand .text:080019A0 add esp, 18h .text:080019A3 test byte ptr [esi+15h], 2 .text:080019A7 jz short loc_0_80019EC .text:080019A9 cmp [esp+20h+var_C], 1 .text:080019AE jnz short loc_0_80019EC .text:080019B0 mov edx, [esi+18h] .text:080019B3 mov eax, [esp+20h+arg_4] .text:080019B7 and ax, [edx+8] .text:080019BB xor ebx, ebx .text:080019BD mov bx, ax .text:080019C0 xor eax, eax .text:080019C2 mov ax, [edx+0Ah] .text:080019C6 add ebx, 2 .text:080019C9 add eax, [esp+20h+arg_4] .text:080019CD sub eax, ebx .text:080019CF push eax .text:080019D0 mov ecx, [esp+24h+var_10] .text:080019D4 push ecx .text:080019D5 push esi .text:080019D6 call writeCommand .text:080019DB push ebx .text:080019DC push 0FFh .text:080019E1 push esi .text:080019E2 call wrSet .text:080019E7 add esp, 18h .text:080019EA jmp short loc_0_80019FF .text:080019EC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080019EC .text:080019EC loc_0_80019EC: ; CODE XREF: writeOneSector+63j .text:080019EC ; writeOneSector+6Aj .text:080019EC mov eax, [esp+20h+arg_4] .text:080019F0 push eax .text:080019F1 mov eax, [esp+24h+var_C] .text:080019F5 push eax .text:080019F6 push esi .text:080019F7 call writeCommand .text:080019FC add esp, 0Ch .text:080019FF .text:080019FF loc_0_80019FF: ; CODE XREF: writeOneSector+A6j .text:080019FF mov ecx, [esp+20h+arg_10] .text:08001A03 test cl, 2 .text:08001A06 jz short loc_0_8001A11 .text:08001A08 push esi .text:08001A09 call eccONwrite .text:08001A0E add esp, 4 .text:08001A11 .text:08001A11 loc_0_8001A11: ; CODE XREF: writeOneSector+C2j .text:08001A11 test byte ptr [esi+15h], 1 .text:08001A15 jnz short loc_0_8001A94 .text:08001A17 xor ebx, ebx .text:08001A19 mov bx, word ptr [esp+20h+arg_4] .text:08001A1E mov edx, [esp+20h+arg_10] .text:08001A22 mov eax, 100h .text:08001A27 and edx, 4 .text:08001A2A jz short loc_0_8001A3C .text:08001A2C mov eax, 8 .text:08001A31 test edx, edx .text:08001A33 jz short loc_0_8001A3C .text:08001A35 and ebx, 7 .text:08001A38 jmp short loc_0_8001A42 .text:08001A38 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001A3A align 4 .text:08001A3C .text:08001A3C loc_0_8001A3C: ; CODE XREF: writeOneSector+E6j .text:08001A3C ; writeOneSector+EFj .text:08001A3C and ebx, 0FFh .text:08001A42 .text:08001A42 loc_0_8001A42: ; CODE XREF: writeOneSector+F4j .text:08001A42 sub eax, ebx .text:08001A44 mov ebx, eax .text:08001A46 cmp ebx, edi .text:08001A48 jle short loc_0_8001A4C .text:08001A4A mov ebx, edi .text:08001A4C .text:08001A4C loc_0_8001A4C: ; CODE XREF: writeOneSector+104j .text:08001A4C push ebx .text:08001A4D push ebp .text:08001A4E push esi .text:08001A4F sub edi, ebx .text:08001A51 call wrBuf .text:08001A56 add esp, 0Ch .text:08001A59 test edi, edi .text:08001A5B jle short loc_0_8001A9F .text:08001A5D test ebx, ebx .text:08001A5F jle short loc_0_8001A72 .text:08001A61 push esi .text:08001A62 call writeExecute .text:08001A67 add esp, 4 .text:08001A6A test eax, eax .text:08001A6C jnz loc_0_8001B58 .text:08001A72 .text:08001A72 loc_0_8001A72: ; CODE XREF: writeOneSector+11Bj .text:08001A72 mov eax, [esp+20h+arg_4] .text:08001A76 add eax, ebx .text:08001A78 push eax .text:08001A79 push 0 .text:08001A7B push esi .text:08001A7C call writeCommand .text:08001A81 push edi .text:08001A82 lea eax, [ebx+ebp] .text:08001A85 push eax .text:08001A86 push esi .text:08001A87 call wrBuf .text:08001A8C add esp, 18h .text:08001A8F jmp short loc_0_8001A9F .text:08001A8F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001A91 align 4 .text:08001A94 .text:08001A94 loc_0_8001A94: ; CODE XREF: writeOneSector+D1j .text:08001A94 push edi .text:08001A95 push ebp .text:08001A96 push esi .text:08001A97 call wrBuf .text:08001A9C add esp, 0Ch .text:08001A9F .text:08001A9F loc_0_8001A9F: ; CODE XREF: writeOneSector+117j .text:08001A9F ; writeOneSector+14Bj .text:08001A9F mov ecx, [esp+20h+arg_10] .text:08001AA3 test cl, 2 .text:08001AA6 jz loc_0_8001B3C .text:08001AAC push 21h .text:08001AAE push esi .text:08001AAF call writeSignals .text:08001AB4 mov eax, [esi+18h] .text:08001AB7 add esp, 8 .text:08001ABA test byte ptr [eax+1Ch], 8 .text:08001ABE jz short loc_0_8001AE0 .text:08001AC0 xor edx, edx .text:08001AC2 mov esi, esi .text:08001AC4 .text:08001AC4 loc_0_8001AC4: ; CODE XREF: writeOneSector+197j .text:08001AC4 mov eax, [esi+18h] .text:08001AC7 mov eax, [eax+28h] .text:08001ACA add eax, 1020h .text:08001ACF or eax, 0C0000000h .text:08001AD4 inc edx .text:08001AD5 mov byte ptr [eax], 0 .text:08001AD8 cmp edx, 2 .text:08001ADB jle short loc_0_8001AC4 .text:08001ADD jmp short loc_0_8001AED .text:08001ADD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001ADF align 4 .text:08001AE0 .text:08001AE0 loc_0_8001AE0: ; CODE XREF: writeOneSector+17Aj .text:08001AE0 push 3 .text:08001AE2 push 0 .text:08001AE4 push esi .text:08001AE5 call wrSet .text:08001AEA add esp, 0Ch .text:08001AED .text:08001AED loc_0_8001AED: ; CODE XREF: writeOneSector+199j .text:08001AED push 31h .text:08001AEF push esi .text:08001AF0 call writeSignals .text:08001AF5 mov eax, [esi+18h] .text:08001AF8 mov edx, [eax+28h] .text:08001AFB add edx, 1010h .text:08001B01 or edx, 0C0000000h .text:08001B07 add esp, 8 .text:08001B0A mov eax, [edx] .text:08001B0C mov [esp+20h+var_8], eax .text:08001B10 mov ax, [edx+4] .text:08001B14 mov [esp+20h+var_4], ax .text:08001B19 push esi .text:08001B1A call eccOFF .text:08001B1F push 6 .text:08001B21 lea eax, [esp+28h+var_8] .text:08001B25 push eax .text:08001B26 push esi .text:08001B27 call wrBuf .text:08001B2C push 2 .text:08001B2E push offset anandMark_457 .text:08001B33 push esi .text:08001B34 call wrBuf .text:08001B39 add esp, 1Ch .text:08001B3C .text:08001B3C loc_0_8001B3C: ; CODE XREF: writeOneSector+162j .text:08001B3C push esi .text:08001B3D call writeExecute .text:08001B42 add esp, 4 .text:08001B45 test eax, eax .text:08001B47 jnz short loc_0_8001B58 .text:08001B49 push 18h .text:08001B4B push esi .text:08001B4C call writeSignals .text:08001B51 mov eax, [esp+28h+var_10] .text:08001B55 add esp, 8 .text:08001B58 .text:08001B58 loc_0_8001B58: ; CODE XREF: writeOneSector+38j .text:08001B58 ; writeOneSector+128j ... .text:08001B58 pop ebx .text:08001B59 pop esi .text:08001B5A pop edi .text:08001B5B pop ebp .text:08001B5C add esp, 10h .text:08001B5F retn .text:08001B5F writeOneSector endp .text:08001B5F .text:08001B60 .text:08001B60 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001B60 .text:08001B60 .text:08001B60 doc2Write proc near ; DATA XREF: doc2Identify+2D7o .text:08001B60 .text:08001B60 var_8 = dword ptr -8 .text:08001B60 var_4 = dword ptr -4 .text:08001B60 arg_0 = dword ptr 4 .text:08001B60 arg_4 = dword ptr 8 .text:08001B60 arg_8 = dword ptr 0Ch .text:08001B60 arg_C = dword ptr 10h .text:08001B60 arg_10 = dword ptr 14h .text:08001B60 .text:08001B60 sub esp, 8 .text:08001B63 push ebp .text:08001B64 push edi .text:08001B65 push esi .text:08001B66 push ebx .text:08001B67 mov ebp, [esp+18h+arg_4] .text:08001B6B mov esi, [esp+18h+arg_C] .text:08001B6F mov edi, [esp+18h+arg_10] .text:08001B73 mov ecx, [esp+18h+arg_8] .text:08001B77 mov [esp+18h+var_8], 200h .text:08001B7F mov [esp+18h+var_4], ecx .text:08001B83 test edi, 4 .text:08001B89 jz short loc_0_8001B93 .text:08001B8B mov [esp+18h+var_8], 8 .text:08001B93 .text:08001B93 loc_0_8001B93: ; CODE XREF: doc2Write+29j .text:08001B93 xor eax, eax .text:08001B95 mov ax, bp .text:08001B98 mov edx, [esp+18h+var_8] .text:08001B9C mov ebx, [esp+18h+var_8] .text:08001BA0 dec edx .text:08001BA1 mov ecx, [esp+18h+arg_0] .text:08001BA5 and edx, eax .text:08001BA7 push ecx .text:08001BA8 sub ebx, edx .text:08001BAA call chkASICmode .text:08001BAF add esp, 4 .text:08001BB2 test esi, esi .text:08001BB4 jle short loc_0_8001BFB .text:08001BB6 mov esi, esi .text:08001BB8 .text:08001BB8 loc_0_8001BB8: ; CODE XREF: doc2Write+99j .text:08001BB8 cmp ebx, esi .text:08001BBA jle short loc_0_8001BBE .text:08001BBC mov ebx, esi .text:08001BBE .text:08001BBE loc_0_8001BBE: ; CODE XREF: doc2Write+5Aj .text:08001BBE cmp ebx, 200h .text:08001BC4 jz short loc_0_8001BD0 .text:08001BC6 mov eax, edi .text:08001BC8 and al, 0FDh .text:08001BCA mov edi, eax .text:08001BCC jmp short loc_0_8001BD2 .text:08001BCC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001BCE align 4 .text:08001BD0 .text:08001BD0 loc_0_8001BD0: ; CODE XREF: doc2Write+64j .text:08001BD0 mov eax, edi .text:08001BD2 .text:08001BD2 loc_0_8001BD2: ; CODE XREF: doc2Write+6Cj .text:08001BD2 push eax .text:08001BD3 push ebx .text:08001BD4 mov ecx, [esp+20h+var_4] .text:08001BD8 push ecx .text:08001BD9 push ebp .text:08001BDA mov ecx, [esp+28h+arg_0] .text:08001BDE push ecx .text:08001BDF call writeOneSector .text:08001BE4 add esp, 14h .text:08001BE7 test eax, eax .text:08001BE9 jnz short loc_0_8001BFD .text:08001BEB sub esi, ebx .text:08001BED add [esp+18h+var_4], ebx .text:08001BF1 add ebp, ebx .text:08001BF3 mov ebx, [esp+18h+var_8] .text:08001BF7 test esi, esi .text:08001BF9 jg short loc_0_8001BB8 .text:08001BFB .text:08001BFB loc_0_8001BFB: ; CODE XREF: doc2Write+54j .text:08001BFB xor eax, eax .text:08001BFD .text:08001BFD loc_0_8001BFD: ; CODE XREF: doc2Write+89j .text:08001BFD pop ebx .text:08001BFE pop esi .text:08001BFF pop edi .text:08001C00 pop ebp .text:08001C01 add esp, 8 .text:08001C04 retn .text:08001C04 doc2Write endp .text:08001C04 .text:08001C04 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001C05 align 4 .text:08001C08 .text:08001C08 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001C08 .text:08001C08 .text:08001C08 readOneSector proc near ; CODE XREF: readOneSector+13Dp .text:08001C08 ; doc2Read+7Fp .text:08001C08 .text:08001C08 var_1C = dword ptr -1Ch .text:08001C08 var_18 = dword ptr -18h .text:08001C08 var_14 = word ptr -14h .text:08001C08 var_10 = dword ptr -10h .text:08001C08 var_C = dword ptr -0Ch .text:08001C08 var_8 = byte ptr -8 .text:08001C08 arg_0 = dword ptr 4 .text:08001C08 arg_4 = dword ptr 8 .text:08001C08 arg_8 = dword ptr 0Ch .text:08001C08 arg_C = dword ptr 10h .text:08001C08 arg_10 = dword ptr 14h .text:08001C08 .text:08001C08 sub esp, 1Ch .text:08001C0B push ebp .text:08001C0C push edi .text:08001C0D push esi .text:08001C0E push ebx .text:08001C0F mov esi, [esp+2Ch+arg_0] .text:08001C13 mov [esp+2Ch+var_1C], 0 .text:08001C1B mov eax, [esp+2Ch+arg_4] .text:08001C1F mov ecx, [esp+2Ch+var_1C] .text:08001C23 mov [esp+2Ch+var_10], eax .text:08001C27 mov [esp+2Ch+var_C], ecx .text:08001C2B lea eax, [esp+2Ch+arg_4] .text:08001C2F mov ebp, [esp+2Ch+arg_10] .text:08001C33 push eax .text:08001C34 push esi .text:08001C35 call mapWin .text:08001C3A push ebp .text:08001C3B lea eax, [esp+38h+var_10] .text:08001C3F push eax .text:08001C40 lea eax, [esp+3Ch+var_C] .text:08001C44 push eax .text:08001C45 push esi .text:08001C46 call makeCommand .text:08001C4B mov eax, [esp+44h+var_10] .text:08001C4F push eax .text:08001C50 mov eax, [esp+48h+var_C] .text:08001C54 push eax .text:08001C55 push esi .text:08001C56 call readCommand .text:08001C5B add esp, 24h .text:08001C5E test ebp, 2 .text:08001C64 jz short loc_0_8001C6F .text:08001C66 push esi .text:08001C67 call eccONread .text:08001C6C add esp, 4 .text:08001C6F .text:08001C6F loc_0_8001C6F: ; CODE XREF: readOneSector+5Cj .text:08001C6F test byte ptr [esi+15h], 1 .text:08001C73 jnz short loc_0_8001CEC .text:08001C75 xor ebx, ebx .text:08001C77 mov bx, word ptr [esp+2Ch+arg_4] .text:08001C7C mov edx, [esp+2Ch+var_C] .text:08001C80 mov eax, 100h .text:08001C85 cmp edx, 50h .text:08001C88 jnz short loc_0_8001C9C .text:08001C8A mov eax, 8 .text:08001C8F cmp edx, 50h .text:08001C92 jnz short loc_0_8001C9C .text:08001C94 and ebx, 7 .text:08001C97 jmp short loc_0_8001CA2 .text:08001C97 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001C99 align 4 .text:08001C9C .text:08001C9C loc_0_8001C9C: ; CODE XREF: readOneSector+80j .text:08001C9C ; readOneSector+8Aj .text:08001C9C and ebx, 0FFh .text:08001CA2 .text:08001CA2 loc_0_8001CA2: ; CODE XREF: readOneSector+8Fj .text:08001CA2 sub eax, ebx .text:08001CA4 mov ebx, eax .text:08001CA6 cmp [esp+2Ch+arg_C], ebx .text:08001CAA jge short loc_0_8001CB0 .text:08001CAC mov ebx, [esp+2Ch+arg_C] .text:08001CB0 .text:08001CB0 loc_0_8001CB0: ; CODE XREF: readOneSector+A2j .text:08001CB0 mov edi, [esp+2Ch+arg_C] .text:08001CB4 push ebx .text:08001CB5 mov ecx, [esp+30h+arg_8] .text:08001CB9 push ecx .text:08001CBA push esi .text:08001CBB sub edi, ebx .text:08001CBD call rdBuf .text:08001CC2 add esp, 0Ch .text:08001CC5 test edi, edi .text:08001CC7 jle short loc_0_8001CFF .text:08001CC9 mov eax, [esp+2Ch+arg_4] .text:08001CCD add eax, ebx .text:08001CCF push eax .text:08001CD0 push 0 .text:08001CD2 push esi .text:08001CD3 call readCommand .text:08001CD8 push edi .text:08001CD9 mov eax, [esp+3Ch+arg_8] .text:08001CDD add eax, ebx .text:08001CDF push eax .text:08001CE0 push esi .text:08001CE1 call rdBuf .text:08001CE6 add esp, 18h .text:08001CE9 jmp short loc_0_8001CFF .text:08001CE9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001CEB align 4 .text:08001CEC .text:08001CEC loc_0_8001CEC: ; CODE XREF: readOneSector+6Bj .text:08001CEC mov ecx, [esp+2Ch+arg_C] .text:08001CF0 push ecx .text:08001CF1 mov ecx, [esp+30h+arg_8] .text:08001CF5 push ecx .text:08001CF6 push esi .text:08001CF7 call rdBuf .text:08001CFC add esp, 0Ch .text:08001CFF .text:08001CFF loc_0_8001CFF: ; CODE XREF: readOneSector+BFj .text:08001CFF ; readOneSector+E1j .text:08001CFF test ebp, 2 .text:08001D05 jz loc_0_8001DCB .text:08001D0B push 6 .text:08001D0D lea eax, [esp+30h+var_8] .text:08001D11 push eax .text:08001D12 push esi .text:08001D13 call rdBuf .text:08001D18 push esi .text:08001D19 call eccError .text:08001D1E add esp, 10h .text:08001D21 test eax, eax .text:08001D23 jz loc_0_8001DC2 .text:08001D29 test bp, bp .text:08001D2C jl short loc_0_8001D54 .text:08001D2E or ebp, 8000h .text:08001D34 push ebp .text:08001D35 mov ecx, [esp+30h+arg_C] .text:08001D39 push ecx .text:08001D3A mov ecx, [esp+34h+arg_8] .text:08001D3E push ecx .text:08001D3F mov eax, [esp+38h+arg_4] .text:08001D43 push eax .text:08001D44 push esi .text:08001D45 call readOneSector .text:08001D4A add esp, 14h .text:08001D4D jmp loc_0_8001DDA .text:08001D4D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001D52 align 4 .text:08001D54 .text:08001D54 loc_0_8001D54: ; CODE XREF: readOneSector+124j .text:08001D54 mov eax, [esi+18h] .text:08001D57 mov edx, [eax+28h] .text:08001D5A add edx, 1010h .text:08001D60 or edx, 0C0000000h .text:08001D66 mov eax, [edx] .text:08001D68 mov [esp+2Ch+var_18], eax .text:08001D6C mov ax, [edx+4] .text:08001D70 mov [esp+2Ch+var_14], ax .text:08001D75 mov dl, byte ptr [esp+2Ch+var_18] .text:08001D79 mov al, byte ptr [esp+2Ch+var_14] .text:08001D7D mov byte ptr [esp+2Ch+var_14], dl .text:08001D81 mov byte ptr [esp+2Ch+var_18], al .text:08001D85 mov dl, byte ptr [esp+2Ch+var_18+1] .text:08001D89 mov al, byte ptr [esp+2Ch+var_14+1] .text:08001D8D mov byte ptr [esp+2Ch+var_14+1], dl .text:08001D91 mov byte ptr [esp+2Ch+var_18+1], al .text:08001D95 push 1 .text:08001D97 lea eax, [esp+30h+var_18] .text:08001D9B push eax .text:08001D9C mov ecx, [esp+34h+arg_8] .text:08001DA0 push ecx .text:08001DA1 call flCheckAndFixEDC .text:08001DA6 add esp, 0Ch .text:08001DA9 test eax, eax .text:08001DAB jz short loc_0_8001DC2 .text:08001DAD push offset aDebugEdcErrorF ; "Debug: EDC error for NFDC 2148.\n" .text:08001DB2 call flprintk .text:08001DB7 mov [esp+30h+var_1C], 19h .text:08001DBF add esp, 4 .text:08001DC2 .text:08001DC2 loc_0_8001DC2: ; CODE XREF: readOneSector+11Bj .text:08001DC2 ; readOneSector+1A3j .text:08001DC2 push esi .text:08001DC3 call eccOFF .text:08001DC8 add esp, 4 .text:08001DCB .text:08001DCB loc_0_8001DCB: ; CODE XREF: readOneSector+FDj .text:08001DCB push 18h .text:08001DCD push esi .text:08001DCE call writeSignals .text:08001DD3 mov eax, [esp+34h+var_1C] .text:08001DD7 add esp, 8 .text:08001DDA .text:08001DDA loc_0_8001DDA: ; CODE XREF: readOneSector+145j .text:08001DDA pop ebx .text:08001DDB pop esi .text:08001DDC pop edi .text:08001DDD pop ebp .text:08001DDE add esp, 1Ch .text:08001DE1 retn .text:08001DE1 readOneSector endp .text:08001DE1 .text:08001DE1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001DE2 align 4 .text:08001DE4 .text:08001DE4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001DE4 .text:08001DE4 .text:08001DE4 doc2Read proc near ; CODE XREF: doc2Map+19p .text:08001DE4 ; DATA XREF: doc2Identify+2E5o .text:08001DE4 .text:08001DE4 var_8 = dword ptr -8 .text:08001DE4 var_4 = dword ptr -4 .text:08001DE4 arg_0 = dword ptr 4 .text:08001DE4 arg_4 = dword ptr 8 .text:08001DE4 arg_8 = dword ptr 0Ch .text:08001DE4 arg_C = dword ptr 10h .text:08001DE4 arg_10 = dword ptr 14h .text:08001DE4 .text:08001DE4 sub esp, 8 .text:08001DE7 push ebp .text:08001DE8 push edi .text:08001DE9 push esi .text:08001DEA push ebx .text:08001DEB mov ebp, [esp+18h+arg_4] .text:08001DEF mov esi, [esp+18h+arg_C] .text:08001DF3 mov edi, [esp+18h+arg_10] .text:08001DF7 mov ecx, [esp+18h+arg_8] .text:08001DFB mov [esp+18h+var_8], 200h .text:08001E03 mov [esp+18h+var_4], ecx .text:08001E07 test edi, 4 .text:08001E0D jz short loc_0_8001E17 .text:08001E0F mov [esp+18h+var_8], 8 .text:08001E17 .text:08001E17 loc_0_8001E17: ; CODE XREF: doc2Read+29j .text:08001E17 mov ecx, [esp+18h+arg_0] .text:08001E1B push ecx .text:08001E1C call chkASICmode .text:08001E21 xor eax, eax .text:08001E23 mov edx, [esp+1Ch+var_8] .text:08001E27 mov ax, bp .text:08001E2A dec edx .text:08001E2B mov ebx, [esp+1Ch+var_8] .text:08001E2F and edx, eax .text:08001E31 add esp, 4 .text:08001E34 sub ebx, edx .text:08001E36 test esi, esi .text:08001E38 jle short loc_0_8001E7F .text:08001E3A mov esi, esi .text:08001E3C .text:08001E3C loc_0_8001E3C: ; CODE XREF: doc2Read+99j .text:08001E3C cmp ebx, esi .text:08001E3E jle short loc_0_8001E42 .text:08001E40 mov ebx, esi .text:08001E42 .text:08001E42 loc_0_8001E42: ; CODE XREF: doc2Read+5Aj .text:08001E42 cmp ebx, 200h .text:08001E48 jz short loc_0_8001E54 .text:08001E4A mov eax, edi .text:08001E4C and al, 0FDh .text:08001E4E mov edi, eax .text:08001E50 jmp short loc_0_8001E56 .text:08001E50 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001E52 align 4 .text:08001E54 .text:08001E54 loc_0_8001E54: ; CODE XREF: doc2Read+64j .text:08001E54 mov eax, edi .text:08001E56 .text:08001E56 loc_0_8001E56: ; CODE XREF: doc2Read+6Cj .text:08001E56 push eax .text:08001E57 push ebx .text:08001E58 mov ecx, [esp+20h+var_4] .text:08001E5C push ecx .text:08001E5D push ebp .text:08001E5E mov ecx, [esp+28h+arg_0] .text:08001E62 push ecx .text:08001E63 call readOneSector .text:08001E68 add esp, 14h .text:08001E6B test eax, eax .text:08001E6D jnz short loc_0_8001E81 .text:08001E6F sub esi, ebx .text:08001E71 add [esp+18h+var_4], ebx .text:08001E75 add ebp, ebx .text:08001E77 mov ebx, [esp+18h+var_8] .text:08001E7B test esi, esi .text:08001E7D jg short loc_0_8001E3C .text:08001E7F .text:08001E7F loc_0_8001E7F: ; CODE XREF: doc2Read+54j .text:08001E7F xor eax, eax .text:08001E81 .text:08001E81 loc_0_8001E81: ; CODE XREF: doc2Read+89j .text:08001E81 pop ebx .text:08001E82 pop esi .text:08001E83 pop edi .text:08001E84 pop ebp .text:08001E85 add esp, 8 .text:08001E88 retn .text:08001E88 doc2Read endp .text:08001E88 .text:08001E88 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001E89 align 4 .text:08001E8C .text:08001E8C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08001E8C .text:08001E8C .text:08001E8C doc2Erase proc near ; CODE XREF: doc2Erase+B2p .text:08001E8C ; DATA XREF: doc2Identify+2DEo .text:08001E8C .text:08001E8C var_14 = dword ptr -14h .text:08001E8C var_10 = dword ptr -10h .text:08001E8C var_9 = byte ptr -9 .text:08001E8C var_8 = dword ptr -8 .text:08001E8C var_4 = dword ptr -4 .text:08001E8C arg_0 = dword ptr 4 .text:08001E8C arg_4 = dword ptr 8 .text:08001E8C arg_8 = dword ptr 0Ch .text:08001E8C .text:08001E8C sub esp, 14h .text:08001E8F push ebp .text:08001E90 push edi .text:08001E91 push esi .text:08001E92 push ebx .text:08001E93 mov esi, [esp+24h+arg_0] .text:08001E97 mov ebp, [esp+24h+arg_4] .text:08001E9B mov [esp+24h+var_8], 0 .text:08001EA3 mov ebx, ebp .text:08001EA5 imul ebx, [esi+4] .text:08001EA9 mov [esp+24h+var_4], ebx .text:08001EAD mov eax, [esi+1Ch] .text:08001EB0 push eax .text:08001EB1 call flWriteProtected .text:08001EB6 mov ecx, eax .text:08001EB8 add esp, 4 .text:08001EBB test ecx, ecx .text:08001EBD jz short loc_0_8001ECC .text:08001EBF mov eax, 13h .text:08001EC4 jmp loc_0_8002071 .text:08001EC4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001EC9 align 4 .text:08001ECC .text:08001ECC loc_0_8001ECC: ; CODE XREF: doc2Erase+31j .text:08001ECC mov edx, [esp+24h+arg_8] .text:08001ED0 mov eax, [esi+18h] .text:08001ED3 lea edi, [edx+ebp] .text:08001ED6 xor edx, edx .text:08001ED8 mov dx, [eax+0Eh] .text:08001EDC imul edx, [esi+0Ch] .text:08001EE0 cmp edi, edx .text:08001EE2 jle short loc_0_8001EF0 .text:08001EE4 mov eax, 1Dh .text:08001EE9 jmp loc_0_8002071 .text:08001EE9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001EEE align 4 .text:08001EF0 .text:08001EF0 loc_0_8001EF0: ; CODE XREF: doc2Erase+56j .text:08001EF0 push esi .text:08001EF1 call chkASICmode .text:08001EF6 mov eax, [esi+18h] .text:08001EF9 mov eax, [eax+18h] .text:08001EFC mov [esp+28h+var_14], eax .text:08001F00 mov eax, ebx .text:08001F02 xor edx, edx .text:08001F04 div [esp+28h+var_14] .text:08001F08 mov ebx, eax .text:08001F0A mov [esp+28h+var_9], bl .text:08001F0E xor eax, eax .text:08001F10 mov al, [esp+28h+var_9] .text:08001F14 mov [esp+28h+var_10], eax .text:08001F18 mov ecx, eax .text:08001F1A inc ecx .text:08001F1B imul ecx, [esp+28h+var_14] .text:08001F20 mov eax, ecx .text:08001F22 add esp, 4 .text:08001F25 cdq .text:08001F26 idiv dword ptr [esi+4] .text:08001F29 mov ecx, eax .text:08001F2B cmp edi, ecx .text:08001F2D jle short loc_0_8001F84 .text:08001F2F mov ebx, ecx .text:08001F31 sub ebx, ebp .text:08001F33 sub [esp+24h+arg_8], ebx .text:08001F37 mov eax, [esp+24h+arg_8] .text:08001F3B push eax .text:08001F3C push ecx .text:08001F3D push esi .text:08001F3E call doc2Erase .text:08001F43 mov ecx, eax .text:08001F45 add esp, 0Ch .text:08001F48 test ecx, ecx .text:08001F4A jz short loc_0_8001F80 .text:08001F4C jmp loc_0_8002071 .text:08001F4C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001F51 align 4 .text:08001F54 .text:08001F54 loc_0_8001F54: ; CODE XREF: doc2Erase+1A6j .text:08001F54 push offset aDebugNfdc2148E ; "Debug: NFDC 2148 erase failed.\n" .text:08001F59 call flprintk .text:08001F5E mov [esp+28h+var_8], 1Dh .text:08001F66 push 0FFh .text:08001F6B push esi .text:08001F6C call command .text:08001F71 push esi .text:08001F72 call waitForReady .text:08001F77 add esp, 10h .text:08001F7A jmp loc_0_8002044 .text:08001F7A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08001F7F align 4 .text:08001F80 .text:08001F80 loc_0_8001F80: ; CODE XREF: doc2Erase+BEj .text:08001F80 mov [esp+24h+arg_8], ebx .text:08001F84 .text:08001F84 loc_0_8001F84: ; CODE XREF: doc2Erase+A1j .text:08001F84 lea eax, [esp+24h+var_4] .text:08001F88 push eax .text:08001F89 push esi .text:08001F8A call mapWin .text:08001F8F add esp, 8 .text:08001F92 xor edi, edi .text:08001F94 cmp [esp+24h+arg_8], edi .text:08001F98 jle loc_0_8002044 .text:08001F9E mov esi, esi .text:08001FA0 .text:08001FA0 loc_0_8001FA0: ; CODE XREF: doc2Erase+1B2j .text:08001FA0 mov eax, [esi+18h] .text:08001FA3 mov bx, [eax+12h] .text:08001FA7 push 0FFh .text:08001FAC push esi .text:08001FAD imul bx, bp .text:08001FB1 call command .text:08001FB6 push esi .text:08001FB7 call waitForReady .text:08001FBC push 60h .text:08001FBE push esi .text:08001FBF call command .text:08001FC4 push 15h .text:08001FC6 push esi .text:08001FC7 call writeSignals .text:08001FCC mov eax, [esi+18h] .text:08001FCF mov edx, [eax+24h] .text:08001FD2 add edx, [eax+28h] .text:08001FD5 or edx, 0C0000000h .text:08001FDB mov [edx], bl .text:08001FDD mov eax, [esi+18h] .text:08001FE0 mov edx, [eax+24h] .text:08001FE3 add edx, [eax+28h] .text:08001FE6 or edx, 0C0000000h .text:08001FEC shr bx, 8 .text:08001FF0 mov [edx], bl .text:08001FF2 mov ecx, [esi+18h] .text:08001FF5 add esp, 1Ch .text:08001FF8 test byte ptr [ecx+1Ch], 8 .text:08001FFC jz short loc_0_800200E .text:08001FFE mov eax, [ecx+28h] .text:08002001 add eax, 101Eh .text:08002006 or eax, 0C0000000h .text:0800200B mov byte ptr [eax], 0 .text:0800200E .text:0800200E loc_0_800200E: ; CODE XREF: doc2Erase+170j .text:0800200E push 11h .text:08002010 push esi .text:08002011 call writeSignals .text:08002016 push 0D0h .text:0800201B push esi .text:0800201C call command .text:08002021 push esi .text:08002022 call waitForReady .text:08002027 push esi .text:08002028 call readStatus .text:0800202D add esp, 18h .text:08002030 test al, 1 .text:08002032 jnz loc_0_8001F54 .text:08002038 inc edi .text:08002039 inc ebp .text:0800203A cmp [esp+24h+arg_8], edi .text:0800203E jg loc_0_8001FA0 .text:08002044 .text:08002044 loc_0_8002044: ; CODE XREF: doc2Erase+EEj .text:08002044 ; doc2Erase+10Cj .text:08002044 cmp [esp+24h+var_8], 0 .text:08002049 jnz short loc_0_800206D .text:0800204B push esi .text:0800204C call readStatus .text:08002051 add esp, 4 .text:08002054 test al, 1 .text:08002056 jz short loc_0_800206D .text:08002058 push offset aDebugNfdc2148E ; "Debug: NFDC 2148 erase failed.\n" .text:0800205D call flprintk .text:08002062 mov [esp+28h+var_8], 1Dh .text:0800206A add esp, 4 .text:0800206D .text:0800206D loc_0_800206D: ; CODE XREF: doc2Erase+1BDj .text:0800206D ; doc2Erase+1CAj .text:0800206D mov eax, [esp+24h+var_8] .text:08002071 .text:08002071 loc_0_8002071: ; CODE XREF: doc2Erase+38j .text:08002071 ; doc2Erase+5Dj ... .text:08002071 pop ebx .text:08002072 pop esi .text:08002073 pop edi .text:08002074 pop ebp .text:08002075 add esp, 14h .text:08002078 retn .text:08002078 doc2Erase endp .text:08002078 .text:08002078 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002079 align 4 .text:0800207C .text:0800207C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800207C .text:0800207C .text:0800207C public getNFDC21Vars .text:0800207C getNFDC21Vars proc near .text:0800207C .text:0800207C arg_0 = dword ptr 4 .text:0800207C .text:0800207C mov eax, [esp+arg_0] .text:08002080 lea edx, [eax+eax*4] .text:08002083 lea edx, [eax+edx*2] .text:08002086 lea eax, mtdVars[edx*4] .text:0800208D retn .text:0800208D getNFDC21Vars endp .text:0800208D .text:0800208D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800208E align 4 .text:08002090 .text:08002090 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002090 .text:08002090 .text:08002090 doc2Map proc near ; DATA XREF: doc2Identify+2ECo .text:08002090 .text:08002090 arg_0 = dword ptr 8 .text:08002090 arg_4 = dword ptr 0Ch .text:08002090 arg_8 = dword ptr 10h .text:08002090 .text:08002090 push ebx .text:08002091 mov ebx, [esp+arg_0] .text:08002095 mov edx, [esp+arg_4] .text:08002099 mov eax, [esp+arg_8] .text:0800209D push 0 .text:0800209F push eax .text:080020A0 mov eax, [ebx+18h] .text:080020A3 mov eax, [eax+20h] .text:080020A6 push eax .text:080020A7 push edx .text:080020A8 push ebx .text:080020A9 call doc2Read .text:080020AE mov eax, [ebx+1Ch] .text:080020B1 mov dword ptr [eax+1Ch], 1 .text:080020B8 add esp, 14h .text:080020BB mov eax, [ebx+18h] .text:080020BE pop ebx .text:080020BF mov eax, [eax+20h] .text:080020C2 retn .text:080020C2 doc2Map endp .text:080020C2 .text:080020C2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080020C3 align 4 .text:080020C4 .text:080020C4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080020C4 .text:080020C4 .text:080020C4 isKnownMedia proc near ; CODE XREF: readFlashID+127p .text:080020C4 .text:080020C4 var_1 = byte ptr -1 .text:080020C4 arg_0 = dword ptr 4 .text:080020C4 arg_4 = byte ptr 8 .text:080020C4 arg_8 = byte ptr 0Ch .text:080020C4 arg_C = dword ptr 10h .text:080020C4 .text:080020C4 sub esp, 4 .text:080020C7 push edi .text:080020C8 push esi .text:080020C9 push ebx .text:080020CA mov bl, [esp+10h+arg_4] .text:080020CE mov edi, ebx .text:080020D0 mov bl, [esp+10h+arg_8] .text:080020D4 mov ecx, [esp+10h+arg_0] .text:080020D8 mov [esp+10h+var_1], bl .text:080020DC mov edx, [ecx+18h] .text:080020DF mov esi, [esp+10h+arg_C] .text:080020E3 cmp byte ptr [edx+15h], 0 .text:080020E7 jnz loc_0_80022B4 .text:080020ED test esi, esi .text:080020EF jnz loc_0_80022B4 .text:080020F5 mov eax, edi .text:080020F7 and eax, 0FFh .text:080020FC mov [edx], ax .text:080020FF mov edx, [ecx+18h] .text:08002102 xor eax, eax .text:08002104 mov al, bl .text:08002106 mov [edx+2], ax .text:0800210A mov eax, [ecx+18h] .text:0800210D mov word ptr [eax+12h], 10h .text:08002113 mov eax, edi .text:08002115 and eax, 0FFh .text:0800211A cmp eax, 98h .text:0800211F jz loc_0_80021F8 .text:08002125 cmp eax, 0ECh .text:0800212A jnz loc_0_80022D8 .text:08002130 xor eax, eax .text:08002132 mov al, bl .text:08002134 cmp eax, 0E3h .text:08002139 jz short loc_0_8002190 .text:0800213B jg short loc_0_8002150 .text:0800213D cmp eax, 64h .text:08002140 jz short loc_0_8002173 .text:08002142 cmp eax, 73h .text:08002145 jz loc_0_80021D0 .text:0800214B jmp loc_0_80022D8 .text:08002150 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002150 .text:08002150 loc_0_8002150: ; CODE XREF: isKnownMedia+77j .text:08002150 cmp eax, 0E6h .text:08002155 jz short loc_0_80021B0 .text:08002157 jg short loc_0_8002168 .text:08002159 cmp eax, 0E5h .text:0800215E jz short loc_0_8002190 .text:08002160 jmp loc_0_80022D8 .text:08002160 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002165 align 4 .text:08002168 .text:08002168 loc_0_8002168: ; CODE XREF: isKnownMedia+93j .text:08002168 cmp eax, 0EAh .text:0800216D jnz loc_0_80022D8 .text:08002173 .text:08002173 loc_0_8002173: ; CODE XREF: isKnownMedia+7Cj .text:08002173 mov eax, [ecx+18h] .text:08002176 mov word ptr [ecx], 0EC64h .text:0800217B mov word ptr [eax+4], 100h .text:08002181 mov dword ptr [ecx+8], 200000h .text:08002188 jmp loc_0_80022CF .text:08002188 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800218D align 4 .text:08002190 .text:08002190 loc_0_8002190: ; CODE XREF: isKnownMedia+75j .text:08002190 ; isKnownMedia+9Aj .text:08002190 mov eax, [ecx+18h] .text:08002193 mov word ptr [ecx], 0ECE5h .text:08002198 mov word ptr [eax+4], 200h .text:0800219E mov dword ptr [ecx+8], 400000h .text:080021A5 or byte ptr [ecx+15h], 1 .text:080021A9 jmp loc_0_80022CF .text:080021A9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080021AE align 4 .text:080021B0 .text:080021B0 loc_0_80021B0: ; CODE XREF: isKnownMedia+91j .text:080021B0 mov eax, [ecx+18h] .text:080021B3 mov word ptr [ecx], 0ECE6h .text:080021B8 mov word ptr [eax+4], 200h .text:080021BE mov dword ptr [ecx+8], 800000h .text:080021C5 or byte ptr [ecx+15h], 1 .text:080021C9 jmp loc_0_80022CF .text:080021C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080021CE align 4 .text:080021D0 .text:080021D0 loc_0_80021D0: ; CODE XREF: isKnownMedia+81j .text:080021D0 mov eax, [ecx+18h] .text:080021D3 mov word ptr [ecx], 0EC73h .text:080021D8 mov word ptr [eax+4], 200h .text:080021DE mov dword ptr [ecx+8], 1000000h .text:080021E5 mov eax, [ecx+18h] .text:080021E8 or byte ptr [ecx+15h], 1 .text:080021EC shl word ptr [eax+12h], 1 .text:080021F1 jmp loc_0_80022CF .text:080021F1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080021F6 align 4 .text:080021F8 .text:080021F8 loc_0_80021F8: ; CODE XREF: isKnownMedia+5Bj .text:080021F8 xor eax, eax .text:080021FA mov al, [esp+10h+var_1] .text:080021FE cmp eax, 73h .text:08002201 jz loc_0_800228C .text:08002207 jg short loc_0_8002218 .text:08002209 cmp eax, 64h .text:0800220C jz short loc_0_800223B .text:0800220E cmp eax, 6Bh .text:08002211 jz short loc_0_8002254 .text:08002213 jmp loc_0_80022D8 .text:08002218 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002218 .text:08002218 loc_0_8002218: ; CODE XREF: isKnownMedia+143j .text:08002218 cmp eax, 0E6h .text:0800221D jz short loc_0_8002270 .text:0800221F jg short loc_0_8002230 .text:08002221 cmp eax, 0E5h .text:08002226 jz short loc_0_8002254 .text:08002228 jmp loc_0_80022D8 .text:08002228 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800222D align 4 .text:08002230 .text:08002230 loc_0_8002230: ; CODE XREF: isKnownMedia+15Bj .text:08002230 cmp eax, 0EAh .text:08002235 jnz loc_0_80022D8 .text:0800223B .text:0800223B loc_0_800223B: ; CODE XREF: isKnownMedia+148j .text:0800223B mov eax, [ecx+18h] .text:0800223E mov word ptr [ecx], 9864h .text:08002243 mov word ptr [eax+4], 100h .text:08002249 mov dword ptr [ecx+8], 200000h .text:08002250 jmp short loc_0_80022AD .text:08002250 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002252 align 4 .text:08002254 .text:08002254 loc_0_8002254: ; CODE XREF: isKnownMedia+14Dj .text:08002254 ; isKnownMedia+162j .text:08002254 mov word ptr [ecx], 98E5h .text:08002259 mov eax, [ecx+18h] .text:0800225C or byte ptr [ecx+15h], 1 .text:08002260 mov word ptr [eax+4], 200h .text:08002266 mov dword ptr [ecx+8], 400000h .text:0800226D jmp short loc_0_80022AD .text:0800226D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800226F align 4 .text:08002270 .text:08002270 loc_0_8002270: ; CODE XREF: isKnownMedia+159j .text:08002270 mov word ptr [ecx], 98E6h .text:08002275 mov eax, [ecx+18h] .text:08002278 or byte ptr [ecx+15h], 1 .text:0800227C mov word ptr [eax+4], 200h .text:08002282 mov dword ptr [ecx+8], 800000h .text:08002289 jmp short loc_0_80022AD .text:08002289 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800228B align 4 .text:0800228C .text:0800228C loc_0_800228C: ; CODE XREF: isKnownMedia+13Dj .text:0800228C mov eax, [ecx+18h] .text:0800228F mov word ptr [ecx], 9873h .text:08002294 mov word ptr [eax+4], 200h .text:0800229A mov dword ptr [ecx+8], 1000000h .text:080022A1 mov eax, [ecx+18h] .text:080022A4 or byte ptr [ecx+15h], 1 .text:080022A8 shl word ptr [eax+12h], 1 .text:080022AD .text:080022AD loc_0_80022AD: ; CODE XREF: isKnownMedia+18Cj .text:080022AD ; isKnownMedia+1A9j ... .text:080022AD or byte ptr [ecx+15h], 2 .text:080022B1 jmp short loc_0_80022CF .text:080022B1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080022B3 align 4 .text:080022B4 .text:080022B4 loc_0_80022B4: ; CODE XREF: isKnownMedia+23j .text:080022B4 ; isKnownMedia+2Bj .text:080022B4 mov eax, edi .text:080022B6 mov edx, [ecx+18h] .text:080022B9 and eax, 0FFh .text:080022BE cmp [edx], ax .text:080022C1 jnz short loc_0_80022D8 .text:080022C3 xor eax, eax .text:080022C5 mov al, [esp+10h+var_1] .text:080022C9 cmp [edx+2], ax .text:080022CD jnz short loc_0_80022D8 .text:080022CF .text:080022CF loc_0_80022CF: ; CODE XREF: isKnownMedia+C4j .text:080022CF ; isKnownMedia+E5j ... .text:080022CF mov eax, 1 .text:080022D4 jmp short loc_0_80022DA .text:080022D4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080022D6 align 4 .text:080022D8 .text:080022D8 loc_0_80022D8: ; CODE XREF: isKnownMedia+66j .text:080022D8 ; isKnownMedia+87j ... .text:080022D8 xor eax, eax .text:080022DA .text:080022DA loc_0_80022DA: ; CODE XREF: isKnownMedia+210j .text:080022DA pop ebx .text:080022DB pop esi .text:080022DC pop edi .text:080022DD add esp, 4 .text:080022E0 retn .text:080022E0 isKnownMedia endp .text:080022E0 .text:080022E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080022E1 align 4 .text:080022E4 .text:080022E4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080022E4 .text:080022E4 .text:080022E4 public readFlashID .text:080022E4 readFlashID proc near ; CODE XREF: doc2Identify+209p .text:080022E4 .text:080022E4 var_2 = byte ptr -2 .text:080022E4 var_1 = byte ptr -1 .text:080022E4 arg_0 = dword ptr 4 .text:080022E4 arg_4 = dword ptr 8 .text:080022E4 .text:080022E4 sub esp, 4 .text:080022E7 push ebp .text:080022E8 push edi .text:080022E9 push esi .text:080022EA push ebx .text:080022EB mov esi, [esp+14h+arg_0] .text:080022EF mov [esp+14h+var_1], 0 .text:080022F4 mov ebp, [esp+14h+arg_4] .text:080022F8 push 90h .text:080022FD push esi .text:080022FE call command .text:08002303 push 1Dh .text:08002305 push esi .text:08002306 call writeSignals .text:0800230B mov eax, [esi+18h] .text:0800230E mov edx, [eax+24h] .text:08002311 add edx, [eax+28h] .text:08002314 or edx, 0C0000000h .text:0800231A mov byte ptr [edx], 0 .text:0800231D mov eax, [esi+18h] .text:08002320 add esp, 10h .text:08002323 test byte ptr [eax+1Ch], 8 .text:08002327 jz short loc_0_8002339 .text:08002329 mov eax, [eax+28h] .text:0800232C add eax, 101Eh .text:08002331 or eax, 0C0000000h .text:08002336 mov byte ptr [eax], 0 .text:08002339 .text:08002339 loc_0_8002339: ; CODE XREF: readFlashID+43j .text:08002339 push 19h .text:0800233B push esi .text:0800233C call writeSignals .text:08002341 push 0Ah .text:08002343 call flDelayMsecs .text:08002348 mov ecx, [esi+18h] .text:0800234B mov edx, [ecx+28h] .text:0800234E add edx, 100Dh .text:08002354 or edx, 0C0000000h .text:0800235A mov al, [esp+20h+var_1] .text:0800235E mov dl, [edx] .text:08002360 add al, dl .text:08002362 mov [esp+20h+var_1], al .text:08002366 xor ebx, ebx .text:08002368 add esp, 0Ch .text:0800236B nop .text:0800236C .text:0800236C loc_0_800236C: ; CODE XREF: readFlashID+A5j .text:0800236C mov eax, [ecx+28h] .text:0800236F add eax, 1020h .text:08002374 or eax, 0C0000000h .text:08002379 mov dl, [esp+14h+var_1] .text:0800237D mov al, [eax] .text:0800237F add dl, al .text:08002381 inc ebx .text:08002382 mov [esp+14h+var_1], dl .text:08002386 cmp ebx, 1 .text:08002389 jle short loc_0_800236C .text:0800238B mov eax, [esi+18h] .text:0800238E mov edx, [eax+24h] .text:08002391 add edx, [eax+28h] .text:08002394 or edx, 0C0000000h .text:0800239A mov dl, [edx] .text:0800239C mov [esp+14h+var_2], dl .text:080023A0 push 0Ah .text:080023A2 call flDelayMsecs .text:080023A7 mov ecx, [esi+18h] .text:080023AA mov edx, [ecx+28h] .text:080023AD add edx, 100Dh .text:080023B3 or edx, 0C0000000h .text:080023B9 mov al, [esp+18h+var_1] .text:080023BD mov dl, [edx] .text:080023BF add al, dl .text:080023C1 mov [esp+18h+var_1], al .text:080023C5 xor ebx, ebx .text:080023C7 add esp, 4 .text:080023CA mov esi, esi .text:080023CC .text:080023CC loc_0_80023CC: ; CODE XREF: readFlashID+105j .text:080023CC mov eax, [ecx+28h] .text:080023CF add eax, 1020h .text:080023D4 or eax, 0C0000000h .text:080023D9 mov dl, [esp+14h+var_1] .text:080023DD mov al, [eax] .text:080023DF add dl, al .text:080023E1 inc ebx .text:080023E2 mov [esp+14h+var_1], dl .text:080023E6 cmp ebx, 1 .text:080023E9 jle short loc_0_80023CC .text:080023EB mov eax, [esi+18h] .text:080023EE mov edx, [eax+24h] .text:080023F1 add edx, [eax+28h] .text:080023F4 or edx, 0C0000000h .text:080023FA mov al, [edx] .text:080023FC push ebp .text:080023FD and eax, 0FFh .text:08002402 push eax .text:08002403 xor eax, eax .text:08002405 mov al, [esp+1Ch+var_2] .text:08002409 push eax .text:0800240A push esi .text:0800240B call isKnownMedia .text:08002410 add esp, 10h .text:08002413 cmp eax, 1 .text:08002416 jz short loc_0_8002420 .text:08002418 xor eax, eax .text:0800241A jmp loc_0_80024AA .text:0800241A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800241F align 4 .text:08002420 .text:08002420 loc_0_8002420: ; CODE XREF: readFlashID+132j .text:08002420 inc dword ptr [esi+0Ch] .text:08002423 push 10h .text:08002425 push esi .text:08002426 call writeSignals .text:0800242B mov eax, [esi+18h] .text:0800242E add esp, 8 .text:08002431 cmp byte ptr [eax+15h], 0 .text:08002435 jnz short loc_0_80024A5 .text:08002437 test ebp, ebp .text:08002439 jnz short loc_0_80024A5 .text:0800243B mov word ptr [eax+0Ah], 100h .text:08002441 mov edx, [esi+18h] .text:08002444 mov ax, [edx+4] .text:08002448 mov [edx+6], ax .text:0800244C test byte ptr [esi+15h], 1 .text:08002450 jz short loc_0_8002460 .text:08002452 mov eax, [esi+18h] .text:08002455 mov word ptr [eax+0Ch], 10h .text:0800245B jmp short loc_0_8002469 .text:0800245B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800245D align 4 .text:08002460 .text:08002460 loc_0_8002460: ; CODE XREF: readFlashID+16Cj .text:08002460 mov eax, [esi+18h] .text:08002463 mov word ptr [eax+0Ch], 8 .text:08002469 .text:08002469 loc_0_8002469: ; CODE XREF: readFlashID+177j .text:08002469 mov eax, [esi+18h] .text:0800246C mov di, [eax+6] .text:08002470 dec edi .text:08002471 mov [eax+8], di .text:08002475 mov ecx, [esi+18h] .text:08002478 xor edx, edx .text:0800247A xor eax, eax .text:0800247C mov dx, [ecx+12h] .text:08002480 mov ax, [ecx+6] .text:08002484 imul edx, eax .text:08002487 mov eax, [esi+8] .text:0800248A mov edi, edx .text:0800248C mov [esi+4], edx .text:0800248F cdq .text:08002490 idiv edi .text:08002492 mov [ecx+0Eh], ax .text:08002496 mov eax, [esi+18h] .text:08002499 mov dx, [eax+0Ch] .text:0800249D add dx, [eax+6] .text:080024A1 mov [eax+10h], dx .text:080024A5 .text:080024A5 loc_0_80024A5: ; CODE XREF: readFlashID+151j .text:080024A5 ; readFlashID+155j .text:080024A5 mov eax, 1 .text:080024AA .text:080024AA loc_0_80024AA: ; CODE XREF: readFlashID+136j .text:080024AA pop ebx .text:080024AB pop esi .text:080024AC pop edi .text:080024AD pop ebp .text:080024AE add esp, 4 .text:080024B1 retn .text:080024B1 readFlashID endp .text:080024B1 .text:080024B1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080024B2 align 4 .text:080024B4 .text:080024B4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080024B4 .text:080024B4 .text:080024B4 doc2Identify proc near ; DATA XREF: flRegisterDOC2000+9o .text:080024B4 .text:080024B4 var_E = byte ptr -0Eh .text:080024B4 var_D = byte ptr -0Dh .text:080024B4 var_C = dword ptr -0Ch .text:080024B4 var_8 = dword ptr -8 .text:080024B4 var_2 = byte ptr -2 .text:080024B4 var_1 = byte ptr -1 .text:080024B4 arg_0 = dword ptr 4 .text:080024B4 .text:080024B4 sub esp, 10h .text:080024B7 push edi .text:080024B8 push esi .text:080024B9 push ebx .text:080024BA xor ebx, ebx .text:080024BC mov [esp+1Ch+var_8], ebx .text:080024C0 mov [esp+1Ch+var_D], bl .text:080024C4 mov esi, [esp+1Ch+arg_0] .text:080024C8 push offset aDebugEnteringN ; "debug: entering NFDC 2148 identificatio"... .text:080024CD call flprintk .text:080024D2 mov eax, [esi+1Ch] .text:080024D5 push eax .text:080024D6 call flSocketNoOf .text:080024DB mov edx, eax .text:080024DD lea eax, [edx+edx*4] .text:080024E0 lea eax, [edx+eax*2] .text:080024E3 lea eax, mtdVars[eax*4] .text:080024EA mov [esi+18h], eax .text:080024ED mov eax, [esi+1Ch] .text:080024F0 push eax .text:080024F1 call flSocketNoOf .text:080024F6 push eax .text:080024F7 call flBufferOf .text:080024FC mov edx, eax .text:080024FE mov eax, [esi+18h] .text:08002501 mov [eax+20h], edx .text:08002504 push 85h .text:08002509 push esi .text:0800250A call setASICmode .text:0800250F push 10h .text:08002511 mov eax, [esi+1Ch] .text:08002514 push eax .text:08002515 call flSetWindowBusWidth .text:0800251A add esp, 20h .text:0800251D push 78h .text:0800251F mov eax, [esi+1Ch] .text:08002522 push eax .text:08002523 call flSetWindowSpeed .text:08002528 mov eax, [esi+18h] .text:0800252B mov dword ptr [eax+18h], 1 .text:08002532 mov eax, [esi+18h] .text:08002535 mov byte ptr [eax+14h], 4 .text:08002539 mov eax, [esi+18h] .text:0800253C mov byte ptr [eax+15h], 4 .text:08002540 mov [esi+0Ch], ebx .text:08002543 mov dword ptr [esi+8], 200000h .text:0800254A mov dword ptr [esi+10h], 1 .text:08002551 push ebx .text:08002552 mov eax, [esi+1Ch] .text:08002555 push eax .text:08002556 call flMap .text:0800255B mov edx, eax .text:0800255D mov eax, [esi+18h] .text:08002560 mov [eax+28h], edx .text:08002563 mov edx, [esi+18h] .text:08002566 mov eax, [edx+28h] .text:08002569 add eax, 1000h .text:0800256E or eax, 0C0000000h .text:08002573 add esp, 10h .text:08002576 mov al, [eax] .text:08002578 cmp al, 30h .text:0800257A jnz short loc_0_800258C .text:0800257C or byte ptr [edx+1Ch], 8 .text:08002580 mov eax, [esi+18h] .text:08002583 mov dword ptr [eax+24h], 800h .text:0800258A jmp short loc_0_8002593 .text:0800258C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800258C .text:0800258C loc_0_800258C: ; CODE XREF: doc2Identify+C6j .text:0800258C mov dword ptr [edx+24h], 1800h .text:08002593 .text:08002593 loc_0_8002593: ; CODE XREF: doc2Identify+D6j .text:08002593 lea eax, [esp+1Ch+var_8] .text:08002597 push eax .text:08002598 push esi .text:08002599 call mapWin .text:0800259E mov edx, [esi+18h] .text:080025A1 add esp, 8 .text:080025A4 test byte ptr [edx+1Ch], 8 .text:080025A8 jz short loc_0_80025C8 .text:080025AA mov eax, [edx+28h] .text:080025AD add eax, 1006h .text:080025B2 or eax, 0C0000000h .text:080025B7 mov al, [eax] .text:080025B9 mov [esp+1Ch+var_1], al .text:080025BD mov edx, [edx+28h] .text:080025C0 add edx, 1006h .text:080025C6 jmp short loc_0_80025E4 .text:080025C8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080025C8 .text:080025C8 loc_0_80025C8: ; CODE XREF: doc2Identify+F4j .text:080025C8 mov eax, [edx+28h] .text:080025CB add eax, 1007h .text:080025D0 or eax, 0C0000000h .text:080025D5 mov al, [eax] .text:080025D7 mov [esp+1Ch+var_1], al .text:080025DB mov edx, [edx+28h] .text:080025DE add edx, 1007h .text:080025E4 .text:080025E4 loc_0_80025E4: ; CODE XREF: doc2Identify+112j .text:080025E4 or edx, 0C0000000h .text:080025EA mov al, [esp+1Ch+var_1] .text:080025EE mov dl, [edx] .text:080025F0 xor al, dl .text:080025F2 mov [esp+1Ch+var_2], al .text:080025F6 mov al, [esp+1Ch+var_2] .text:080025FA test al, 4 .text:080025FC jz loc_0_8002753 .text:08002602 mov edx, [esi+18h] .text:08002605 mov eax, [edx+28h] .text:08002608 add eax, 1000h .text:0800260D or eax, 0C0000000h .text:08002612 mov edi, 10h .text:08002617 mov al, [eax] .text:08002619 cmp al, 30h .text:0800261B jnz short loc_0_8002622 .text:0800261D mov edi, 2 .text:08002622 .text:08002622 loc_0_8002622: ; CODE XREF: doc2Identify+167j .text:08002622 mov byte ptr [edx+15h], 0 .text:08002626 jmp short loc_0_8002668 .text:08002628 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002628 .text:08002628 loc_0_8002628: ; CODE XREF: doc2Identify+1BBj .text:08002628 mov edx, [eax+28h] .text:0800262B add edx, 1003h .text:08002631 or edx, 0C0000000h .text:08002637 mov al, [eax+15h] .text:0800263A xor ebx, ebx .text:0800263C mov [edx], al .text:0800263E cmp ebx, edi .text:08002640 jge short loc_0_8002662 .text:08002642 mov esi, esi .text:08002644 .text:08002644 loc_0_8002644: ; CODE XREF: doc2Identify+1ACj .text:08002644 xor eax, eax .text:08002646 mov al, bl .text:08002648 push eax .text:08002649 push esi .text:0800264A call selectChip .text:0800264F push 0FFh .text:08002654 push esi .text:08002655 call command .text:0800265A add esp, 10h .text:0800265D inc ebx .text:0800265E cmp ebx, edi .text:08002660 jl short loc_0_8002644 .text:08002662 .text:08002662 loc_0_8002662: ; CODE XREF: doc2Identify+18Cj .text:08002662 mov eax, [esi+18h] .text:08002665 inc byte ptr [eax+15h] .text:08002668 .text:08002668 loc_0_8002668: ; CODE XREF: doc2Identify+172j .text:08002668 mov eax, [esi+18h] .text:0800266B cmp byte ptr [eax+15h], 3 .text:0800266F jbe short loc_0_8002628 .text:08002671 mov eax, [esi+18h] .text:08002674 mov byte ptr [eax+15h], 0 .text:08002678 mov eax, [esi+18h] .text:0800267B mov edx, [eax+28h] .text:0800267E add edx, 1003h .text:08002684 or edx, 0C0000000h .text:0800268A mov al, [eax+15h] .text:0800268D mov [edx], al .text:0800268F push 18h .text:08002691 push esi .text:08002692 call writeSignals .text:08002697 mov [esp+24h+var_E], 0 .text:0800269C add esp, 8 .text:0800269F nop .text:080026A0 .text:080026A0 loc_0_80026A0: ; CODE XREF: doc2Identify+275j .text:080026A0 xor ebx, ebx .text:080026A2 cmp ebx, edi .text:080026A4 jge short loc_0_8002720 .text:080026A6 mov esi, esi .text:080026A8 .text:080026A8 loc_0_80026A8: ; CODE XREF: doc2Identify+26Aj .text:080026A8 mov eax, [esp+1Ch+var_8] .text:080026AC mov [esp+1Ch+var_C], eax .text:080026B0 lea eax, [esp+1Ch+var_C] .text:080026B4 push eax .text:080026B5 push esi .text:080026B6 call mapWin .text:080026BB push ebx .text:080026BC push esi .text:080026BD call readFlashID .text:080026C2 add esp, 10h .text:080026C5 cmp eax, 1 .text:080026C8 jnz short loc_0_80026F8 .text:080026CA mov cl, [esp+1Ch+var_E] .text:080026CE inc cl .text:080026D0 mov [esp+1Ch+var_D], cl .text:080026D4 cmp [esp+1Ch+var_E], 0 .text:080026D9 jnz short loc_0_80026E8 .text:080026DB mov edx, [esi+8] .text:080026DE mov eax, [esi+18h] .text:080026E1 imul edx, [esi+10h] .text:080026E5 add [eax+18h], edx .text:080026E8 .text:080026E8 loc_0_80026E8: ; CODE XREF: doc2Identify+225j .text:080026E8 mov eax, [esi+8] .text:080026EB imul eax, [esi+10h] .text:080026EF add [esp+1Ch+var_8], eax .text:080026F3 jmp short loc_0_800271B .text:080026F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080026F5 align 4 .text:080026F8 .text:080026F8 loc_0_80026F8: ; CODE XREF: doc2Identify+214j .text:080026F8 cmp [esp+1Ch+var_E], 0 .text:080026FD jnz short loc_0_8002714 .text:080026FF mov edi, ebx .text:08002701 mov eax, ebx .text:08002703 mov edx, [esi+18h] .text:08002706 imul eax, [esi+8] .text:0800270A imul eax, [esi+10h] .text:0800270E mov [edx+18h], eax .text:08002711 jmp short loc_0_800271B .text:08002711 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002713 align 4 .text:08002714 .text:08002714 loc_0_8002714: ; CODE XREF: doc2Identify+249j .text:08002714 mov ebx, edi .text:08002716 mov [esp+1Ch+var_E], 4 .text:0800271B .text:0800271B loc_0_800271B: ; CODE XREF: doc2Identify+23Fj .text:0800271B ; doc2Identify+25Dj .text:0800271B inc ebx .text:0800271C cmp ebx, edi .text:0800271E jl short loc_0_80026A8 .text:08002720 .text:08002720 loc_0_8002720: ; CODE XREF: doc2Identify+1F0j .text:08002720 inc [esp+1Ch+var_E] .text:08002724 cmp [esp+1Ch+var_E], 3 .text:08002729 jbe loc_0_80026A0 .text:0800272F mov eax, [esi+18h] .text:08002732 mov byte ptr [eax+15h], 0 .text:08002736 mov eax, [esi+18h] .text:08002739 mov edx, [eax+28h] .text:0800273C add edx, 1003h .text:08002742 or edx, 0C0000000h .text:08002748 mov al, [eax+15h] .text:0800274B mov [edx], al .text:0800274D cmp dword ptr [esi+0Ch], 0 .text:08002751 jnz short loc_0_8002768 .text:08002753 .text:08002753 loc_0_8002753: ; CODE XREF: doc2Identify+148j .text:08002753 push offset aDebugFailedToI ; "Debug: failed to identify NFDC 2148.\n" .text:08002758 call flprintk .text:0800275D mov eax, 1Ah .text:08002762 add esp, 4 .text:08002765 jmp short loc_0_80027BA .text:08002765 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002767 align 4 .text:08002768 .text:08002768 loc_0_8002768: ; CODE XREF: doc2Identify+29Dj .text:08002768 lea eax, [esp+1Ch+var_8] .text:0800276C mov [esp+1Ch+var_8], 0 .text:08002774 push eax .text:08002775 push esi .text:08002776 call mapWin .text:0800277B mov eax, [esi+18h] .text:0800277E mov cl, [esp+24h+var_D] .text:08002782 mov [eax+14h], cl .text:08002785 push esi .text:08002786 call eccOFF .text:0800278B mov dword ptr [esi+28h], offset doc2Write .text:08002792 mov dword ptr [esi+2Ch], offset doc2Erase .text:08002799 mov dword ptr [esi+24h], offset doc2Read .text:080027A0 mov dword ptr [esi+20h], offset doc2Map .text:080027A7 or byte ptr [esi+14h], 2 .text:080027AB push offset aDebugIdentifie ; "Debug: identified NFDC 2148.\n" .text:080027B0 call flprintk .text:080027B5 xor eax, eax .text:080027B7 add esp, 10h .text:080027BA .text:080027BA loc_0_80027BA: ; CODE XREF: doc2Identify+2B1j .text:080027BA pop ebx .text:080027BB pop esi .text:080027BC pop edi .text:080027BD add esp, 10h .text:080027C0 retn .text:080027C0 doc2Identify endp .text:080027C0 .text:080027C0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080027C1 align 4 .text:080027C4 .text:080027C4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080027C4 .text:080027C4 .text:080027C4 public flRegisterDOC2000 .text:080027C4 flRegisterDOC2000 proc near ; CODE XREF: flRegisterComponents+1Cp .text:080027C4 mov eax, noOfMTDs .text:080027C9 test eax, eax .text:080027CB jg short loc_0_80027E4 .text:080027CD mov ds:mtdTable[eax*4], offset doc2Identify .text:080027D8 inc noOfMTDs .text:080027DE xor eax, eax .text:080027E0 retn .text:080027E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080027E1 align 4 .text:080027E4 .text:080027E4 loc_0_80027E4: ; CODE XREF: flRegisterDOC2000+7j .text:080027E4 mov eax, 66h .text:080027E9 retn .text:080027E9 flRegisterDOC2000 endp .text:080027E9 .text:080027E9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080027EA align 4 .text:080027EC .text:080027EC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080027EC .text:080027EC .text:080027EC unitBaseAddress proc near ; CODE XREF: getUnitData+44p .text:080027EC ; getUnitData+B6p ... .text:080027EC .text:080027EC arg_0 = dword ptr 4 .text:080027EC arg_4 = word ptr 8 .text:080027EC .text:080027EC mov eax, [esp+arg_0] ; Alternative name is 'gcc2_compiled.' .text:080027F0 xor edx, edx .text:080027F2 mov dx, [esp+arg_4] .text:080027F7 mov ecx, [eax+20h] .text:080027FA shl edx, cl .text:080027FC mov eax, edx .text:080027FE retn .text:080027FE unitBaseAddress endp .text:080027FE .text:080027FE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080027FF align 4 .text:08002800 .text:08002800 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002800 .text:08002800 .text:08002800 getUnitData proc near ; CODE XREF: setUnitData+86p .text:08002800 ; getNextUnit+21p ... .text:08002800 .text:08002800 var_A = word ptr -0Ah .text:08002800 var_8 = dword ptr -8 .text:08002800 var_4 = dword ptr -4 .text:08002800 arg_0 = dword ptr 4 .text:08002800 arg_4 = dword ptr 8 .text:08002800 arg_8 = dword ptr 0Ch .text:08002800 arg_C = dword ptr 10h .text:08002800 .text:08002800 sub esp, 0Ch .text:08002803 push ebp .text:08002804 push edi .text:08002805 push esi .text:08002806 push ebx .text:08002807 mov ecx, [esp+1Ch+arg_4] .text:0800280B mov esi, [esp+1Ch+arg_0] .text:0800280F mov [esp+1Ch+var_A], cx .text:08002814 mov ebp, [esp+1Ch+arg_8] .text:08002818 mov eax, [esi+34h] .text:0800281B test eax, eax .text:0800281D jz loc_0_80028A4 .text:08002823 xor ebx, ebx .text:08002825 mov bx, cx .text:08002828 cmp word ptr [eax+ebx*4], 0DEADh .text:0800282E jnz short loc_0_8002880 .text:08002830 cmp word ptr [eax+ebx*4+2], 0DEADh .text:08002837 jnz short loc_0_8002880 .text:08002839 push 4 .text:0800283B push 8 .text:0800283D lea eax, [esp+24h+var_8] .text:08002841 push eax .text:08002842 push ebx .text:08002843 push esi .text:08002844 call unitBaseAddress .text:08002849 add esp, 8 .text:0800284C add eax, 8 .text:0800284F push eax .text:08002850 lea eax, [esi+5Ch] .text:08002853 push eax .text:08002854 mov eax, [esi+80h] .text:0800285A call eax .text:0800285C mov edi, [esp+30h+var_8] .text:08002860 mov eax, [esi+34h] .text:08002863 or edi, [esp+30h+var_4] .text:08002867 mov [eax+ebx*4], di .text:0800286B mov cx, word ptr [esp+30h+var_8+2] .text:08002870 mov eax, [esi+34h] .text:08002873 or cx, word ptr [esp+30h+var_4+2] .text:08002878 add esp, 14h .text:0800287B mov [eax+ebx*4+2], cx .text:08002880 .text:08002880 loc_0_8002880: ; CODE XREF: getUnitData+2Ej .text:08002880 ; getUnitData+37j .text:08002880 xor edx, edx .text:08002882 mov eax, [esi+34h] .text:08002885 mov dx, [esp+1Ch+var_A] .text:0800288A mov ax, [eax+edx*4] .text:0800288E mov [ebp+0], ax .text:08002892 mov eax, [esi+34h] .text:08002895 mov edi, [esp+1Ch+arg_C] .text:08002899 mov ax, [eax+edx*4+2] .text:0800289E mov [edi], ax .text:080028A1 jmp short loc_0_80028EE .text:080028A1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080028A3 align 4 .text:080028A4 .text:080028A4 loc_0_80028A4: ; CODE XREF: getUnitData+1Dj .text:080028A4 push 4 .text:080028A6 push 8 .text:080028A8 lea eax, [esp+24h+var_8] .text:080028AC push eax .text:080028AD xor eax, eax .text:080028AF mov ax, [esp+28h+var_A] .text:080028B4 push eax .text:080028B5 push esi .text:080028B6 call unitBaseAddress .text:080028BB add esp, 8 .text:080028BE add eax, 8 .text:080028C1 push eax .text:080028C2 lea eax, [esi+5Ch] .text:080028C5 push eax .text:080028C6 mov eax, [esi+80h] .text:080028CC call eax .text:080028CE mov ecx, [esp+30h+var_8] .text:080028D2 or ecx, [esp+30h+var_4] .text:080028D6 mov [ebp+0], cx .text:080028DA mov cx, word ptr [esp+30h+var_8+2] .text:080028DF mov edi, [esp+30h+arg_C] .text:080028E3 or cx, word ptr [esp+30h+var_4+2] .text:080028E8 add esp, 14h .text:080028EB mov [edi], cx .text:080028EE .text:080028EE loc_0_80028EE: ; CODE XREF: getUnitData+A1j .text:080028EE pop ebx .text:080028EF pop esi .text:080028F0 pop edi .text:080028F1 pop ebp .text:080028F2 add esp, 0Ch .text:080028F5 retn .text:080028F5 getUnitData endp .text:080028F5 .text:080028F5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080028F6 align 4 .text:080028F8 .text:080028F8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080028F8 .text:080028F8 .text:080028F8 setUnitData proc near ; CODE XREF: assignUnit+66p .text:080028F8 ; assignUnit+123p ... .text:080028F8 .text:080028F8 var_E = word ptr -0Eh .text:080028F8 var_C = word ptr -0Ch .text:080028F8 var_A = word ptr -0Ah .text:080028F8 var_8 = word ptr -8 .text:080028F8 var_6 = word ptr -6 .text:080028F8 var_4 = word ptr -4 .text:080028F8 var_2 = word ptr -2 .text:080028F8 arg_0 = dword ptr 4 .text:080028F8 arg_4 = dword ptr 8 .text:080028F8 arg_8 = dword ptr 0Ch .text:080028F8 arg_C = dword ptr 10h .text:080028F8 .text:080028F8 sub esp, 10h .text:080028FB push ebp .text:080028FC push edi .text:080028FD push esi .text:080028FE push ebx .text:080028FF mov edi, [esp+20h+arg_0] .text:08002903 mov edx, [esp+20h+arg_C] .text:08002907 mov eax, [esp+20h+arg_8] .text:0800290B mov [esp+20h+var_E], dx .text:08002910 mov [esp+20h+var_8], ax .text:08002915 mov [esp+20h+var_4], ax .text:0800291A mov [esp+20h+var_6], dx .text:0800291F mov [esp+20h+var_2], dx .text:08002924 mov ecx, [esp+20h+arg_4] .text:08002928 push 4 .text:0800292A push 8 .text:0800292C mov ebp, eax .text:0800292E lea eax, [esp+28h+var_8] .text:08002932 xor ebx, ebx .text:08002934 push eax .text:08002935 mov bx, cx .text:08002938 push ebx .text:08002939 push edi .text:0800293A call unitBaseAddress .text:0800293F add esp, 8 .text:08002942 add eax, 8 .text:08002945 push eax .text:08002946 lea eax, [edi+5Ch] .text:08002949 push eax .text:0800294A mov eax, [edi+84h] .text:08002950 call eax .text:08002952 mov esi, eax .text:08002954 add esp, 14h .text:08002957 test esi, esi .text:08002959 jnz short loc_0_80029A2 .text:0800295B mov eax, [edi+34h] .text:0800295E test eax, eax .text:08002960 jz short loc_0_8002972 .text:08002962 mov word ptr [eax+ebx*4], 0DEADh .text:08002968 mov eax, [edi+34h] .text:0800296B mov word ptr [eax+ebx*4+2], 0DEADh .text:08002972 .text:08002972 loc_0_8002972: ; CODE XREF: setUnitData+68j .text:08002972 lea eax, [esp+20h+var_C] .text:08002976 push eax .text:08002977 lea eax, [esp+24h+var_A] .text:0800297B push eax .text:0800297C push ebx .text:0800297D push edi .text:0800297E call getUnitData .text:08002983 add esp, 10h .text:08002986 cmp [esp+20h+var_A], bp .text:0800298B jnz short loc_0_8002999 .text:0800298D mov cx, [esp+20h+var_E] .text:08002992 cmp [esp+20h+var_C], cx .text:08002997 jz short loc_0_80029A0 .text:08002999 .text:08002999 loc_0_8002999: ; CODE XREF: setUnitData+93j .text:08002999 mov eax, 1Dh .text:0800299E jmp short loc_0_80029A2 .text:080029A0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080029A0 .text:080029A0 loc_0_80029A0: ; CODE XREF: setUnitData+9Fj .text:080029A0 mov eax, esi .text:080029A2 .text:080029A2 loc_0_80029A2: ; CODE XREF: setUnitData+61j .text:080029A2 ; setUnitData+A6j .text:080029A2 pop ebx .text:080029A3 pop esi .text:080029A4 pop edi .text:080029A5 pop ebp .text:080029A6 add esp, 10h .text:080029A9 retn .text:080029A9 setUnitData endp .text:080029A9 .text:080029A9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080029AA align 4 .text:080029AC .text:080029AC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080029AC .text:080029AC .text:080029AC getNextUnit proc near ; CODE XREF: virtual2Physical+6Ap .text:080029AC ; foldUnit+85p ... .text:080029AC .text:080029AC var_4 = word ptr -4 .text:080029AC var_2 = byte ptr -2 .text:080029AC arg_0 = dword ptr 4 .text:080029AC arg_4 = word ptr 8 .text:080029AC .text:080029AC sub esp, 4 .text:080029AF mov ecx, [esp+4+arg_0] .text:080029B3 mov eax, [ecx+2Ch] .text:080029B6 xor edx, edx .text:080029B8 mov dx, [esp+4+arg_4] .text:080029BD cmp byte ptr [edx+eax], 0 .text:080029C1 jge short loc_0_80029E0 .text:080029C3 mov eax, esp .text:080029C5 push eax .text:080029C6 lea eax, [esp+8+var_2] .text:080029CA push eax .text:080029CB push edx .text:080029CC push ecx .text:080029CD call getUnitData .text:080029D2 xor eax, eax .text:080029D4 mov ax, [esp+14h+var_4] .text:080029D9 add esp, 10h .text:080029DC jmp short loc_0_80029E5 .text:080029DC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080029DE align 4 .text:080029E0 .text:080029E0 loc_0_80029E0: ; CODE XREF: getNextUnit+15j .text:080029E0 mov eax, 0FFFFh .text:080029E5 .text:080029E5 loc_0_80029E5: ; CODE XREF: getNextUnit+30j .text:080029E5 add esp, 4 .text:080029E8 retn .text:080029E8 getNextUnit endp .text:080029E8 .text:080029E8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080029E9 align 4 .text:080029EC .text:080029EC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080029EC .text:080029EC .text:080029EC getSectorFlagsFromCache proc near ; CODE XREF: getSectorFlags+15p .text:080029EC .text:080029EC arg_0 = dword ptr 4 .text:080029EC arg_4 = dword ptr 8 .text:080029EC .text:080029EC mov ecx, [esp+arg_4] .text:080029F0 mov eax, [esp+arg_0] .text:080029F4 mov edx, ecx .text:080029F6 shr edx, 0Bh .text:080029F9 mov eax, [eax+38h] .text:080029FC shr ecx, 8 .text:080029FF mov al, [edx+eax] .text:08002A02 and ecx, 7 .text:08002A05 and eax, 0FFh .text:08002A0A sar eax, cl .text:08002A0C and eax, 3 .text:08002A0F mov al, byte ptr scacheTable[eax] .text:08002A15 and eax, 0FFh .text:08002A1A retn .text:08002A1A getSectorFlagsFromCache endp .text:08002A1A .text:08002A1A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A1B align 4 .text:08002A1C .text:08002A1C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002A1C .text:08002A1C .text:08002A1C setSectorFlagsCache proc near ; CODE XREF: getSectorFlags+55p .text:08002A1C ; formatUnit+87p ... .text:08002A1C .text:08002A1C arg_0 = dword ptr 10h .text:08002A1C arg_4 = dword ptr 14h .text:08002A1C arg_8 = byte ptr 18h .text:08002A1C .text:08002A1C push edi .text:08002A1D push esi .text:08002A1E push ebx .text:08002A1F mov edi, [esp+arg_0] .text:08002A23 mov esi, [esp+arg_4] .text:08002A27 mov bl, [esp+arg_8] .text:08002A2B mov edx, [edi+38h] .text:08002A2E test edx, edx .text:08002A30 jz short loc_0_8002AB1 .text:08002A32 mov eax, esi .text:08002A34 shr eax, 0Bh .text:08002A37 mov cl, [eax+edx] .text:08002A3A xor eax, eax .text:08002A3C mov al, bl .text:08002A3E cmp eax, 55h .text:08002A41 jz short loc_0_8002A58 .text:08002A43 jg short loc_0_8002A4C .text:08002A45 test eax, eax .text:08002A47 jz short loc_0_8002A60 .text:08002A49 jmp short loc_0_8002A64 .text:08002A49 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A4B align 4 .text:08002A4C .text:08002A4C loc_0_8002A4C: ; CODE XREF: setSectorFlagsCache+27j .text:08002A4C cmp eax, 0FFh .text:08002A51 jz short loc_0_8002A5C .text:08002A53 jmp short loc_0_8002A64 .text:08002A53 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A55 align 4 .text:08002A58 .text:08002A58 loc_0_8002A58: ; CODE XREF: setSectorFlagsCache+25j .text:08002A58 mov dl, 2 .text:08002A5A jmp short loc_0_8002A66 .text:08002A5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A5C .text:08002A5C loc_0_8002A5C: ; CODE XREF: setSectorFlagsCache+35j .text:08002A5C mov dl, 3 .text:08002A5E jmp short loc_0_8002A66 .text:08002A60 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A60 .text:08002A60 loc_0_8002A60: ; CODE XREF: setSectorFlagsCache+2Bj .text:08002A60 mov dl, al .text:08002A62 jmp short loc_0_8002A66 .text:08002A64 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A64 .text:08002A64 loc_0_8002A64: ; CODE XREF: setSectorFlagsCache+2Dj .text:08002A64 ; setSectorFlagsCache+37j .text:08002A64 mov dl, 1 .text:08002A66 .text:08002A66 loc_0_8002A66: ; CODE XREF: setSectorFlagsCache+3Ej .text:08002A66 ; setSectorFlagsCache+42j ... .text:08002A66 mov eax, esi .text:08002A68 shr eax, 8 .text:08002A6B and eax, 7 .text:08002A6E cmp eax, 2 .text:08002A71 jz short loc_0_8002A90 .text:08002A73 ja short loc_0_8002A7C .text:08002A75 test eax, eax .text:08002A77 jz short loc_0_8002A88 .text:08002A79 jmp short loc_0_8002AA8 .text:08002A79 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A7B align 4 .text:08002A7C .text:08002A7C loc_0_8002A7C: ; CODE XREF: setSectorFlagsCache+57j .text:08002A7C cmp eax, 4 .text:08002A7F jz short loc_0_8002A98 .text:08002A81 cmp eax, 6 .text:08002A84 jz short loc_0_8002AA0 .text:08002A86 jmp short loc_0_8002AA8 .text:08002A88 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A88 .text:08002A88 loc_0_8002A88: ; CODE XREF: setSectorFlagsCache+5Bj .text:08002A88 and cl, 0FCh .text:08002A8B jmp short loc_0_8002AA6 .text:08002A8B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A8D align 4 .text:08002A90 .text:08002A90 loc_0_8002A90: ; CODE XREF: setSectorFlagsCache+55j .text:08002A90 and cl, 0F3h .text:08002A93 shl dl, 2 .text:08002A96 jmp short loc_0_8002AA6 .text:08002A98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002A98 .text:08002A98 loc_0_8002A98: ; CODE XREF: setSectorFlagsCache+63j .text:08002A98 and cl, 0CFh .text:08002A9B shl dl, 4 .text:08002A9E jmp short loc_0_8002AA6 .text:08002AA0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002AA0 .text:08002AA0 loc_0_8002AA0: ; CODE XREF: setSectorFlagsCache+68j .text:08002AA0 and cl, 3Fh .text:08002AA3 shl dl, 6 .text:08002AA6 .text:08002AA6 loc_0_8002AA6: ; CODE XREF: setSectorFlagsCache+6Fj .text:08002AA6 ; setSectorFlagsCache+7Aj ... .text:08002AA6 or cl, dl .text:08002AA8 .text:08002AA8 loc_0_8002AA8: ; CODE XREF: setSectorFlagsCache+5Dj .text:08002AA8 ; setSectorFlagsCache+6Aj .text:08002AA8 shr esi, 0Bh .text:08002AAB mov eax, [edi+38h] .text:08002AAE mov [esi+eax], cl .text:08002AB1 .text:08002AB1 loc_0_8002AB1: ; CODE XREF: setSectorFlagsCache+14j .text:08002AB1 pop ebx .text:08002AB2 pop esi .text:08002AB3 pop edi .text:08002AB4 retn .text:08002AB4 setSectorFlagsCache endp .text:08002AB4 .text:08002AB4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002AB5 align 4 .text:08002AB8 .text:08002AB8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002AB8 .text:08002AB8 .text:08002AB8 getSectorFlags proc near ; CODE XREF: virtual2Physical+48p .text:08002AB8 ; allocateAndWriteSector+90p .text:08002AB8 .text:08002AB8 var_2 = byte ptr -2 .text:08002AB8 var_1 = byte ptr -1 .text:08002AB8 arg_0 = dword ptr 4 .text:08002AB8 arg_4 = dword ptr 8 .text:08002AB8 .text:08002AB8 sub esp, 4 .text:08002ABB push esi .text:08002ABC push ebx .text:08002ABD mov ebx, [esp+0Ch+arg_0] .text:08002AC1 mov esi, [esp+0Ch+arg_4] .text:08002AC5 cmp dword ptr [ebx+38h], 0 .text:08002AC9 jz short loc_0_8002AE4 .text:08002ACB push esi .text:08002ACC push ebx .text:08002ACD call getSectorFlagsFromCache .text:08002AD2 mov [esp+14h+var_2], al .text:08002AD6 add esp, 8 .text:08002AD9 cmp al, 11h .text:08002ADB jz short loc_0_8002AE4 .text:08002ADD and eax, 0FFh .text:08002AE2 jmp short loc_0_8002B22 .text:08002AE4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002AE4 .text:08002AE4 loc_0_8002AE4: ; CODE XREF: getSectorFlags+11j .text:08002AE4 ; getSectorFlags+23j .text:08002AE4 push 4 .text:08002AE6 push 2 .text:08002AE8 lea eax, [esp+14h+var_2] .text:08002AEC push eax .text:08002AED lea eax, [esi+6] .text:08002AF0 push eax .text:08002AF1 lea eax, [ebx+5Ch] .text:08002AF4 push eax .text:08002AF5 mov eax, [ebx+80h] .text:08002AFB call eax .text:08002AFD mov al, [esp+20h+var_2] .text:08002B01 or al, [esp+20h+var_1] .text:08002B05 and eax, 0FFh .text:08002B0A push eax .text:08002B0B push esi .text:08002B0C push ebx .text:08002B0D call setSectorFlagsCache .text:08002B12 mov al, [esp+2Ch+var_2] .text:08002B16 or al, [esp+2Ch+var_1] .text:08002B1A add esp, 20h .text:08002B1D and eax, 0FFh .text:08002B22 .text:08002B22 loc_0_8002B22: ; CODE XREF: getSectorFlags+2Aj .text:08002B22 pop ebx .text:08002B23 pop esi .text:08002B24 add esp, 4 .text:08002B27 retn .text:08002B27 getSectorFlags endp .text:08002B27 .text:08002B28 .text:08002B28 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002B28 .text:08002B28 .text:08002B28 virtual2Physical proc near ; CODE XREF: foldUnit+116p .text:08002B28 ; setUnitCount+3Ap ... .text:08002B28 .text:08002B28 var_4 = dword ptr -4 .text:08002B28 arg_0 = dword ptr 4 .text:08002B28 arg_4 = dword ptr 8 .text:08002B28 .text:08002B28 sub esp, 4 .text:08002B2B push ebp .text:08002B2C push edi .text:08002B2D push esi .text:08002B2E push ebx .text:08002B2F mov edi, [esp+14h+arg_0] .text:08002B33 mov eax, [esp+14h+arg_4] .text:08002B37 xor edx, edx .text:08002B39 div dword ptr [edi+18h] .text:08002B3C shl edx, 9 .text:08002B3F mov [esp+14h+var_4], edx .text:08002B43 xor edx, edx .text:08002B45 mov dx, ax .text:08002B48 mov eax, [edi+30h] .text:08002B4B mov ebp, 0FFFFFFFFh .text:08002B50 mov bx, [eax+edx*2] .text:08002B54 cmp bx, 0FFFFh .text:08002B59 jz short loc_0_8002BA3 .text:08002B5B nop .text:08002B5C .text:08002B5C loc_0_8002B5C: ; CODE XREF: virtual2Physical+79j .text:08002B5C xor eax, eax .text:08002B5E mov ax, bx .text:08002B61 push eax .text:08002B62 push edi .text:08002B63 call unitBaseAddress .text:08002B68 mov esi, eax .text:08002B6A add esi, [esp+1Ch+var_4] .text:08002B6E push esi .text:08002B6F push edi .text:08002B70 call getSectorFlags .text:08002B75 add esp, 10h .text:08002B78 cmp al, 0FFh .text:08002B7A jz short loc_0_8002BA3 .text:08002B7C cmp al, 11h .text:08002B7E jz short loc_0_8002B8B .text:08002B80 mov ebp, 0FFFFFFFFh .text:08002B85 test al, al .text:08002B87 jz short loc_0_8002B8B .text:08002B89 mov ebp, esi .text:08002B8B .text:08002B8B loc_0_8002B8B: ; CODE XREF: virtual2Physical+56j .text:08002B8B ; virtual2Physical+5Fj .text:08002B8B xor eax, eax .text:08002B8D mov ax, bx .text:08002B90 push eax .text:08002B91 push edi .text:08002B92 call getNextUnit .text:08002B97 mov ebx, eax .text:08002B99 add esp, 8 .text:08002B9C cmp bx, 0FFFFh .text:08002BA1 jnz short loc_0_8002B5C .text:08002BA3 .text:08002BA3 loc_0_8002BA3: ; CODE XREF: virtual2Physical+31j .text:08002BA3 ; virtual2Physical+52j .text:08002BA3 pop ebx .text:08002BA4 pop esi .text:08002BA5 mov eax, ebp .text:08002BA7 pop edi .text:08002BA8 pop ebp .text:08002BA9 add esp, 4 .text:08002BAC retn .text:08002BAC virtual2Physical endp .text:08002BAC .text:08002BAC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002BAD align 4 .text:08002BB0 .text:08002BB0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002BB0 .text:08002BB0 .text:08002BB0 getFoldMark proc near ; CODE XREF: mountUnit+D4p .text:08002BB0 .text:08002BB0 var_4 = dword ptr -4 .text:08002BB0 arg_0 = dword ptr 4 .text:08002BB0 arg_4 = word ptr 8 .text:08002BB0 .text:08002BB0 sub esp, 4 .text:08002BB3 push ebx .text:08002BB4 mov ebx, [esp+8+arg_0] .text:08002BB8 push 4 .text:08002BBA push 4 .text:08002BBC lea eax, [esp+10h+var_4] .text:08002BC0 push eax .text:08002BC1 xor eax, eax .text:08002BC3 mov ax, [esp+14h+arg_4] .text:08002BC8 push eax .text:08002BC9 push ebx .text:08002BCA call unitBaseAddress .text:08002BCF add esp, 8 .text:08002BD2 add eax, 408h .text:08002BD7 push eax .text:08002BD8 lea eax, [ebx+5Ch] .text:08002BDB push eax .text:08002BDC mov eax, [ebx+80h] .text:08002BE2 call eax .text:08002BE4 mov eax, [esp+1Ch+var_4] .text:08002BE8 or ax, word ptr [esp+1Ch+var_4+2] .text:08002BED add esp, 14h .text:08002BF0 and eax, 0FFFFh .text:08002BF5 pop ebx .text:08002BF6 add esp, 4 .text:08002BF9 retn .text:08002BF9 getFoldMark endp .text:08002BF9 .text:08002BF9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002BFA align 4 .text:08002BFC .text:08002BFC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002BFC .text:08002BFC .text:08002BFC getUnitTailer proc near ; CODE XREF: markUnitBad+23p .text:08002BFC ; formatUnit+53p ... .text:08002BFC .text:08002BFC var_8 = dword ptr -8 .text:08002BFC var_4 = dword ptr -4 .text:08002BFC arg_0 = dword ptr 4 .text:08002BFC arg_4 = word ptr 8 .text:08002BFC arg_8 = dword ptr 0Ch .text:08002BFC arg_C = dword ptr 10h .text:08002BFC .text:08002BFC sub esp, 8 .text:08002BFF push edi .text:08002C00 push esi .text:08002C01 push ebx .text:08002C02 mov ebx, [esp+14h+arg_0] .text:08002C06 mov esi, [esp+14h+arg_8] .text:08002C0A mov edi, [esp+14h+arg_C] .text:08002C0E push 4 .text:08002C10 push 8 .text:08002C12 lea eax, [esp+1Ch+var_8] .text:08002C16 push eax .text:08002C17 xor eax, eax .text:08002C19 mov ax, [esp+20h+arg_4] .text:08002C1E push eax .text:08002C1F push ebx .text:08002C20 call unitBaseAddress .text:08002C25 add esp, 8 .text:08002C28 add eax, 208h .text:08002C2D push eax .text:08002C2E lea eax, [ebx+5Ch] .text:08002C31 push eax .text:08002C32 mov eax, [ebx+80h] .text:08002C38 call eax .text:08002C3A mov edx, [esp+28h+var_4] .text:08002C3E or dx, word ptr [esp+28h+var_4+2] .text:08002C43 mov [esi], dx .text:08002C46 mov eax, [esp+28h+var_8] .text:08002C4A add esp, 14h .text:08002C4D mov [edi], eax .text:08002C4F pop ebx .text:08002C50 pop esi .text:08002C51 pop edi .text:08002C52 add esp, 8 .text:08002C55 retn .text:08002C55 getUnitTailer endp .text:08002C55 .text:08002C55 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002C56 align 4 .text:08002C58 .text:08002C58 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002C58 .text:08002C58 .text:08002C58 setUnitTailer proc near ; CODE XREF: markUnitBad+31p .text:08002C58 ; formatUnit+103p .text:08002C58 .text:08002C58 var_8 = dword ptr -8 .text:08002C58 var_4 = word ptr -4 .text:08002C58 var_2 = word ptr -2 .text:08002C58 arg_0 = dword ptr 4 .text:08002C58 arg_4 = dword ptr 8 .text:08002C58 arg_8 = dword ptr 0Ch .text:08002C58 arg_C = dword ptr 10h .text:08002C58 .text:08002C58 sub esp, 8 .text:08002C5B push ebx .text:08002C5C mov ebx, [esp+0Ch+arg_0] .text:08002C60 mov eax, [esp+0Ch+arg_8] .text:08002C64 mov edx, [esp+0Ch+arg_C] .text:08002C68 mov [esp+0Ch+var_4], ax .text:08002C6D mov [esp+0Ch+var_2], ax .text:08002C72 mov [esp+0Ch+var_8], edx .text:08002C76 mov ecx, [esp+0Ch+arg_4] .text:08002C7A push 4 .text:08002C7C push 8 .text:08002C7E lea eax, [esp+14h+var_8] .text:08002C82 push eax .text:08002C83 xor eax, eax .text:08002C85 mov ax, cx .text:08002C88 push eax .text:08002C89 push ebx .text:08002C8A call unitBaseAddress .text:08002C8F add esp, 8 .text:08002C92 add eax, 208h .text:08002C97 push eax .text:08002C98 lea eax, [ebx+5Ch] .text:08002C9B push eax .text:08002C9C mov eax, [ebx+84h] .text:08002CA2 call eax .text:08002CA4 add esp, 14h .text:08002CA7 pop ebx .text:08002CA8 add esp, 8 .text:08002CAB retn .text:08002CAB setUnitTailer endp .text:08002CAB .text:08002CAC .text:08002CAC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002CAC .text:08002CAC .text:08002CAC initNFTL proc near ; CODE XREF: formatNFTL+30p .text:08002CAC ; mountNFTL+48p .text:08002CAC .text:08002CAC arg_0 = dword ptr 10h .text:08002CAC arg_4 = dword ptr 14h .text:08002CAC .text:08002CAC push edi .text:08002CAD push esi .text:08002CAE push ebx .text:08002CAF mov eax, 1 .text:08002CB4 mov ebx, [esp+arg_0] .text:08002CB8 mov esi, [esp+arg_4] .text:08002CBC test esi, esi .text:08002CBE jz short loc_0_8002CC6 .text:08002CC0 test byte ptr [esi+14h], 2 .text:08002CC4 jnz short loc_0_8002CE0 .text:08002CC6 .text:08002CC6 loc_0_8002CC6: ; CODE XREF: initNFTL+12j .text:08002CC6 push offset aDebugMediaIsNo ; "Debug: media is not fit for NFTL format"... .text:08002CCB call flprintk .text:08002CD0 mov eax, 1Ah .text:08002CD5 add esp, 4 .text:08002CD8 jmp loc_0_8002D91 .text:08002CD8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002CDD align 4 .text:08002CE0 .text:08002CE0 loc_0_8002CE0: ; CODE XREF: initNFTL+18j .text:08002CE0 lea edi, [ebx+5Ch] .text:08002CE3 cld .text:08002CE4 mov ecx, 0Dh .text:08002CE9 repe movsd .text:08002CEB mov dword ptr [ebx+2Ch], 0 .text:08002CF2 mov dword ptr [ebx+30h], 0 .text:08002CF9 mov dword ptr [ebx+0Ch], 0 .text:08002D00 mov edx, [ebx+60h] .text:08002D03 cmp eax, edx .text:08002D05 jge short loc_0_8002D11 .text:08002D07 nop .text:08002D08 .text:08002D08 loc_0_8002D08: ; CODE XREF: initNFTL+63j .text:08002D08 inc dword ptr [ebx+0Ch] .text:08002D0B add eax, eax .text:08002D0D cmp eax, edx .text:08002D0F jl short loc_0_8002D08 .text:08002D11 .text:08002D11 loc_0_8002D11: ; CODE XREF: initNFTL+59j .text:08002D11 mov ecx, [ebx+0Ch] .text:08002D14 mov eax, [ebx+68h] .text:08002D17 mov esi, 1 .text:08002D1C imul eax, [ebx+64h] .text:08002D20 sar eax, cl .text:08002D22 mov [ebx+20h], ecx .text:08002D25 mov [ebx+1Ch], ax .text:08002D29 mov edx, esi .text:08002D2B xor eax, eax .text:08002D2D mov ax, [ebx+1Ch] .text:08002D31 shl edx, cl .text:08002D33 add eax, 200h .text:08002D38 cmp eax, edx .text:08002D3A jbe short loc_0_8002D64 .text:08002D3C .text:08002D3C loc_0_8002D3C: ; CODE XREF: initNFTL+B6j .text:08002D3C mov eax, [ebx+20h] .text:08002D3F shr word ptr [ebx+1Ch], 1 .text:08002D44 lea edi, [eax+1] .text:08002D47 xor edx, edx .text:08002D49 mov [ebx+20h], edi .text:08002D4C mov eax, edi .text:08002D4E mov edi, esi .text:08002D50 mov ecx, eax .text:08002D52 mov dx, [ebx+1Ch] .text:08002D56 shl edi, cl .text:08002D58 add edx, 200h .text:08002D5E mov eax, edi .text:08002D60 cmp edx, eax .text:08002D62 ja short loc_0_8002D3C .text:08002D64 .text:08002D64 loc_0_8002D64: ; CODE XREF: initNFTL+8Ej .text:08002D64 mov eax, [ebx+78h] .text:08002D67 mov dword ptr [ebx], 1 .text:08002D6D mov dword ptr [ebx+3Ch], 0FFFFFFFFh .text:08002D74 push eax .text:08002D75 call flSocketNoOf .text:08002D7A push eax .text:08002D7B call flBufferOf .text:08002D80 mov [ebx+90h], eax .text:08002D86 mov word ptr [ebx+2Ah], 0 .text:08002D8C add esp, 8 .text:08002D8F xor eax, eax .text:08002D91 .text:08002D91 loc_0_8002D91: ; CODE XREF: initNFTL+2Cj .text:08002D91 pop ebx .text:08002D92 pop esi .text:08002D93 pop edi .text:08002D94 retn .text:08002D94 initNFTL endp .text:08002D94 .text:08002D94 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002D95 align 4 .text:08002D98 .text:08002D98 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002D98 .text:08002D98 .text:08002D98 initTables proc near ; CODE XREF: formatNFTL+19Ep .text:08002D98 ; mountNFTL+209p .text:08002D98 .text:08002D98 arg_0 = dword ptr 8 .text:08002D98 .text:08002D98 push ebx .text:08002D99 mov ebx, [esp+arg_0] .text:08002D9D xor eax, eax .text:08002D9F mov ax, [ebx+1Ch] .text:08002DA3 push eax .text:08002DA4 call flkmalloc .text:08002DA9 mov [ebx+2Ch], eax .text:08002DAC xor eax, eax .text:08002DAE mov ax, [ebx+10h] .text:08002DB2 add eax, eax .text:08002DB4 push eax .text:08002DB5 call flkmalloc .text:08002DBA mov [ebx+30h], eax .text:08002DBD add esp, 8 .text:08002DC0 cmp dword ptr [ebx+2Ch], 0 .text:08002DC4 jz short loc_0_8002DCA .text:08002DC6 test eax, eax .text:08002DC8 jnz short loc_0_8002DE0 .text:08002DCA .text:08002DCA loc_0_8002DCA: ; CODE XREF: initTables+2Cj .text:08002DCA push offset aDebugFailedA_0 ; "Debug: failed allocating conversion tab"... .text:08002DCF call flprintk .text:08002DD4 mov eax, 3Fh .text:08002DD9 add esp, 4 .text:08002DDC jmp short loc_0_8002DE2 .text:08002DDC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002DDE align 4 .text:08002DE0 .text:08002DE0 loc_0_8002DE0: ; CODE XREF: initTables+30j .text:08002DE0 xor eax, eax .text:08002DE2 .text:08002DE2 loc_0_8002DE2: ; CODE XREF: initTables+44j .text:08002DE2 pop ebx .text:08002DE3 retn .text:08002DE3 initTables endp .text:08002DE3 .text:08002DE4 .text:08002DE4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002DE4 .text:08002DE4 .text:08002DE4 markUnitBad proc near ; CODE XREF: formatUnit+D1p .text:08002DE4 ; assignUnit+76p .text:08002DE4 .text:08002DE4 var_8 = dword ptr -8 .text:08002DE4 var_2 = byte ptr -2 .text:08002DE4 arg_0 = dword ptr 4 .text:08002DE4 arg_4 = word ptr 8 .text:08002DE4 .text:08002DE4 sub esp, 8 .text:08002DE7 push esi .text:08002DE8 push ebx .text:08002DE9 mov esi, [esp+10h+arg_0] .text:08002DED xor ebx, ebx .text:08002DEF mov eax, [esi+2Ch] .text:08002DF2 mov bx, [esp+10h+arg_4] .text:08002DF7 mov byte ptr [ebx+eax], 6Bh .text:08002DFB lea eax, [esp+10h+var_8] .text:08002DFF push eax .text:08002E00 lea eax, [esp+14h+var_2] .text:08002E04 push eax .text:08002E05 push ebx .text:08002E06 push esi .text:08002E07 call getUnitTailer .text:08002E0C mov eax, [esp+20h+var_8] .text:08002E10 push eax .text:08002E11 push 0 .text:08002E13 push ebx .text:08002E14 push esi .text:08002E15 call setUnitTailer .text:08002E1A add esp, 20h .text:08002E1D pop ebx .text:08002E1E pop esi .text:08002E1F add esp, 8 .text:08002E22 retn .text:08002E22 markUnitBad endp .text:08002E22 .text:08002E22 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002E23 align 4 .text:08002E24 .text:08002E24 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002E24 .text:08002E24 .text:08002E24 formatUnit proc near ; CODE XREF: assignUnit+13Ap .text:08002E24 ; formatChain+2Cp ... .text:08002E24 .text:08002E24 var_8 = dword ptr -8 .text:08002E24 var_2 = byte ptr -2 .text:08002E24 arg_0 = dword ptr 4 .text:08002E24 arg_4 = dword ptr 8 .text:08002E24 .text:08002E24 sub esp, 8 .text:08002E27 push ebp .text:08002E28 push edi .text:08002E29 push esi .text:08002E2A push ebx .text:08002E2B mov edi, [esp+18h+arg_0] .text:08002E2F xor edx, edx .text:08002E31 mov ebp, [esp+18h+arg_4] .text:08002E35 mov eax, [edi+2Ch] .text:08002E38 mov dx, bp .text:08002E3B mov al, [edx+eax] .text:08002E3E cmp al, 0FFh .text:08002E40 jz short loc_0_8002E54 .text:08002E42 and al, 7Fh .text:08002E44 cmp al, 40h .text:08002E46 jbe short loc_0_8002E58 .text:08002E48 mov eax, 1Dh .text:08002E4D jmp loc_0_8002F46 .text:08002E4D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002E52 align 4 .text:08002E54 .text:08002E54 loc_0_8002E54: ; CODE XREF: formatUnit+1Cj .text:08002E54 dec word ptr [edi+8] .text:08002E58 .text:08002E58 loc_0_8002E58: ; CODE XREF: formatUnit+22j .text:08002E58 xor esi, esi .text:08002E5A mov eax, [edi+2Ch] .text:08002E5D mov si, bp .text:08002E60 and byte ptr [esi+eax], 80h .text:08002E64 mov eax, [edi+2Ch] .text:08002E67 or byte ptr [esi+eax], 6Ah .text:08002E6B lea eax, [esp+18h+var_8] .text:08002E6F push eax .text:08002E70 lea eax, [esp+1Ch+var_2] .text:08002E74 push eax .text:08002E75 push esi .text:08002E76 push edi .text:08002E77 call getUnitTailer .text:08002E7C add esp, 10h .text:08002E7F mov eax, [edi+34h] .text:08002E82 test eax, eax .text:08002E84 jz short loc_0_8002E96 .text:08002E86 mov word ptr [eax+esi*4], 0DEADh .text:08002E8C mov eax, [edi+34h] .text:08002E8F mov word ptr [eax+esi*4+2], 0DEADh .text:08002E96 .text:08002E96 loc_0_8002E96: ; CODE XREF: formatUnit+60j .text:08002E96 mov ebx, esi .text:08002E98 inc esi .text:08002E99 mov ecx, [edi+20h] .text:08002E9C mov eax, esi .text:08002E9E shl ebx, cl .text:08002EA0 jmp short loc_0_8002EBE .text:08002EA0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002EA2 align 4 .text:08002EA4 .text:08002EA4 loc_0_8002EA4: ; CODE XREF: formatUnit+9Ej .text:08002EA4 push 0FFh .text:08002EA9 push ebx .text:08002EAA push edi .text:08002EAB call setSectorFlagsCache .text:08002EB0 add esp, 0Ch .text:08002EB3 mov ecx, [edi+20h] .text:08002EB6 mov eax, esi .text:08002EB8 add ebx, 200h .text:08002EBE .text:08002EBE loc_0_8002EBE: ; CODE XREF: formatUnit+7Cj .text:08002EBE shl eax, cl .text:08002EC0 cmp ebx, eax .text:08002EC2 jb short loc_0_8002EA4 .text:08002EC4 mov eax, [edi+0Ch] .text:08002EC7 mov ecx, [edi+20h] .text:08002ECA sub ecx, eax .text:08002ECC mov eax, 1 .text:08002ED1 xor esi, esi .text:08002ED3 shl eax, cl .text:08002ED5 mov si, bp .text:08002ED8 push eax .text:08002ED9 mov eax, esi .text:08002EDB shl eax, cl .text:08002EDD push eax .text:08002EDE lea eax, [edi+5Ch] .text:08002EE1 push eax .text:08002EE2 mov eax, [edi+88h] .text:08002EE8 call eax .text:08002EEA mov ebx, eax .text:08002EEC add esp, 0Ch .text:08002EEF test ebx, ebx .text:08002EF1 jz short loc_0_8002F04 .text:08002EF3 push esi .text:08002EF4 push edi .text:08002EF5 call markUnitBad .text:08002EFA mov eax, ebx .text:08002EFC add esp, 8 .text:08002EFF jmp short loc_0_8002F46 .text:08002EFF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002F01 align 4 .text:08002F04 .text:08002F04 loc_0_8002F04: ; CODE XREF: formatUnit+CDj .text:08002F04 mov eax, [esp+18h+var_8] .text:08002F08 lea edx, [eax+1] .text:08002F0B mov [esp+18h+var_8], edx .text:08002F0F cmp eax, 0FFFFFFFFh .text:08002F12 jnz short loc_0_8002F1B .text:08002F14 add eax, 2 .text:08002F17 mov [esp+18h+var_8], eax .text:08002F1B .text:08002F1B loc_0_8002F1B: ; CODE XREF: formatUnit+EEj .text:08002F1B mov eax, [esp+18h+var_8] .text:08002F1F push eax .text:08002F20 push 3C69h .text:08002F25 push esi .text:08002F26 push edi .text:08002F27 call setUnitTailer .text:08002F2C mov ecx, eax .text:08002F2E add esp, 10h .text:08002F31 test ecx, ecx .text:08002F33 jnz short loc_0_8002F44 .text:08002F35 mov eax, [edi+2Ch] .text:08002F38 mov byte ptr [esi+eax], 0FFh .text:08002F3C inc word ptr [edi+8] .text:08002F40 mov eax, ecx .text:08002F42 jmp short loc_0_8002F46 .text:08002F44 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002F44 .text:08002F44 loc_0_8002F44: ; CODE XREF: formatUnit+10Fj .text:08002F44 mov eax, ecx .text:08002F46 .text:08002F46 loc_0_8002F46: ; CODE XREF: formatUnit+29j .text:08002F46 ; formatUnit+DBj ... .text:08002F46 pop ebx .text:08002F47 pop esi .text:08002F48 pop edi .text:08002F49 pop ebp .text:08002F4A add esp, 8 .text:08002F4D retn .text:08002F4D formatUnit endp .text:08002F4D .text:08002F4D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002F4E align 4 .text:08002F50 .text:08002F50 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002F50 .text:08002F50 .text:08002F50 writeAndCheck proc near ; CODE XREF: copySector+95p .text:08002F50 ; allocateAndWriteSector+168p .text:08002F50 .text:08002F50 var_2 = word ptr -2 .text:08002F50 arg_0 = dword ptr 4 .text:08002F50 arg_4 = dword ptr 8 .text:08002F50 arg_8 = dword ptr 0Ch .text:08002F50 arg_C = dword ptr 10h .text:08002F50 .text:08002F50 sub esp, 4 .text:08002F53 push ebp .text:08002F54 push edi .text:08002F55 push esi .text:08002F56 push ebx .text:08002F57 mov ebx, [esp+14h+arg_0] .text:08002F5B mov esi, [esp+14h+arg_4] .text:08002F5F mov edx, [esp+14h+arg_C] .text:08002F63 mov eax, [esp+14h+arg_8] .text:08002F67 push edx .text:08002F68 push 200h .text:08002F6D push eax .text:08002F6E push esi .text:08002F6F lea edi, [ebx+5Ch] .text:08002F72 push edi .text:08002F73 mov eax, [ebx+84h] .text:08002F79 call eax .text:08002F7B mov ebp, eax .text:08002F7D add esp, 14h .text:08002F80 cmp ebp, 1Dh .text:08002F83 jnz short loc_0_8002FBC .text:08002F85 xor eax, eax .text:08002F87 mov al, byte ptr [esp+14h+var_2] .text:08002F8B or ah, 11h .text:08002F8E mov [esp+14h+var_2], ax .text:08002F93 mov byte ptr [esp+14h+var_2], 11h .text:08002F98 push 11h .text:08002F9A push esi .text:08002F9B push ebx .text:08002F9C call setSectorFlagsCache .text:08002FA1 push 4 .text:08002FA3 push 2 .text:08002FA5 lea eax, [esp+28h+var_2] .text:08002FA9 push eax .text:08002FAA lea eax, [esi+6] .text:08002FAD push eax .text:08002FAE push edi .text:08002FAF mov eax, [ebx+84h] .text:08002FB5 call eax .text:08002FB7 add esp, 20h .text:08002FBA jmp short loc_0_8002FC8 .text:08002FBC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002FBC .text:08002FBC loc_0_8002FBC: ; CODE XREF: writeAndCheck+33j .text:08002FBC push 55h .text:08002FBE push esi .text:08002FBF push ebx .text:08002FC0 call setSectorFlagsCache .text:08002FC5 add esp, 0Ch .text:08002FC8 .text:08002FC8 loc_0_8002FC8: ; CODE XREF: writeAndCheck+6Aj .text:08002FC8 pop ebx .text:08002FC9 pop esi .text:08002FCA mov eax, ebp .text:08002FCC pop edi .text:08002FCD pop ebp .text:08002FCE add esp, 4 .text:08002FD1 retn .text:08002FD1 writeAndCheck endp .text:08002FD1 .text:08002FD1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08002FD2 align 4 .text:08002FD4 .text:08002FD4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08002FD4 .text:08002FD4 .text:08002FD4 copySector proc near ; CODE XREF: foldUnit+12Bp .text:08002FD4 .text:08002FD4 var_8 = byte ptr -8 .text:08002FD4 var_2 = byte ptr -2 .text:08002FD4 var_1 = byte ptr -1 .text:08002FD4 arg_0 = dword ptr 4 .text:08002FD4 arg_4 = dword ptr 8 .text:08002FD4 arg_8 = dword ptr 0Ch .text:08002FD4 .text:08002FD4 sub esp, 8 .text:08002FD7 push ebp .text:08002FD8 push edi .text:08002FD9 push esi .text:08002FDA push ebx .text:08002FDB mov edi, [esp+18h+arg_0] .text:08002FDF mov eax, [edi+78h] .text:08002FE2 mov ebx, 2 .text:08002FE7 mov ebp, [esp+18h+arg_8] .text:08002FEB mov dword ptr [eax+1Ch], 1 .text:08002FF2 push ebx .text:08002FF3 push 200h .text:08002FF8 mov eax, [edi+90h] .text:08002FFE push eax .text:08002FFF mov edx, [esp+24h+arg_4] .text:08003003 push edx .text:08003004 lea esi, [edi+5Ch] .text:08003007 push esi .text:08003008 mov eax, [edi+80h] .text:0800300E call eax .text:08003010 add esp, 14h .text:08003013 cmp eax, 19h .text:08003016 jnz short loc_0_800305F .text:08003018 push 4 .text:0800301A push 8 .text:0800301C lea ebx, [esp+20h+var_8] .text:08003020 push ebx .text:08003021 mov edx, [esp+24h+arg_4] .text:08003025 push edx .text:08003026 push esi .text:08003027 mov eax, [edi+80h] .text:0800302D call eax .text:0800302F push 4 .text:08003031 push 8 .text:08003033 push ebx .text:08003034 push ebp .text:08003035 push esi .text:08003036 mov eax, [edi+84h] .text:0800303C call eax .text:0800303E mov ebx, eax .text:08003040 add esp, 28h .text:08003043 test ebx, ebx .text:08003045 jnz short loc_0_8003071 .text:08003047 mov al, [esp+18h+var_1] .text:0800304B or al, [esp+18h+var_2] .text:0800304F and eax, 0FFh .text:08003054 push eax .text:08003055 push ebp .text:08003056 push edi .text:08003057 call setSectorFlagsCache .text:0800305C add esp, 0Ch .text:0800305F .text:0800305F loc_0_800305F: ; CODE XREF: copySector+42j .text:0800305F push ebx .text:08003060 mov eax, [edi+90h] .text:08003066 push eax .text:08003067 push ebp .text:08003068 push edi .text:08003069 call writeAndCheck .text:0800306E add esp, 10h .text:08003071 .text:08003071 loc_0_8003071: ; CODE XREF: copySector+71j .text:08003071 pop ebx .text:08003072 pop esi .text:08003073 pop edi .text:08003074 pop ebp .text:08003075 add esp, 8 .text:08003078 retn .text:08003078 copySector endp .text:08003078 .text:08003078 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003079 align 4 .text:0800307C .text:0800307C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800307C .text:0800307C .text:0800307C lastInChain proc near ; CODE XREF: assignUnit+BBp .text:0800307C ; formatChain+1Ep .text:0800307C .text:0800307C var_8 = dword ptr -8 .text:0800307C var_4 = dword ptr -4 .text:0800307C arg_0 = dword ptr 4 .text:0800307C arg_4 = dword ptr 8 .text:0800307C .text:0800307C sub esp, 8 .text:0800307F push ebp .text:08003080 push edi .text:08003081 push esi .text:08003082 push ebx .text:08003083 lea eax, [esp+18h+var_4] .text:08003087 mov edi, [esp+18h+arg_0] .text:0800308B mov ebp, [esp+18h+arg_4] .text:0800308F push eax .text:08003090 lea eax, [esp+1Ch+var_4+2] .text:08003094 push eax .text:08003095 xor eax, eax .text:08003097 mov ax, bp .text:0800309A push eax .text:0800309B push edi .text:0800309C xor esi, esi .text:0800309E call getUnitData .text:080030A3 mov ebx, [esp+28h+var_4] .text:080030A7 add esp, 10h .text:080030AA cmp [edi+1Ch], bx .text:080030AE jbe short loc_0_80030FC .text:080030B0 .text:080030B0 loc_0_80030B0: ; CODE XREF: lastInChain+7Ej .text:080030B0 cmp si, 13h .text:080030B4 ja short loc_0_80030FC .text:080030B6 xor edx, edx .text:080030B8 mov eax, [edi+2Ch] .text:080030BB mov dx, bx .text:080030BE mov al, [edx+eax] .text:080030C1 cmp al, 0FFh .text:080030C3 jz short loc_0_80030CB .text:080030C5 and al, 7Fh .text:080030C7 cmp al, 40h .text:080030C9 ja short loc_0_80030FC .text:080030CB .text:080030CB loc_0_80030CB: ; CODE XREF: lastInChain+47j .text:080030CB lea eax, [esp+18h+var_8] .text:080030CF push eax .text:080030D0 lea eax, [esp+1Ch+var_8+2] .text:080030D4 push eax .text:080030D5 push edx .text:080030D6 push edi .text:080030D7 call getUnitData .text:080030DC mov ax, word ptr [esp+28h+var_4+2] .text:080030E1 add esp, 10h .text:080030E4 or ah, 80h .text:080030E7 cmp word ptr [esp+18h+var_8+2], ax .text:080030EC jnz short loc_0_80030FC .text:080030EE mov ebp, ebx .text:080030F0 mov ebx, [esp+18h+var_8] .text:080030F4 inc si .text:080030F6 cmp [edi+1Ch], bx .text:080030FA ja short loc_0_80030B0 .text:080030FC .text:080030FC loc_0_80030FC: ; CODE XREF: lastInChain+32j .text:080030FC ; lastInChain+38j ... .text:080030FC pop ebx .text:080030FD xor eax, eax .text:080030FF pop esi .text:08003100 mov ax, bp .text:08003103 pop edi .text:08003104 pop ebp .text:08003105 add esp, 8 .text:08003108 retn .text:08003108 lastInChain endp .text:08003108 .text:08003108 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003109 align 4 .text:0800310C .text:0800310C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800310C .text:0800310C .text:0800310C assignUnit proc near ; CODE XREF: foldUnit+5Fp .text:0800310C ; allocateAndWriteSector+118p .text:0800310C .text:0800310C var_24 = dword ptr -24h .text:0800310C var_20 = byte ptr -20h .text:0800310C var_1C = dword ptr -1Ch .text:0800310C var_16 = word ptr -16h .text:0800310C var_14 = dword ptr -14h .text:0800310C var_E = word ptr -0Eh .text:0800310C var_C = dword ptr -0Ch .text:0800310C var_6 = word ptr -6 .text:0800310C var_4 = word ptr -4 .text:0800310C var_2 = word ptr -2 .text:0800310C arg_0 = dword ptr 4 .text:0800310C arg_4 = dword ptr 8 .text:0800310C arg_8 = dword ptr 0Ch .text:0800310C .text:0800310C sub esp, 24h .text:0800310F push ebp .text:08003110 push edi .text:08003111 push esi .text:08003112 push ebx .text:08003113 mov edi, [esp+34h+arg_0] .text:08003117 mov ecx, [esp+34h+arg_4] .text:0800311B mov edx, [esp+34h+arg_8] .text:0800311F mov [esp+34h+var_C], ecx .text:08003123 mov [esp+34h+var_E], dx .text:08003128 mov esi, [esp+34h+var_C] .text:0800312C xor ecx, ecx .text:0800312E mov cx, dx .text:08003131 mov [esp+34h+var_6], si .text:08003136 mov [esp+34h+var_14], ecx .text:0800313A mov eax, [edi+30h] .text:0800313D mov bp, [eax+ecx*2] .text:08003141 cmp bp, 0FFFFh .text:08003146 jz short loc_0_800314B .text:08003148 or dh, 80h .text:0800314B .text:0800314B loc_0_800314B: ; CODE XREF: assignUnit+3Aj .text:0800314B xor esi, esi .text:0800314D mov si, [esp+34h+var_6] .text:08003152 mov [esp+34h+var_24], esi .text:08003156 mov eax, [edi+2Ch] .text:08003159 mov byte ptr [esi+eax], 0 .text:0800315D dec word ptr [edi+8] .text:08003161 xor eax, eax .text:08003163 push 0FFFFh .text:08003168 mov ax, dx .text:0800316B push eax .text:0800316C mov ecx, [esp+3Ch+var_24] .text:08003170 push ecx .text:08003171 push edi .text:08003172 call setUnitData .text:08003177 mov ebx, eax .text:08003179 add esp, 10h .text:0800317C test ebx, ebx .text:0800317E jz short loc_0_8003194 .text:08003180 push esi .text:08003181 push edi .text:08003182 call markUnitBad .text:08003187 mov eax, ebx .text:08003189 add esp, 8 .text:0800318C jmp loc_0_80032C9 .text:0800318C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003191 align 4 .text:08003194 .text:08003194 loc_0_8003194: ; CODE XREF: assignUnit+72j .text:08003194 cmp bp, 0FFFFh .text:08003199 jz loc_0_80032B8 .text:0800319F xor edx, edx .text:080031A1 mov eax, [edi+2Ch] .text:080031A4 mov dx, bp .text:080031A7 mov al, [edx+eax] .text:080031AA cmp al, 0FFh .text:080031AC jz short loc_0_80031BC .text:080031AE and al, 7Fh .text:080031B0 cmp al, 40h .text:080031B2 jbe short loc_0_80031BC .text:080031B4 mov eax, ebx .text:080031B6 jmp loc_0_80032C9 .text:080031B6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080031BB align 4 .text:080031BC .text:080031BC loc_0_80031BC: ; CODE XREF: assignUnit+A0j .text:080031BC ; assignUnit+A6j .text:080031BC xor esi, esi .text:080031BE mov si, bp .text:080031C1 mov [esp+34h+var_1C], esi .text:080031C5 push esi .text:080031C6 push edi .text:080031C7 call lastInChain .text:080031CC mov [esp+3Ch+var_16], ax .text:080031D1 lea eax, [esp+3Ch+var_4] .text:080031D5 push eax .text:080031D6 lea eax, [esp+40h+var_2] .text:080031DA push eax .text:080031DB xor ecx, ecx .text:080031DD mov cx, [esp+44h+var_16] .text:080031E2 mov [esp+44h+var_24], ecx .text:080031E6 mov esi, ecx .text:080031E8 push esi .text:080031E9 push edi .text:080031EA call getUnitData .text:080031EF add esp, 18h .text:080031F2 cmp [esp+34h+var_4], 0FFFFh .text:080031F9 jz short loc_0_8003204 .text:080031FB mov ebx, 1Dh .text:08003200 jmp short loc_0_800323D .text:08003200 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003202 align 4 .text:08003204 .text:08003204 loc_0_8003204: ; CODE XREF: assignUnit+EDj .text:08003204 mov cx, [esp+34h+var_6] .text:08003209 mov [esp+34h+var_4], cx .text:0800320E mov esi, [esp+34h+var_24] .text:08003212 mov eax, [edi+2Ch] .text:08003215 or byte ptr [esi+eax], 80h .text:08003219 xor eax, eax .text:0800321B mov ax, [esp+34h+var_4] .text:08003220 push eax .text:08003221 xor eax, eax .text:08003223 mov ax, [esp+38h+var_2] .text:08003228 push eax .text:08003229 mov ecx, [esp+3Ch+var_24] .text:0800322D push ecx .text:0800322E push edi .text:0800322F call setUnitData .text:08003234 mov ebx, eax .text:08003236 add esp, 10h .text:08003239 test ebx, ebx .text:0800323B jz short loc_0_8003268 .text:0800323D .text:0800323D loc_0_800323D: ; CODE XREF: assignUnit+F4j .text:0800323D xor eax, eax .text:0800323F mov ax, [esp+34h+var_6] .text:08003244 push eax .text:08003245 push edi .text:08003246 call formatUnit .text:0800324B xor edx, edx .text:0800324D mov eax, [edi+2Ch] .text:08003250 mov dx, bp .text:08003253 and byte ptr [edx+eax], 80h .text:08003257 mov eax, [edi+2Ch] .text:0800325A or byte ptr [edx+eax], 6Ah .text:0800325E add esp, 8 .text:08003261 mov eax, ebx .text:08003263 jmp short loc_0_80032C9 .text:08003263 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003265 align 4 .text:08003268 .text:08003268 loc_0_8003268: ; CODE XREF: assignUnit+12Fj .text:08003268 mov si, [esp+34h+var_E] .text:0800326D cmp [edi+2Ah], si .text:08003271 jbe short loc_0_80032C7 .text:08003273 cmp [esp+34h+var_16], bp .text:08003278 jz short loc_0_80032C7 .text:0800327A mov edi, [edi+2Ch] .text:0800327D mov ecx, [esp+34h+var_1C] .text:08003281 mov cl, [ecx+edi] .text:08003284 mov esi, [esp+34h+var_24] .text:08003288 mov [esp+34h+var_20], cl .text:0800328C xor edx, edx .text:0800328E mov bl, [esi+edi] .text:08003291 mov al, cl .text:08003293 and bl, 7Fh .text:08003296 and eax, 7Fh .text:08003299 mov dl, bl .text:0800329B add eax, edx .text:0800329D cmp eax, 3Fh .text:080032A0 jg short loc_0_80032B0 .text:080032A2 add bl, cl .text:080032A4 mov ecx, [esp+34h+var_1C] .text:080032A8 mov [ecx+edi], bl .text:080032AB jmp short loc_0_80032C7 .text:080032AB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080032AD align 4 .text:080032B0 .text:080032B0 loc_0_80032B0: ; CODE XREF: assignUnit+194j .text:080032B0 mov eax, 1Fh .text:080032B5 jmp short loc_0_80032C9 .text:080032B5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080032B7 align 4 .text:080032B8 .text:080032B8 loc_0_80032B8: ; CODE XREF: assignUnit+8Dj .text:080032B8 mov eax, [edi+30h] .text:080032BB mov esi, [esp+34h+var_14] .text:080032BF mov ecx, [esp+34h+var_C] .text:080032C3 mov [eax+esi*2], cx .text:080032C7 .text:080032C7 loc_0_80032C7: ; CODE XREF: assignUnit+165j .text:080032C7 ; assignUnit+16Cj ... .text:080032C7 xor eax, eax .text:080032C9 .text:080032C9 loc_0_80032C9: ; CODE XREF: assignUnit+80j .text:080032C9 ; assignUnit+AAj ... .text:080032C9 pop ebx .text:080032CA pop esi .text:080032CB pop edi .text:080032CC pop ebp .text:080032CD add esp, 24h .text:080032D0 retn .text:080032D0 assignUnit endp .text:080032D0 .text:080032D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080032D1 align 4 .text:080032D4 .text:080032D4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080032D4 .text:080032D4 .text:080032D4 formatChain proc near ; CODE XREF: foldUnit+1FFp .text:080032D4 ; mountUnit+189p ... .text:080032D4 .text:080032D4 arg_0 = dword ptr 14h .text:080032D4 arg_4 = dword ptr 18h .text:080032D4 .text:080032D4 push ebp .text:080032D5 push edi .text:080032D6 push esi .text:080032D7 push ebx .text:080032D8 mov edi, [esp+arg_0] .text:080032DC mov esi, [esp+arg_4] .text:080032E0 xor edx, edx .text:080032E2 mov dx, si .text:080032E5 mov eax, [edi+2Ch] .text:080032E8 mov ebp, edx .text:080032EA and byte ptr [edx+eax], 80h .text:080032EE mov esi, esi .text:080032F0 .text:080032F0 loc_0_80032F0: ; CODE XREF: formatChain+3Bj .text:080032F0 push ebp .text:080032F1 push edi .text:080032F2 call lastInChain .text:080032F7 mov ebx, eax .text:080032F9 xor eax, eax .text:080032FB mov ax, bx .text:080032FE push eax .text:080032FF push edi .text:08003300 call formatUnit .text:08003305 add esp, 10h .text:08003308 test eax, eax .text:0800330A jnz short loc_0_8003311 .text:0800330C cmp bx, si .text:0800330F jnz short loc_0_80032F0 .text:08003311 .text:08003311 loc_0_8003311: ; CODE XREF: formatChain+36j .text:08003311 pop ebx .text:08003312 pop esi .text:08003313 pop edi .text:08003314 xor eax, eax .text:08003316 pop ebp .text:08003317 retn .text:08003317 formatChain endp .text:08003317 .text:08003318 .text:08003318 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003318 .text:08003318 .text:08003318 foldUnit proc near ; CODE XREF: foldBestChain+EBp .text:08003318 ; allocateAndWriteSector+57p ... .text:08003318 .text:08003318 var_14 = dword ptr -14h .text:08003318 var_10 = dword ptr -10h .text:08003318 var_C = dword ptr -0Ch .text:08003318 var_8 = dword ptr -8 .text:08003318 var_2 = word ptr -2 .text:08003318 arg_0 = dword ptr 4 .text:08003318 arg_4 = dword ptr 8 .text:08003318 .text:08003318 sub esp, 14h .text:0800331B push ebp .text:0800331C push edi .text:0800331D push esi .text:0800331E push ebx .text:0800331F mov ecx, [esp+24h+arg_4] .text:08003323 mov esi, [esp+24h+arg_0] .text:08003327 mov word ptr [esp+24h+var_10+2], cx .text:0800332C xor ebx, ebx .text:0800332E mov eax, [esi+30h] .text:08003331 mov bx, cx .text:08003334 mov ax, [eax+ebx*2] .text:08003338 mov word ptr [esp+24h+var_10], ax .text:0800333D xor edx, edx .text:0800333F inc dword ptr [esi+58h] .text:08003342 mov eax, [esi+2Ch] .text:08003345 mov dx, word ptr [esp+24h+var_10] .text:0800334A mov al, [edx+eax] .text:0800334D cmp al, 0FFh .text:0800334F jz short loc_0_8003388 .text:08003351 and al, 7Fh .text:08003353 cmp al, 40h .text:08003355 jbe short loc_0_8003388 .text:08003357 lea eax, [esp+24h+var_2] .text:0800335B push eax .text:0800335C push esi .text:0800335D call allocateUnit .text:08003362 add esp, 8 .text:08003365 test eax, eax .text:08003367 jnz loc_0_800351F .text:0800336D push ebx .text:0800336E xor eax, eax .text:08003370 mov ax, [esp+28h+var_2] .text:08003375 push eax .text:08003376 push esi .text:08003377 call assignUnit .text:0800337C add esp, 0Ch .text:0800337F test eax, eax .text:08003381 jz short loc_0_80033B4 .text:08003383 jmp loc_0_800351F .text:08003388 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003388 .text:08003388 loc_0_8003388: ; CODE XREF: foldUnit+37j .text:08003388 ; foldUnit+3Dj .text:08003388 mov ecx, [esp+24h+var_10] .text:0800338C mov [esp+24h+var_2], cx .text:08003391 lea esi, [esi+0] .text:08003394 .text:08003394 loc_0_8003394: ; CODE XREF: foldUnit+98j .text:08003394 xor eax, eax .text:08003396 mov ax, [esp+24h+var_2] .text:0800339B push eax .text:0800339C push esi .text:0800339D call getNextUnit .text:080033A2 add esp, 8 .text:080033A5 cmp ax, 0FFFFh .text:080033A9 jz short loc_0_80033B4 .text:080033AB mov [esp+24h+var_2], ax .text:080033B0 jmp short loc_0_8003394 .text:080033B0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080033B2 align 4 .text:080033B4 .text:080033B4 loc_0_80033B4: ; CODE XREF: foldUnit+69j .text:080033B4 ; foldUnit+91j .text:080033B4 mov [esp+24h+var_8], 55555555h .text:080033BC push 4 .text:080033BE push 4 .text:080033C0 lea eax, [esp+2Ch+var_8] .text:080033C4 push eax .text:080033C5 xor ebx, ebx .text:080033C7 mov bx, word ptr [esp+30h+var_10] .text:080033CC push ebx .text:080033CD push esi .text:080033CE call unitBaseAddress .text:080033D3 add esp, 8 .text:080033D6 add eax, 408h .text:080033DB push eax .text:080033DC lea eax, [esi+5Ch] .text:080033DF push eax .text:080033E0 mov eax, [esi+84h] .text:080033E6 call eax .text:080033E8 mov eax, [esi+2Ch] .text:080033EB and byte ptr [ebx+eax], 80h .text:080033EF mov eax, [esi+2Ch] .text:080033F2 xor ecx, ecx .text:080033F4 or byte ptr [ebx+eax], 6Ah .text:080033F8 mov cx, word ptr [esp+38h+var_10+2] .text:080033FD xor eax, eax .text:080033FF mov [esp+38h+var_14], ecx .text:08003403 mov ax, [esp+38h+var_2] .text:08003408 imul ecx, [esi+18h] .text:0800340C mov [esp+38h+var_14], ecx .text:08003410 push eax .text:08003411 push esi .text:08003412 call unitBaseAddress .text:08003417 mov ebx, eax .text:08003419 xor edi, edi .text:0800341B add esp, 1Ch .text:0800341E mov ebp, edi .text:08003420 cmp [esi+18h], edi .text:08003423 jbe short loc_0_8003466 .text:08003425 lea esi, [esi+0] .text:08003428 .text:08003428 loc_0_8003428: ; CODE XREF: foldUnit+14Cj .text:08003428 mov ecx, [esp+24h+var_14] .text:0800342C push ecx .text:0800342D push esi .text:0800342E call virtual2Physical .text:08003433 add esp, 8 .text:08003436 cmp eax, 0FFFFFFFFh .text:08003439 jz short loc_0_8003456 .text:0800343B inc edi .text:0800343C cmp eax, ebx .text:0800343E jz short loc_0_8003456 .text:08003440 push ebx .text:08003441 push eax .text:08003442 push esi .text:08003443 call copySector .text:08003448 add esp, 0Ch .text:0800344B test eax, eax .text:0800344D jnz loc_0_800351F .text:08003453 inc dword ptr [esi+54h] .text:08003456 .text:08003456 loc_0_8003456: ; CODE XREF: foldUnit+121j .text:08003456 ; foldUnit+126j .text:08003456 inc ebp .text:08003457 inc [esp+24h+var_14] .text:0800345B add ebx, 200h .text:08003461 cmp [esi+18h], ebp .text:08003464 ja short loc_0_8003428 .text:08003466 .text:08003466 loc_0_8003466: ; CODE XREF: foldUnit+10Bj .text:08003466 test edi, edi .text:08003468 jz short loc_0_80034BC .text:0800346A push 0FFFFh .text:0800346F xor ebx, ebx .text:08003471 mov bx, word ptr [esp+28h+var_10+2] .text:08003476 push ebx .text:08003477 xor eax, eax .text:08003479 mov ax, [esp+2Ch+var_2] .text:0800347E push eax .text:0800347F push esi .text:08003480 call setUnitData .text:08003485 add esp, 10h .text:08003488 test eax, eax .text:0800348A jnz loc_0_800351F .text:08003490 mov edx, [esi+30h] .text:08003493 mov ax, [esp+24h+var_2] .text:08003498 mov [edx+ebx*2], ax .text:0800349C xor edx, edx .text:0800349E mov eax, [esi+2Ch] .text:080034A1 mov dx, [esp+24h+var_2] .text:080034A6 and byte ptr [edx+eax], 80h .text:080034AA mov ecx, edi .text:080034AC xor edx, edx .text:080034AE mov eax, [esi+2Ch] .text:080034B1 mov dx, [esp+24h+var_2] .text:080034B6 or [edx+eax], cl .text:080034B9 jmp short loc_0_800350E .text:080034B9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080034BB align 4 .text:080034BC .text:080034BC loc_0_80034BC: ; CODE XREF: foldUnit+150j .text:080034BC mov ecx, [esp+24h+var_10] .text:080034C0 cmp [esp+24h+var_2], cx .text:080034C5 jz short loc_0_80034FE .text:080034C7 mov [esp+24h+var_C], 11111111h .text:080034CF push 4 .text:080034D1 push 4 .text:080034D3 lea eax, [esp+2Ch+var_C] .text:080034D7 push eax .text:080034D8 xor eax, eax .text:080034DA mov ax, word ptr [esp+30h+var_10] .text:080034DF push eax .text:080034E0 push esi .text:080034E1 call unitBaseAddress .text:080034E6 add esp, 8 .text:080034E9 add eax, 408h .text:080034EE push eax .text:080034EF lea eax, [esi+5Ch] .text:080034F2 push eax .text:080034F3 mov eax, [esi+84h] .text:080034F9 call eax .text:080034FB add esp, 14h .text:080034FE .text:080034FE loc_0_80034FE: ; CODE XREF: foldUnit+1ADj .text:080034FE xor edx, edx .text:08003500 mov eax, [esi+30h] .text:08003503 mov dx, word ptr [esp+24h+var_10+2] .text:08003508 mov word ptr [eax+edx*2], 0FFFFh .text:0800350E .text:0800350E loc_0_800350E: ; CODE XREF: foldUnit+1A1j .text:0800350E xor eax, eax .text:08003510 mov ax, word ptr [esp+24h+var_10] .text:08003515 push eax .text:08003516 push esi .text:08003517 call formatChain .text:0800351C add esp, 8 .text:0800351F .text:0800351F loc_0_800351F: ; CODE XREF: foldUnit+4Fj .text:0800351F ; foldUnit+6Bj ... .text:0800351F pop ebx .text:08003520 pop esi .text:08003521 pop edi .text:08003522 pop ebp .text:08003523 add esp, 14h .text:08003526 retn .text:08003526 foldUnit endp .text:08003526 .text:08003526 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003527 align 4 .text:08003528 .text:08003528 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003528 .text:08003528 .text:08003528 setUnitCount proc near ; CODE XREF: foldBestChain+3Dp .text:08003528 .text:08003528 arg_0 = dword ptr 14h .text:08003528 arg_4 = word ptr 18h .text:08003528 .text:08003528 push ebp .text:08003529 push edi .text:0800352A push esi .text:0800352B push ebx .text:0800352C mov edi, [esp+arg_0] .text:08003530 xor ecx, ecx .text:08003532 mov eax, [edi+30h] .text:08003535 mov cx, [esp+arg_4] .text:0800353A mov bp, [eax+ecx*2] .text:0800353E cmp bp, 0FFFFh .text:08003543 jz short loc_0_8003595 .text:08003545 xor eax, eax .text:08003547 mov edx, [edi+2Ch] .text:0800354A mov ax, bp .text:0800354D and byte ptr [eax+edx], 80h .text:08003551 mov esi, ecx .text:08003553 mov eax, [edi+18h] .text:08003556 xor ebx, ebx .text:08003558 imul esi, eax .text:0800355B cmp ebx, eax .text:0800355D jnb short loc_0_8003595 .text:0800355F nop .text:08003560 .text:08003560 loc_0_8003560: ; CODE XREF: setUnitCount+6Bj .text:08003560 push esi .text:08003561 push edi .text:08003562 call virtual2Physical .text:08003567 add esp, 8 .text:0800356A cmp eax, 0FFFFFFFFh .text:0800356D jz short loc_0_800358E .text:0800356F mov ecx, [edi+20h] .text:08003572 mov edx, eax .text:08003574 shr edx, cl .text:08003576 mov ecx, [edi+2Ch] .text:08003579 xor eax, eax .text:0800357B mov ax, dx .text:0800357E cmp byte ptr [eax+ecx], 0 .text:08003582 jge short loc_0_8003586 .text:08003584 mov edx, ebp .text:08003586 .text:08003586 loc_0_8003586: ; CODE XREF: setUnitCount+5Aj .text:08003586 xor eax, eax .text:08003588 mov ax, dx .text:0800358B inc byte ptr [eax+ecx] .text:0800358E .text:0800358E loc_0_800358E: ; CODE XREF: setUnitCount+45j .text:0800358E inc ebx .text:0800358F inc esi .text:08003590 cmp [edi+18h], ebx .text:08003593 ja short loc_0_8003560 .text:08003595 .text:08003595 loc_0_8003595: ; CODE XREF: setUnitCount+1Bj .text:08003595 ; setUnitCount+35j .text:08003595 pop ebx .text:08003596 pop esi .text:08003597 pop edi .text:08003598 pop ebp .text:08003599 retn .text:08003599 setUnitCount endp .text:08003599 .text:08003599 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800359A align 4 .text:0800359C .text:0800359C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800359C .text:0800359C .text:0800359C foldBestChain proc near ; CODE XREF: allocateUnit+90p .text:0800359C ; defragment+53p .text:0800359C .text:0800359C var_12 = word ptr -12h .text:0800359C var_10 = dword ptr -10h .text:0800359C var_A = word ptr -0Ah .text:0800359C var_8 = dword ptr -8 .text:0800359C var_4 = dword ptr -4 .text:0800359C arg_0 = dword ptr 4 .text:0800359C .text:0800359C sub esp, 0Ch .text:0800359F push ebp .text:080035A0 push edi .text:080035A1 push esi .text:080035A2 push ebx .text:080035A3 mov ebp, [esp+1Ch+arg_0] .text:080035A7 mov ecx, [ebp+18h] .text:080035AA inc ecx .text:080035AB mov [esp+1Ch+var_8], 0 .text:080035B3 mov [esp+1Ch+var_4], ecx .text:080035B7 mov ecx, [esp+1Ch+var_8] .text:080035BB mov [esp+1Ch+var_A], cx .text:080035C0 mov edi, ecx .text:080035C2 cmp [ebp+10h], cx .text:080035C6 jbe loc_0_8003667 .text:080035CC .text:080035CC loc_0_80035CC: ; CODE XREF: foldBestChain+C5j .text:080035CC cmp [ebp+2Ah], di .text:080035D0 ja short loc_0_80035E8 .text:080035D2 xor eax, eax .text:080035D4 mov ax, di .text:080035D7 push eax .text:080035D8 push ebp .text:080035D9 call setUnitCount .text:080035DE mov ecx, edi .text:080035E0 inc ecx .text:080035E1 add esp, 8 .text:080035E4 mov [ebp+2Ah], cx .text:080035E8 .text:080035E8 loc_0_80035E8: ; CODE XREF: foldBestChain+34j .text:080035E8 mov eax, [ebp+30h] .text:080035EB xor edx, edx .text:080035ED mov dx, di .text:080035F0 cmp word ptr [eax+edx*2], 0FFFFh .text:080035F6 jz short loc_0_800365B .text:080035F8 mov dx, [eax+edx*2] .text:080035FC and edx, 0FFFFh .text:08003602 mov eax, [ebp+2Ch] .text:08003605 mov esi, 7Fh .text:0800360A mov al, [edx+eax] .text:0800360D and esi, eax .text:0800360F cmp [esp+1Ch+var_4], esi .text:08003613 jb short loc_0_800365B .text:08003615 test al, al .text:08003617 jl short loc_0_800361D .text:08003619 test esi, esi .text:0800361B jnz short loc_0_800365B .text:0800361D .text:0800361D loc_0_800361D: ; CODE XREF: foldBestChain+7Bj .text:0800361D test esi, esi .text:0800361F jz short loc_0_800364E .text:08003621 push edx .text:08003622 push ebp .text:08003623 xor ebx, ebx .text:08003625 jmp short loc_0_8003630 .text:08003625 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003627 align 4 .text:08003628 .text:08003628 loc_0_8003628: ; CODE XREF: foldBestChain+A0j .text:08003628 and eax, 0FFFFh .text:0800362D push eax .text:0800362E push ebp .text:0800362F inc ebx .text:08003630 .text:08003630 loc_0_8003630: ; CODE XREF: foldBestChain+89j .text:08003630 call getNextUnit .text:08003635 add esp, 8 .text:08003638 cmp ax, 0FFFFh .text:0800363C jnz short loc_0_8003628 .text:0800363E cmp [esp+18h], esi .text:08003642 jnz short loc_0_800364A .text:08003644 cmp [esp+24h+var_10], ebx .text:08003648 jnb short loc_0_800365B .text:0800364A .text:0800364A loc_0_800364A: ; CODE XREF: foldBestChain+A6j .text:0800364A mov [esp+24h+var_10], ebx .text:0800364E .text:0800364E loc_0_800364E: ; CODE XREF: foldBestChain+83j .text:0800364E mov [esp+18h], esi .text:08003652 mov [esp+24h+var_12], di .text:08003657 test esi, esi .text:08003659 jz short loc_0_8003667 .text:0800365B .text:0800365B loc_0_800365B: ; CODE XREF: foldBestChain+5Aj .text:0800365B ; foldBestChain+77j ... .text:0800365B inc di .text:0800365D cmp [ebp+10h], di .text:08003661 ja loc_0_80035CC .text:08003667 .text:08003667 loc_0_8003667: ; CODE XREF: foldBestChain+2Aj .text:08003667 ; foldBestChain+BDj .text:08003667 mov ecx, [esp+18h] .text:0800366B cmp [ebp+18h], ecx .text:0800366E jb short loc_0_8003694 .text:08003670 xor ecx, ecx .text:08003672 mov eax, [ebp+30h] .text:08003675 mov cx, [esp+24h+var_12] .text:0800367A mov dx, [eax+ecx*2] .text:0800367E mov eax, [esp+24h] .text:08003682 mov [eax], dx .text:08003685 push ecx .text:08003686 push ebp .text:08003687 call foldUnit .text:0800368C add esp, 8 .text:0800368F jmp short loc_0_8003699 .text:0800368F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003691 align 4 .text:08003694 .text:08003694 loc_0_8003694: ; CODE XREF: foldBestChain+D2j .text:08003694 mov eax, 3Fh .text:08003699 .text:08003699 loc_0_8003699: ; CODE XREF: foldBestChain+F3j .text:08003699 pop ebx .text:0800369A pop esi .text:0800369B pop edi .text:0800369C pop ebp .text:0800369D add esp, 0Ch .text:080036A0 retn .text:080036A0 foldBestChain endp ; sp = -8 .text:080036A0 .text:080036A0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080036A1 align 4 .text:080036A4 .text:080036A4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080036A4 .text:080036A4 .text:080036A4 allocateUnit proc near ; CODE XREF: foldUnit+45p .text:080036A4 ; allocateAndWriteSector+F7p ... .text:080036A4 .text:080036A4 var_8 = byte ptr -8 .text:080036A4 var_2 = word ptr -2 .text:080036A4 arg_0 = dword ptr 4 .text:080036A4 arg_4 = dword ptr 8 .text:080036A4 .text:080036A4 sub esp, 8 .text:080036A7 push edi .text:080036A8 push esi .text:080036A9 push ebx .text:080036AA mov ebx, [esp+14h+arg_0] .text:080036AE mov esi, [esp+14h+arg_4] .text:080036B2 mov di, [ebx+28h] .text:080036B6 cmp word ptr [ebx+8], 0 .text:080036BB jz short loc_0_8003732 .text:080036BD lea esi, [esi+0] .text:080036C0 .text:080036C0 loc_0_80036C0: ; CODE XREF: allocateUnit+8Cj .text:080036C0 mov ax, [ebx+28h] .text:080036C4 mov ecx, eax .text:080036C6 inc ecx .text:080036C7 inc eax .text:080036C8 mov [ebx+28h], cx .text:080036CC cmp [ebx+1Ch], ax .text:080036D0 ja short loc_0_80036DA .text:080036D2 mov ax, [ebx+1Eh] .text:080036D6 mov [ebx+28h], ax .text:080036DA .text:080036DA loc_0_80036DA: ; CODE XREF: allocateUnit+2Cj .text:080036DA mov eax, [ebx+2Ch] .text:080036DD xor edx, edx .text:080036DF mov dx, [ebx+28h] .text:080036E3 cmp byte ptr [edx+eax], 0FFh .text:080036E7 jnz short loc_0_800372C .text:080036E9 lea eax, [esp+14h+var_8] .text:080036ED push eax .text:080036EE lea eax, [esp+18h+var_2] .text:080036F2 push eax .text:080036F3 xor eax, eax .text:080036F5 mov ax, [ebx+28h] .text:080036F9 push eax .text:080036FA push ebx .text:080036FB call getUnitTailer .text:08003700 add esp, 10h .text:08003703 cmp [esp+14h+var_2], 3C69h .text:0800370A jz short loc_0_8003720 .text:0800370C xor eax, eax .text:0800370E mov ax, [ebx+28h] .text:08003712 push eax .text:08003713 push ebx .text:08003714 call formatUnit .text:08003719 add esp, 8 .text:0800371C test eax, eax .text:0800371E jnz short loc_0_800372C .text:08003720 .text:08003720 loc_0_8003720: ; CODE XREF: allocateUnit+66j .text:08003720 mov ax, [ebx+28h] .text:08003724 mov [esi], ax .text:08003727 xor eax, eax .text:08003729 jmp short loc_0_800373C .text:08003729 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800372B align 4 .text:0800372C .text:0800372C loc_0_800372C: ; CODE XREF: allocateUnit+43j .text:0800372C ; allocateUnit+7Aj .text:0800372C cmp [ebx+28h], di .text:08003730 jnz short loc_0_80036C0 .text:08003732 .text:08003732 loc_0_8003732: ; CODE XREF: allocateUnit+17j .text:08003732 push esi .text:08003733 push ebx .text:08003734 call foldBestChain .text:08003739 add esp, 8 .text:0800373C .text:0800373C loc_0_800373C: ; CODE XREF: allocateUnit+85j .text:0800373C pop ebx .text:0800373D pop esi .text:0800373E pop edi .text:0800373F add esp, 8 .text:08003742 retn .text:08003742 allocateUnit endp .text:08003742 .text:08003742 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003743 align 4 .text:08003744 .text:08003744 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003744 .text:08003744 .text:08003744 mapSector proc near ; DATA XREF: mountNFTL+3A4o .text:08003744 .text:08003744 arg_0 = dword ptr 10h .text:08003744 arg_4 = dword ptr 14h .text:08003744 arg_8 = dword ptr 18h .text:08003744 .text:08003744 push edi .text:08003745 push esi .text:08003746 push ebx .text:08003747 mov ebx, [esp+arg_0] .text:0800374B mov esi, [esp+arg_4] .text:0800374F mov edi, [esp+arg_8] .text:08003753 cmp [ebx+3Ch], esi .text:08003756 jnz short loc_0_8003761 .text:08003758 mov eax, [ebx+78h] .text:0800375B cmp dword ptr [eax+1Ch], 0 .text:0800375F jz short loc_0_80037BC .text:08003761 .text:08003761 loc_0_8003761: ; CODE XREF: mapSector+12j .text:08003761 cmp [ebx+24h], esi .text:08003764 jbe short loc_0_80037A8 .text:08003766 push esi .text:08003767 push ebx .text:08003768 call virtual2Physical .text:0800376D mov edx, eax .text:0800376F add esp, 8 .text:08003772 mov [ebx+44h], edx .text:08003775 cmp edx, 0FFFFFFFFh .text:08003778 jz short loc_0_80037A8 .text:0800377A mov eax, [ebx+90h] .text:08003780 mov [ebx+40h], eax .text:08003783 push 2 .text:08003785 push 200h .text:0800378A push eax .text:0800378B push edx .text:0800378C lea eax, [ebx+5Ch] .text:0800378F push eax .text:08003790 mov eax, [ebx+80h] .text:08003796 call eax .text:08003798 add esp, 14h .text:0800379B test eax, eax .text:0800379D jz short loc_0_80037AF .text:0800379F mov eax, offset dataErrorObject .text:080037A4 jmp short loc_0_80037C8 .text:080037A4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080037A6 align 4 .text:080037A8 .text:080037A8 loc_0_80037A8: ; CODE XREF: mapSector+20j .text:080037A8 ; mapSector+34j .text:080037A8 mov dword ptr [ebx+40h], 0 .text:080037AF .text:080037AF loc_0_80037AF: ; CODE XREF: mapSector+59j .text:080037AF mov eax, [ebx+78h] .text:080037B2 mov [ebx+3Ch], esi .text:080037B5 mov dword ptr [eax+1Ch], 0 .text:080037BC .text:080037BC loc_0_80037BC: ; CODE XREF: mapSector+1Bj .text:080037BC test edi, edi .text:080037BE jz short loc_0_80037C5 .text:080037C0 mov eax, [ebx+44h] .text:080037C3 mov [edi], eax .text:080037C5 .text:080037C5 loc_0_80037C5: ; CODE XREF: mapSector+7Aj .text:080037C5 mov eax, [ebx+40h] .text:080037C8 .text:080037C8 loc_0_80037C8: ; CODE XREF: mapSector+60j .text:080037C8 pop ebx .text:080037C9 pop esi .text:080037CA pop edi .text:080037CB retn .text:080037CB mapSector endp .text:080037CB .text:080037CC .text:080037CC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080037CC .text:080037CC .text:080037CC mountUnit proc near ; CODE XREF: mountNFTL+2DFp .text:080037CC .text:080037CC var_24 = dword ptr -24h .text:080037CC var_20 = dword ptr -20h .text:080037CC var_1A = word ptr -1Ah .text:080037CC var_18 = dword ptr -18h .text:080037CC var_14 = dword ptr -14h .text:080037CC var_E = word ptr -0Eh .text:080037CC var_C = byte ptr -0Ch .text:080037CC var_6 = word ptr -6 .text:080037CC var_4 = word ptr -4 .text:080037CC var_2 = word ptr -2 .text:080037CC arg_0 = dword ptr 4 .text:080037CC arg_4 = dword ptr 8 .text:080037CC .text:080037CC sub esp, 24h .text:080037CF push ebp .text:080037D0 push edi .text:080037D1 push esi .text:080037D2 push ebx .text:080037D3 xor ebx, ebx .text:080037D5 mov ecx, [esp+34h+arg_4] .text:080037D9 mov ebp, [esp+34h+arg_0] .text:080037DD mov [esp+34h+var_E], cx .text:080037E2 mov bx, cx .text:080037E5 mov esi, [ebp+2Ch] .text:080037E8 add esi, ebx .text:080037EA lea eax, [esp+34h+var_4] .text:080037EE mov [esp+34h+var_24], esi .text:080037F2 push eax .text:080037F3 lea eax, [esp+38h+var_2] .text:080037F7 push eax .text:080037F8 push ebx .text:080037F9 push ebp .text:080037FA call getUnitData .text:080037FF lea eax, [esp+44h+var_C] .text:08003803 push eax .text:08003804 lea eax, [esp+48h+var_6] .text:08003808 push eax .text:08003809 push ebx .text:0800380A push ebp .text:0800380B call getUnitTailer .text:08003810 add esp, 20h .text:08003813 cmp [esp+34h+var_2], 0FFFFh .text:0800381A jz short loc_0_8003825 .text:0800381C cmp [esp+34h+var_6], 3C69h .text:08003823 jz short loc_0_8003834 .text:08003825 .text:08003825 loc_0_8003825: ; CODE XREF: mountUnit+4Ej .text:08003825 mov edi, [esp+34h+var_24] .text:08003829 mov byte ptr [edi], 0FFh .text:0800382C jmp loc_0_800395D .text:0800382C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003831 align 4 .text:08003834 .text:08003834 loc_0_8003834: ; CODE XREF: mountUnit+57j .text:08003834 mov ecx, [esp+34h+var_24] .text:08003838 mov dl, [ecx] .text:0800383A and dl, 10h .text:0800383D mov [ecx], dl .text:0800383F mov ax, [ebp+1Ch] .text:08003843 cmp [esp+34h+var_4], ax .text:08003848 jnb short loc_0_800387B .text:0800384A or dl, 80h .text:0800384D mov [ecx], dl .text:0800384F xor edx, edx .text:08003851 mov eax, [ebp+2Ch] .text:08003854 mov dx, [esp+34h+var_4] .text:08003859 mov dl, [edx+eax] .text:0800385C cmp dl, 0FFh .text:0800385F jz short loc_0_800386D .text:08003861 mov al, dl .text:08003863 and al, 7Fh .text:08003865 cmp al, 40h .text:08003867 jbe short loc_0_800386D .text:08003869 test dl, dl .text:0800386B jge short loc_0_800387B .text:0800386D .text:0800386D loc_0_800386D: ; CODE XREF: mountUnit+93j .text:0800386D ; mountUnit+9Bj .text:0800386D xor edx, edx .text:0800386F mov eax, [ebp+2Ch] .text:08003872 mov dx, [esp+34h+var_4] .text:08003877 and byte ptr [edx+eax], 0EFh .text:0800387B .text:0800387B loc_0_800387B: ; CODE XREF: mountUnit+7Cj .text:0800387B ; mountUnit+9Fj .text:0800387B mov ax, [esp+34h+var_2] .text:08003880 test ax, ax .text:08003883 jl loc_0_800395D .text:08003889 cmp [ebp+10h], ax .text:0800388D jbe loc_0_8003943 .text:08003893 xor esi, esi .text:08003895 mov si, [esp+34h+var_E] .text:0800389A mov [esp+34h+var_20], esi .text:0800389E push esi .text:0800389F push ebp .text:080038A0 call getFoldMark .text:080038A5 xor edi, edi .text:080038A7 mov di, [esp+3Ch+var_2] .text:080038AC mov [esp+3Ch+var_14], edi .text:080038B0 mov ecx, [ebp+30h] .text:080038B3 mov esi, edi .text:080038B5 mov edi, ecx .text:080038B7 mov [esp+3Ch+var_18], ecx .text:080038BB mov si, [edi+esi*2] .text:080038BF mov ebx, eax .text:080038C1 mov [esp+3Ch+var_1A], si .text:080038C6 add esp, 8 .text:080038C9 cmp bx, 1111h .text:080038CE jnz short loc_0_80038D8 .text:080038D0 mov edi, [esp+34h+var_20] .text:080038D4 push edi .text:080038D5 jmp short loc_0_8003954 .text:080038D5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080038D7 align 4 .text:080038D8 .text:080038D8 loc_0_80038D8: ; CODE XREF: mountUnit+102j .text:080038D8 cmp [esp+34h+var_1A], 0FFFFh .text:080038DF jz short loc_0_80038F8 .text:080038E1 xor edx, edx .text:080038E3 mov eax, [ebp+2Ch] .text:080038E6 mov dx, [esp+34h+var_1A] .text:080038EB mov al, [edx+eax] .text:080038EE cmp al, 0FFh .text:080038F0 jz short loc_0_800393C .text:080038F2 and al, 7Fh .text:080038F4 cmp al, 40h .text:080038F6 jbe short loc_0_800393C .text:080038F8 .text:080038F8 loc_0_80038F8: ; CODE XREF: mountUnit+113j .text:080038F8 mov ecx, [esp+34h+var_14] .text:080038FC mov esi, [esp+34h+var_18] .text:08003900 mov di, [esp+34h+var_E] .text:08003905 mov [esi+ecx*2], di .text:08003909 mov ecx, [esp+34h+var_24] .text:0800390D mov al, [ecx] .text:0800390F mov cl, al .text:08003911 mov esi, [esp+34h+var_24] .text:08003915 and cl, 0EFh .text:08003918 mov [esi], cl .text:0800391A cmp bx, 5555h .text:0800391F jnz short loc_0_8003927 .text:08003921 and al, 80h .text:08003923 or al, 6Ah .text:08003925 mov [esi], al .text:08003927 .text:08003927 loc_0_8003927: ; CODE XREF: mountUnit+153j .text:08003927 cmp [esp+34h+var_1A], 0FFFFh .text:0800392E jz short loc_0_800395D .text:08003930 xor eax, eax .text:08003932 mov ax, [esp+34h+var_1A] .text:08003937 jmp short loc_0_8003953 .text:08003937 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003939 align 4 .text:0800393C .text:0800393C loc_0_800393C: ; CODE XREF: mountUnit+124j .text:0800393C ; mountUnit+12Aj .text:0800393C cmp bx, 5555h .text:08003941 jz short loc_0_800394C .text:08003943 .text:08003943 loc_0_8003943: ; CODE XREF: mountUnit+C1j .text:08003943 mov eax, 17h .text:08003948 jmp short loc_0_800395F .text:08003948 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800394A align 4 .text:0800394C .text:0800394C loc_0_800394C: ; CODE XREF: mountUnit+175j .text:0800394C xor eax, eax .text:0800394E mov ax, [esp+34h+var_E] .text:08003953 .text:08003953 loc_0_8003953: ; CODE XREF: mountUnit+16Bj .text:08003953 push eax .text:08003954 .text:08003954 loc_0_8003954: ; CODE XREF: mountUnit+109j .text:08003954 push ebp .text:08003955 call formatChain .text:0800395A add esp, 8 .text:0800395D .text:0800395D loc_0_800395D: ; CODE XREF: mountUnit+60j .text:0800395D ; mountUnit+B7j ... .text:0800395D xor eax, eax .text:0800395F .text:0800395F loc_0_800395F: ; CODE XREF: mountUnit+17Cj .text:0800395F pop ebx .text:08003960 pop esi .text:08003961 pop edi .text:08003962 pop ebp .text:08003963 add esp, 24h .text:08003966 retn .text:08003966 mountUnit endp .text:08003966 .text:08003966 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003967 align 4 .text:08003968 .text:08003968 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003968 .text:08003968 .text:08003968 allocateAndWriteSector proc near ; CODE XREF: writeSector+4Cp .text:08003968 .text:08003968 var_C = dword ptr -0Ch .text:08003968 var_8 = dword ptr -8 .text:08003968 var_4 = dword ptr -4 .text:08003968 arg_0 = dword ptr 4 .text:08003968 arg_4 = dword ptr 8 .text:08003968 arg_8 = dword ptr 0Ch .text:08003968 .text:08003968 sub esp, 0Ch .text:0800396B push ebp .text:0800396C push edi .text:0800396D push esi .text:0800396E push ebx .text:0800396F mov ebx, [esp+1Ch+arg_0] .text:08003973 mov eax, [esp+1Ch+arg_4] .text:08003977 xor esi, esi .text:08003979 xor edx, edx .text:0800397B div dword ptr [ebx+18h] .text:0800397E mov word ptr [esp+1Ch+var_4], ax .text:08003983 mov si, ax .text:08003986 mov eax, [ebx+30h] .text:08003989 mov ebp, 1 .text:0800398E shl edx, 9 .text:08003991 mov di, [eax+esi*2] .text:08003995 mov [esp+1Ch+var_8], edx .text:08003999 mov [esp+1Ch+var_C], 0 .text:080039A1 cmp di, 0FFFFh .text:080039A6 jz short loc_0_80039D6 .text:080039A8 xor edx, edx .text:080039AA mov eax, [ebx+2Ch] .text:080039AD mov dx, di .text:080039B0 mov al, [edx+eax] .text:080039B3 cmp al, 0FFh .text:080039B5 jz short loc_0_80039D6 .text:080039B7 and al, 7Fh .text:080039B9 cmp al, 40h .text:080039BB jbe short loc_0_80039D6 .text:080039BD push esi .text:080039BE push ebx .text:080039BF call foldUnit .text:080039C4 add esp, 8 .text:080039C7 test eax, eax .text:080039C9 jnz loc_0_8003B55 .text:080039CF mov eax, [ebx+30h] .text:080039D2 mov di, [eax+esi*2] .text:080039D6 .text:080039D6 loc_0_80039D6: ; CODE XREF: allocateAndWriteSector+3Ej .text:080039D6 ; allocateAndWriteSector+4Dj ... .text:080039D6 mov word ptr [esp+1Ch+var_4+2], di .text:080039DB cmp di, 0FFFFh .text:080039E0 jz short loc_0_8003A3B .text:080039E2 mov esi, esi .text:080039E4 .text:080039E4 loc_0_80039E4: ; CODE XREF: allocateAndWriteSector+C8j .text:080039E4 xor eax, eax .text:080039E6 mov ax, word ptr [esp+1Ch+var_4+2] .text:080039EB push eax .text:080039EC push ebx .text:080039ED call unitBaseAddress .text:080039F2 add eax, [esp+24h+var_8] .text:080039F6 push eax .text:080039F7 push ebx .text:080039F8 call getSectorFlags .text:080039FD add esp, 10h .text:08003A00 cmp al, 0FFh .text:08003A02 jz short loc_0_8003A32 .text:08003A04 cmp al, 11h .text:08003A06 jz short loc_0_8003A15 .text:08003A08 cmp al, 55h .text:08003A0A setz al .text:08003A0D xor ecx, ecx .text:08003A0F mov cl, al .text:08003A11 mov [esp+1Ch+var_C], ecx .text:08003A15 .text:08003A15 loc_0_8003A15: ; CODE XREF: allocateAndWriteSector+9Ej .text:08003A15 xor eax, eax .text:08003A17 mov ax, word ptr [esp+1Ch+var_4+2] .text:08003A1C push eax .text:08003A1D push ebx .text:08003A1E call getNextUnit .text:08003A23 mov word ptr [esp+24h+var_4+2], ax .text:08003A28 inc ebp .text:08003A29 add esp, 8 .text:08003A2C cmp ax, 0FFFFh .text:08003A30 jnz short loc_0_80039E4 .text:08003A32 .text:08003A32 loc_0_8003A32: ; CODE XREF: allocateAndWriteSector+9Aj .text:08003A32 cmp word ptr [esp+1Ch+var_4+2], 0FFFFh .text:08003A39 jnz short loc_0_8003A97 .text:08003A3B .text:08003A3B loc_0_8003A3B: ; CODE XREF: allocateAndWriteSector+78j .text:08003A3B cmp ebp, 13h .text:08003A3E jbe short loc_0_8003A59 .text:08003A40 xor eax, eax .text:08003A42 mov ax, word ptr [esp+1Ch+var_4] .text:08003A47 push eax .text:08003A48 push ebx .text:08003A49 call foldUnit .text:08003A4E add esp, 8 .text:08003A51 test eax, eax .text:08003A53 jnz loc_0_8003B55 .text:08003A59 .text:08003A59 loc_0_8003A59: ; CODE XREF: allocateAndWriteSector+D6j .text:08003A59 lea eax, [esp+1Ch+var_4+2] .text:08003A5D push eax .text:08003A5E push ebx .text:08003A5F call allocateUnit .text:08003A64 add esp, 8 .text:08003A67 test eax, eax .text:08003A69 jnz loc_0_8003B55 .text:08003A6F xor esi, esi .text:08003A71 mov si, word ptr [esp+1Ch+var_4] .text:08003A76 push esi .text:08003A77 xor eax, eax .text:08003A79 mov ax, word ptr [esp+20h+var_4+2] .text:08003A7E push eax .text:08003A7F push ebx .text:08003A80 call assignUnit .text:08003A85 add esp, 0Ch .text:08003A88 test eax, eax .text:08003A8A jnz loc_0_8003B55 .text:08003A90 mov eax, [ebx+30h] .text:08003A93 mov di, [eax+esi*2] .text:08003A97 .text:08003A97 loc_0_8003A97: ; CODE XREF: allocateAndWriteSector+D1j .text:08003A97 xor edx, edx .text:08003A99 mov eax, [ebx+2Ch] .text:08003A9C mov dx, word ptr [esp+1Ch+var_4+2] .text:08003AA1 mov al, [edx+eax] .text:08003AA4 cmp al, 0FFh .text:08003AA6 jz short loc_0_8003AB2 .text:08003AA8 and al, 7Fh .text:08003AAA cmp al, 40h .text:08003AAC ja loc_0_8003B44 .text:08003AB2 .text:08003AB2 loc_0_8003AB2: ; CODE XREF: allocateAndWriteSector+13Ej .text:08003AB2 push 2 .text:08003AB4 mov eax, [esp+20h+arg_8] .text:08003AB8 push eax .text:08003AB9 xor eax, eax .text:08003ABB mov ax, word ptr [esp+24h+var_4+2] .text:08003AC0 push eax .text:08003AC1 push ebx .text:08003AC2 call unitBaseAddress .text:08003AC7 add esp, 8 .text:08003ACA add eax, [esp+24h+var_8] .text:08003ACE push eax .text:08003ACF push ebx .text:08003AD0 call writeAndCheck .text:08003AD5 add esp, 10h .text:08003AD8 test eax, eax .text:08003ADA jnz short loc_0_8003B55 .text:08003ADC mov ecx, [esp+1Ch+var_4] .text:08003AE0 cmp [ebx+2Ah], cx .text:08003AE4 jbe short loc_0_8003B53 .text:08003AE6 cmp word ptr [esp+1Ch+var_4+2], di .text:08003AEB jz short loc_0_8003B28 .text:08003AED xor esi, esi .text:08003AEF mov ebp, [ebx+2Ch] .text:08003AF2 mov si, word ptr [esp+1Ch+var_4+2] .text:08003AF7 mov dl, [esi+ebp] .text:08003AFA test dl, dl .text:08003AFC jl short loc_0_8003B28 .text:08003AFE mov al, dl .text:08003B00 and al, 7Fh .text:08003B02 cmp al, 3Fh .text:08003B04 ja short loc_0_8003B44 .text:08003B06 inc dl .text:08003B08 mov [esi+ebp], dl .text:08003B0B cmp [esp+1Ch+var_C], 0 .text:08003B10 jz short loc_0_8003B53 .text:08003B12 xor edx, edx .text:08003B14 mov ebx, [ebx+2Ch] .text:08003B17 mov dx, di .text:08003B1A mov al, [edx+ebx] .text:08003B1D test al, 7Fh .text:08003B1F jz short loc_0_8003B44 .text:08003B21 dec al .text:08003B23 mov [edx+ebx], al .text:08003B26 jmp short loc_0_8003B53 .text:08003B28 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003B28 .text:08003B28 loc_0_8003B28: ; CODE XREF: allocateAndWriteSector+183j .text:08003B28 ; allocateAndWriteSector+194j .text:08003B28 cmp [esp+1Ch+var_C], 0 .text:08003B2D jnz short loc_0_8003B53 .text:08003B2F xor edx, edx .text:08003B31 mov ebx, [ebx+2Ch] .text:08003B34 mov dx, di .text:08003B37 mov cl, [edx+ebx] .text:08003B3A mov esi, ecx .text:08003B3C mov eax, esi .text:08003B3E and al, 7Fh .text:08003B40 cmp al, 3Fh .text:08003B42 jbe short loc_0_8003B4C .text:08003B44 .text:08003B44 loc_0_8003B44: ; CODE XREF: allocateAndWriteSector+144j .text:08003B44 ; allocateAndWriteSector+19Cj ... .text:08003B44 mov eax, 1Fh .text:08003B49 jmp short loc_0_8003B55 .text:08003B49 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003B4B align 4 .text:08003B4C .text:08003B4C loc_0_8003B4C: ; CODE XREF: allocateAndWriteSector+1DAj .text:08003B4C mov ecx, esi .text:08003B4E inc cl .text:08003B50 mov [edx+ebx], cl .text:08003B53 .text:08003B53 loc_0_8003B53: ; CODE XREF: allocateAndWriteSector+17Cj .text:08003B53 ; allocateAndWriteSector+1A8j ... .text:08003B53 xor eax, eax .text:08003B55 .text:08003B55 loc_0_8003B55: ; CODE XREF: allocateAndWriteSector+61j .text:08003B55 ; allocateAndWriteSector+EBj ... .text:08003B55 pop ebx .text:08003B56 pop esi .text:08003B57 pop edi .text:08003B58 pop ebp .text:08003B59 add esp, 0Ch .text:08003B5C retn .text:08003B5C allocateAndWriteSector endp .text:08003B5C .text:08003B5C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003B5D align 4 .text:08003B60 .text:08003B60 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003B60 .text:08003B60 .text:08003B60 writeSector proc near ; DATA XREF: mountNFTL+3ABo .text:08003B60 .text:08003B60 arg_0 = dword ptr 14h .text:08003B60 arg_4 = dword ptr 18h .text:08003B60 arg_8 = dword ptr 1Ch .text:08003B60 .text:08003B60 push ebp .text:08003B61 push edi .text:08003B62 push esi .text:08003B63 push ebx .text:08003B64 mov eax, 1Dh .text:08003B69 mov esi, [esp+arg_0] .text:08003B6D mov edi, [esp+arg_4] .text:08003B71 mov ebp, [esp+arg_8] .text:08003B75 mov edx, [esi] .text:08003B77 test edx, edx .text:08003B79 jz short loc_0_8003B84 .text:08003B7B mov eax, 17h .text:08003B80 jmp short loc_0_8003BBA .text:08003B80 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003B82 align 4 .text:08003B84 .text:08003B84 loc_0_8003B84: ; CODE XREF: writeSector+19j .text:08003B84 cmp [esi+24h], edi .text:08003B87 jnb short loc_0_8003B90 .text:08003B89 mov eax, 1Bh .text:08003B8E jmp short loc_0_8003BBA .text:08003B90 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003B90 .text:08003B90 loc_0_8003B90: ; CODE XREF: writeSector+27j .text:08003B90 inc dword ptr [esi+4Ch] .text:08003B93 mov ebx, edx .text:08003B95 lea esi, [esi+0] .text:08003B98 .text:08003B98 loc_0_8003B98: ; CODE XREF: writeSector+58j .text:08003B98 cmp eax, 1Dh .text:08003B9B jnz short loc_0_8003BBA .text:08003B9D cmp [esi+3Ch], edi .text:08003BA0 jnz short loc_0_8003BA9 .text:08003BA2 mov dword ptr [esi+3Ch], 0FFFFFFFFh .text:08003BA9 .text:08003BA9 loc_0_8003BA9: ; CODE XREF: writeSector+40j .text:08003BA9 push ebp .text:08003BAA push edi .text:08003BAB push esi .text:08003BAC call allocateAndWriteSector .text:08003BB1 add esp, 0Ch .text:08003BB4 inc ebx .text:08003BB5 cmp ebx, 3 .text:08003BB8 jle short loc_0_8003B98 .text:08003BBA .text:08003BBA loc_0_8003BBA: ; CODE XREF: writeSector+20j .text:08003BBA ; writeSector+2Ej ... .text:08003BBA pop ebx .text:08003BBB pop esi .text:08003BBC pop edi .text:08003BBD pop ebp .text:08003BBE retn .text:08003BBE writeSector endp .text:08003BBE .text:08003BBE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003BBF align 4 .text:08003BC0 .text:08003BC0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003BC0 .text:08003BC0 .text:08003BC0 deleteSector proc near ; DATA XREF: mountNFTL+3B2o .text:08003BC0 .text:08003BC0 var_C = dword ptr -0Ch .text:08003BC0 var_8 = dword ptr -8 .text:08003BC0 var_2 = word ptr -2 .text:08003BC0 arg_0 = dword ptr 4 .text:08003BC0 arg_4 = dword ptr 8 .text:08003BC0 arg_8 = dword ptr 0Ch .text:08003BC0 .text:08003BC0 sub esp, 0Ch .text:08003BC3 push ebp .text:08003BC4 push edi .text:08003BC5 push esi .text:08003BC6 push ebx .text:08003BC7 mov esi, [esp+1Ch+arg_0] .text:08003BCB mov edi, [esp+1Ch+arg_4] .text:08003BCF mov edx, [esi] .text:08003BD1 test edx, edx .text:08003BD3 jz short loc_0_8003BE0 .text:08003BD5 mov eax, 17h .text:08003BDA jmp loc_0_8003D08 .text:08003BDA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003BDF align 4 .text:08003BE0 .text:08003BE0 loc_0_8003BE0: ; CODE XREF: deleteSector+13j .text:08003BE0 mov ebx, [esp+1Ch+arg_8] .text:08003BE4 lea eax, [ebx+edi] .text:08003BE7 cmp [esi+24h], eax .text:08003BEA jnb short loc_0_8003C04 .text:08003BEC mov eax, 1Bh .text:08003BF1 jmp loc_0_8003D08 .text:08003BF1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003BF6 align 4 .text:08003BF8 .text:08003BF8 loc_0_8003BF8: ; CODE XREF: deleteSector+125j .text:08003BF8 mov eax, 1Fh .text:08003BFD jmp loc_0_8003D08 .text:08003BFD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003C02 align 4 .text:08003C04 .text:08003C04 loc_0_8003C04: ; CODE XREF: deleteSector+2Aj .text:08003C04 mov [esp+1Ch+var_8], edx .text:08003C08 mov ebx, [esp+1Ch+arg_8] .text:08003C0C cmp edx, ebx .text:08003C0E jnb loc_0_8003D06 .text:08003C14 .text:08003C14 loc_0_8003C14: ; CODE XREF: deleteSector+140j .text:08003C14 push edi .text:08003C15 push esi .text:08003C16 call virtual2Physical .text:08003C1B mov [esp+24h+var_C], eax .text:08003C1F add esp, 8 .text:08003C22 cmp [esp+1Ch+var_C], 0FFFFFFFFh .text:08003C27 jz loc_0_8003CF0 .text:08003C2D mov eax, edi .text:08003C2F xor ecx, ecx .text:08003C31 xor edx, edx .text:08003C33 div dword ptr [esi+18h] .text:08003C36 mov ebp, eax .text:08003C38 mov eax, [esi+30h] .text:08003C3B mov cx, bp .text:08003C3E xor edx, edx .text:08003C40 mov dx, [eax+ecx*2] .text:08003C44 mov eax, [esi+2Ch] .text:08003C47 mov al, [edx+eax] .text:08003C4A cmp al, 0FFh .text:08003C4C jz short loc_0_8003C74 .text:08003C4E and al, 7Fh .text:08003C50 cmp al, 40h .text:08003C52 jbe short loc_0_8003C74 .text:08003C54 push ecx .text:08003C55 push esi .text:08003C56 call foldUnit .text:08003C5B add esp, 8 .text:08003C5E test eax, eax .text:08003C60 jnz loc_0_8003D08 .text:08003C66 push edi .text:08003C67 push esi .text:08003C68 call virtual2Physical .text:08003C6D mov [esp+24h+var_C], eax .text:08003C71 add esp, 8 .text:08003C74 .text:08003C74 loc_0_8003C74: ; CODE XREF: deleteSector+8Cj .text:08003C74 ; deleteSector+92j .text:08003C74 xor eax, eax .text:08003C76 mov al, byte ptr [esp+1Ch+var_2] .text:08003C7A mov [esp+1Ch+var_2], ax .text:08003C7F mov byte ptr [esp+1Ch+var_2], 0 .text:08003C84 push 0 .text:08003C86 mov ebx, [esp+20h+var_C] .text:08003C8A push ebx .text:08003C8B push esi .text:08003C8C call setSectorFlagsCache .text:08003C91 push 4 .text:08003C93 push 2 .text:08003C95 lea eax, [esp+30h+var_2] .text:08003C99 push eax .text:08003C9A mov eax, [esp+34h+var_C] .text:08003C9E add eax, 6 .text:08003CA1 push eax .text:08003CA2 lea eax, [esi+5Ch] .text:08003CA5 push eax .text:08003CA6 mov eax, [esi+84h] .text:08003CAC call eax .text:08003CAE mov ecx, [esi+20h] .text:08003CB1 mov edx, [esp+3Ch+var_C] .text:08003CB5 xor eax, eax .text:08003CB7 shr edx, cl .text:08003CB9 mov ecx, [esi+2Ch] .text:08003CBC add esp, 20h .text:08003CBF mov ax, dx .text:08003CC2 cmp byte ptr [eax+ecx], 0 .text:08003CC6 jge short loc_0_8003CD4 .text:08003CC8 xor edx, edx .text:08003CCA mov eax, [esi+30h] .text:08003CCD mov dx, bp .text:08003CD0 mov dx, [eax+edx*2] .text:08003CD4 .text:08003CD4 loc_0_8003CD4: ; CODE XREF: deleteSector+106j .text:08003CD4 cmp [esi+2Ah], bp .text:08003CD8 jbe short loc_0_8003CF0 .text:08003CDA xor eax, eax .text:08003CDC mov ax, dx .text:08003CDF mov dl, [eax+ecx] .text:08003CE2 test dl, 7Fh .text:08003CE5 jz loc_0_8003BF8 .text:08003CEB dec dl .text:08003CED mov [eax+ecx], dl .text:08003CF0 .text:08003CF0 loc_0_8003CF0: ; CODE XREF: deleteSector+67j .text:08003CF0 ; deleteSector+118j .text:08003CF0 inc [esp+1Ch+var_8] .text:08003CF4 inc dword ptr [esi+50h] .text:08003CF7 inc edi .text:08003CF8 mov ebx, [esp+1Ch+arg_8] .text:08003CFC cmp [esp+1Ch+var_8], ebx .text:08003D00 jb loc_0_8003C14 .text:08003D06 .text:08003D06 loc_0_8003D06: ; CODE XREF: deleteSector+4Ej .text:08003D06 xor eax, eax .text:08003D08 .text:08003D08 loc_0_8003D08: ; CODE XREF: deleteSector+1Aj .text:08003D08 ; deleteSector+31j ... .text:08003D08 pop ebx .text:08003D09 pop esi .text:08003D0A pop edi .text:08003D0B pop ebp .text:08003D0C add esp, 0Ch .text:08003D0F retn .text:08003D0F deleteSector endp .text:08003D0F .text:08003D10 .text:08003D10 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003D10 .text:08003D10 .text:08003D10 tlSetBusy proc near ; DATA XREF: mountNFTL+3C7o .text:08003D10 xor eax, eax .text:08003D12 retn .text:08003D12 tlSetBusy endp .text:08003D12 .text:08003D12 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003D13 align 4 .text:08003D14 .text:08003D14 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003D14 .text:08003D14 .text:08003D14 defragment proc near ; DATA XREF: mountNFTL+3B9o .text:08003D14 .text:08003D14 var_2 = word ptr -2 .text:08003D14 arg_0 = dword ptr 4 .text:08003D14 arg_4 = dword ptr 8 .text:08003D14 .text:08003D14 sub esp, 4 .text:08003D17 push ebp .text:08003D18 push edi .text:08003D19 push esi .text:08003D1A push ebx .text:08003D1B xor eax, eax .text:08003D1D mov ebx, [esp+14h+arg_0] .text:08003D21 mov ebp, 0FFFFFFFFh .text:08003D26 mov edx, [esp+14h+arg_4] .text:08003D2A mov ax, [ebx+8] .text:08003D2E mov edi, 1 .text:08003D33 imul eax, [ebx+18h] .text:08003D37 cmp [edx], eax .text:08003D39 jbe short loc_0_8003D91 .text:08003D3B lea esi, [esp+14h+var_2] .text:08003D3F nop .text:08003D40 .text:08003D40 loc_0_8003D40: ; CODE XREF: defragment+7Bj .text:08003D40 cmp dword ptr [ebx], 0 .text:08003D43 jz short loc_0_8003D4C .text:08003D45 mov eax, 17h .text:08003D4A jmp short loc_0_8003DA3 .text:08003D4C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003D4C .text:08003D4C loc_0_8003D4C: ; CODE XREF: defragment+2Fj .text:08003D4C push esi .text:08003D4D push ebx .text:08003D4E call allocateUnit .text:08003D53 add esp, 8 .text:08003D56 test eax, eax .text:08003D58 jnz short loc_0_8003DA3 .text:08003D5A test edi, edi .text:08003D5C jnz short loc_0_8003D78 .text:08003D5E cmp [esp+14h+var_2], bp .text:08003D63 jnz short loc_0_8003D7F .text:08003D65 push esi .text:08003D66 push ebx .text:08003D67 call foldBestChain .text:08003D6C add esp, 8 .text:08003D6F test eax, eax .text:08003D71 jz short loc_0_8003D7F .text:08003D73 jmp short loc_0_8003DA3 .text:08003D73 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003D75 align 4 .text:08003D78 .text:08003D78 loc_0_8003D78: ; CODE XREF: defragment+48j .text:08003D78 mov bp, [esp+14h+var_2] .text:08003D7D mov edi, eax .text:08003D7F .text:08003D7F loc_0_8003D7F: ; CODE XREF: defragment+4Fj .text:08003D7F ; defragment+5Dj .text:08003D7F xor eax, eax .text:08003D81 mov ax, [ebx+8] .text:08003D85 mov edx, [esp+14h+arg_4] .text:08003D89 imul eax, [ebx+18h] .text:08003D8D cmp [edx], eax .text:08003D8F ja short loc_0_8003D40 .text:08003D91 .text:08003D91 loc_0_8003D91: ; CODE XREF: defragment+25j .text:08003D91 xor eax, eax .text:08003D93 mov ax, [ebx+8] .text:08003D97 mov edx, [esp+14h+arg_4] .text:08003D9B imul eax, [ebx+18h] .text:08003D9F mov [edx], eax .text:08003DA1 xor eax, eax .text:08003DA3 .text:08003DA3 loc_0_8003DA3: ; CODE XREF: defragment+36j .text:08003DA3 ; defragment+44j ... .text:08003DA3 pop ebx .text:08003DA4 pop esi .text:08003DA5 pop edi .text:08003DA6 pop ebp .text:08003DA7 add esp, 4 .text:08003DAA retn .text:08003DAA defragment endp .text:08003DAA .text:08003DAA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003DAB align 4 .text:08003DAC .text:08003DAC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003DAC .text:08003DAC .text:08003DAC sectorsInVolume proc near ; DATA XREF: mountNFTL+3C0o .text:08003DAC .text:08003DAC arg_0 = dword ptr 4 .text:08003DAC .text:08003DAC mov eax, [esp+arg_0] .text:08003DB0 mov eax, [eax+24h] .text:08003DB3 retn .text:08003DB3 sectorsInVolume endp .text:08003DB3 .text:08003DB4 .text:08003DB4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003DB4 .text:08003DB4 .text:08003DB4 dismountNFTL proc near ; CODE XREF: formatNFTL+34Cp .text:08003DB4 ; formatNFTL+743p ... .text:08003DB4 .text:08003DB4 arg_0 = dword ptr 8 .text:08003DB4 .text:08003DB4 push ebx .text:08003DB5 mov ebx, [esp+arg_0] .text:08003DB9 mov eax, [ebx+2Ch] .text:08003DBC test eax, eax .text:08003DBE jz short loc_0_8003DC9 .text:08003DC0 push eax .text:08003DC1 call flkfree .text:08003DC6 add esp, 4 .text:08003DC9 .text:08003DC9 loc_0_8003DC9: ; CODE XREF: dismountNFTL+Aj .text:08003DC9 mov eax, [ebx+30h] .text:08003DCC test eax, eax .text:08003DCE jz short loc_0_8003DD9 .text:08003DD0 push eax .text:08003DD1 call flkfree .text:08003DD6 add esp, 4 .text:08003DD9 .text:08003DD9 loc_0_8003DD9: ; CODE XREF: dismountNFTL+1Aj .text:08003DD9 mov eax, [ebx+34h] .text:08003DDC test eax, eax .text:08003DDE jz short loc_0_8003DE9 .text:08003DE0 push eax .text:08003DE1 call flkfree .text:08003DE6 add esp, 4 .text:08003DE9 .text:08003DE9 loc_0_8003DE9: ; CODE XREF: dismountNFTL+2Aj .text:08003DE9 mov eax, [ebx+38h] .text:08003DEC test eax, eax .text:08003DEE jz short loc_0_8003DF9 .text:08003DF0 push eax .text:08003DF1 call flkfree .text:08003DF6 add esp, 4 .text:08003DF9 .text:08003DF9 loc_0_8003DF9: ; CODE XREF: dismountNFTL+3Aj .text:08003DF9 pop ebx .text:08003DFA retn .text:08003DFA dismountNFTL endp .text:08003DFA .text:08003DFA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003DFB align 4 .text:08003DFC .text:08003DFC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003DFC .text:08003DFC .text:08003DFC isErased proc near ; CODE XREF: formatNFTL+214p .text:08003DFC ; formatNFTL+25Ep .text:08003DFC .text:08003DFC var_200 = byte ptr -200h .text:08003DFC arg_0 = dword ptr 4 .text:08003DFC arg_4 = dword ptr 8 .text:08003DFC .text:08003DFC sub esp, 200h .text:08003E02 push edi .text:08003E03 push esi .text:08003E04 push ebx .text:08003E05 mov esi, [esp+20Ch+arg_0] .text:08003E0C mov edi, [esp+20Ch+arg_4] .text:08003E13 push 200h .text:08003E18 push 0FFh .text:08003E1D lea eax, [esp+214h+var_200] .text:08003E21 push eax .text:08003E22 call flmemset .text:08003E27 xor ebx, ebx .text:08003E29 add esp, 0Ch .text:08003E2C .text:08003E2C loc_0_8003E2C: ; CODE XREF: isErased+7Fj .text:08003E2C push 200h .text:08003E31 lea eax, [esp+210h+var_200] .text:08003E35 push eax .text:08003E36 xor eax, eax .text:08003E38 push 200h .text:08003E3D mov ax, di .text:08003E40 push eax .text:08003E41 push esi .text:08003E42 call unitBaseAddress .text:08003E47 add esp, 8 .text:08003E4A add eax, ebx .text:08003E4C push eax .text:08003E4D lea eax, [esi+5Ch] .text:08003E50 push eax .text:08003E51 mov eax, [esi+7Ch] .text:08003E54 call eax .text:08003E56 add esp, 0Ch .text:08003E59 push eax .text:08003E5A call flmemcmp .text:08003E5F add esp, 0Ch .text:08003E62 test eax, eax .text:08003E64 jz short loc_0_8003E6C .text:08003E66 xor eax, eax .text:08003E68 jmp short loc_0_8003E82 .text:08003E68 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003E6A align 4 .text:08003E6C .text:08003E6C loc_0_8003E6C: ; CODE XREF: isErased+68j .text:08003E6C add ebx, 200h .text:08003E72 mov ecx, [esi+20h] .text:08003E75 mov eax, ebx .text:08003E77 shr eax, cl .text:08003E79 test eax, eax .text:08003E7B jz short loc_0_8003E2C .text:08003E7D mov eax, 1 .text:08003E82 .text:08003E82 loc_0_8003E82: ; CODE XREF: isErased+6Cj .text:08003E82 pop ebx .text:08003E83 pop esi .text:08003E84 pop edi .text:08003E85 add esp, 200h .text:08003E8B retn .text:08003E8B isErased endp .text:08003E8B .text:08003E8C .text:08003E8C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003E8C .text:08003E8C .text:08003E8C public getAnandRec .text:08003E8C getAnandRec proc near .text:08003E8C .text:08003E8C arg_0 = dword ptr 4 .text:08003E8C .text:08003E8C mov eax, [esp+arg_0] .text:08003E90 lea edx, [eax+eax*8] .text:08003E93 lea edx, [eax+edx*4] .text:08003E96 lea eax, vols_0[edx*4] .text:08003E9D retn .text:08003E9D getAnandRec endp .text:08003E9D .text:08003E9D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003E9E align 4 .text:08003EA0 .text:08003EA0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08003EA0 .text:08003EA0 .text:08003EA0 formatNFTL proc near ; DATA XREF: flRegisterNFTL+2Ao .text:08003EA0 .text:08003EA0 var_28 = dword ptr -28h .text:08003EA0 var_24 = dword ptr -24h .text:08003EA0 var_1E = word ptr -1Eh .text:08003EA0 var_1C = dword ptr -1Ch .text:08003EA0 var_18 = dword ptr -18h .text:08003EA0 var_14 = dword ptr -14h .text:08003EA0 var_10 = byte ptr -10h .text:08003EA0 var_A = word ptr -0Ah .text:08003EA0 var_8 = dword ptr -8 .text:08003EA0 arg_0 = dword ptr 4 .text:08003EA0 arg_4 = dword ptr 8 .text:08003EA0 arg_8 = dword ptr 0Ch .text:08003EA0 .text:08003EA0 sub esp, 28h .text:08003EA3 push ebp .text:08003EA4 push edi .text:08003EA5 push esi .text:08003EA6 push ebx .text:08003EA7 mov eax, [esp+38h+arg_0] .text:08003EAB mov ebx, [esp+38h+arg_8] .text:08003EAF lea edx, [eax+eax*8] .text:08003EB2 mov [esp+38h+var_1C], 0 .text:08003EBA lea edx, [eax+edx*4] .text:08003EBD push offset aDebugStartingN ; "Debug: starting NFTL format.\n" .text:08003EC2 lea esi, vols_0[edx*4] .text:08003EC9 call flprintk .text:08003ECE push ebx .text:08003ECF push esi .text:08003ED0 call initNFTL .text:08003ED5 mov edx, eax .text:08003ED7 add esp, 0Ch .text:08003EDA test edx, edx .text:08003EDC jnz loc_0_80045FB .text:08003EE2 push 0Eh .text:08003EE4 mov ecx, [esp+3Ch+var_1C] .text:08003EE8 push ecx .text:08003EE9 lea ebx, [esp+40h+var_10] .text:08003EED push ebx .text:08003EEE call flmemset .text:08003EF3 mov eax, [esp+44h+var_1C] .text:08003EF7 add esp, 0Ch .text:08003EFA xor ecx, ecx .text:08003EFC mov [esi+4], ax .text:08003F00 cmp [esi+1Ch], cx .text:08003F04 jbe short loc_0_8003F5C .text:08003F06 mov esi, esi .text:08003F08 .text:08003F08 loc_0_8003F08: ; CODE XREF: formatNFTL+BAj .text:08003F08 push 0 .text:08003F0A push 0Eh .text:08003F0C push ebx .text:08003F0D xor eax, eax .text:08003F0F mov ax, [esi+4] .text:08003F13 push eax .text:08003F14 push esi .text:08003F15 call unitBaseAddress .text:08003F1A add esp, 8 .text:08003F1D push eax .text:08003F1E lea eax, [esi+5Ch] .text:08003F21 push eax .text:08003F22 mov eax, [esi+80h] .text:08003F28 call eax .text:08003F2A push 6 .text:08003F2C push offset aAnand ; "ANAND" .text:08003F31 push ebx .text:08003F32 call flmemcmp .text:08003F37 add esp, 20h .text:08003F3A test eax, eax .text:08003F3C jz short loc_0_8003F5C .text:08003F3E mov ax, [esi+4] .text:08003F42 mov [esp+38h+var_1E], ax .text:08003F47 inc eax .text:08003F48 mov [esi+4], ax .text:08003F4C inc [esp+38h+var_1E] .text:08003F51 mov cx, [esp+38h+var_1E] .text:08003F56 cmp [esi+1Ch], cx .text:08003F5A ja short loc_0_8003F08 .text:08003F5C .text:08003F5C loc_0_8003F5C: ; CODE XREF: formatNFTL+64j .text:08003F5C ; formatNFTL+9Cj .text:08003F5C mov eax, [esp+38h+arg_4] .text:08003F60 mov edx, [eax] .text:08003F62 test edx, edx .text:08003F64 jl short loc_0_8003F78 .text:08003F66 lea eax, [edx-1] .text:08003F69 mov ecx, [esi+20h] .text:08003F6C sar eax, cl .text:08003F6E inc eax .text:08003F6F mov word ptr [esp+38h+var_18+2], ax .text:08003F74 jmp short loc_0_8003F97 .text:08003F74 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08003F76 align 4 .text:08003F78 .text:08003F78 loc_0_8003F78: ; CODE XREF: formatNFTL+C4j .text:08003F78 mov word ptr [esp+38h+var_18+2], 0 .text:08003F7F mov ax, [esi+1Ch] .text:08003F83 cmp [esi+4], ax .text:08003F87 jnb short loc_0_8003F97 .text:08003F89 mov edx, [esp+38h+var_8] .text:08003F8D test dx, dx .text:08003F90 jbe short loc_0_8003F97 .text:08003F92 mov word ptr [esp+38h+var_18+2], dx .text:08003F97 .text:08003F97 loc_0_8003F97: ; CODE XREF: formatNFTL+D4j .text:08003F97 ; formatNFTL+E7j ... .text:08003F97 mov cx, [esi+4] .text:08003F9B mov ax, word ptr [esp+38h+var_18+2] .text:08003FA0 mov word ptr [esp+38h+var_18], cx .text:08003FA5 mov edx, 1 .text:08003FAA mov ebx, [esi+20h] .text:08003FAD mov edi, edx .text:08003FAF mov ecx, ebx .text:08003FB1 add ebx, 0FFFFFFF7h .text:08003FB4 shl edi, cl .text:08003FB6 mov ecx, ebx .text:08003FB8 mov [esi+1Eh], ax .text:08003FBC shl edx, cl .text:08003FBE lea eax, [edi-1] .text:08003FC1 mov [esi+18h], edx .text:08003FC4 mov [esi+14h], eax .text:08003FC7 mov eax, [esp+38h+arg_4] .text:08003FCB xor ecx, ecx .text:08003FCD mov cx, [esi+1Ch] .text:08003FD1 mov bx, [eax+8] .text:08003FD5 xor eax, eax .text:08003FD7 mov ax, [esi+1Eh] .text:08003FDB sub ecx, eax .text:08003FDD mov [esi+12h], bx .text:08003FE1 mov [esp+38h+var_28], ecx .text:08003FE5 mov ecx, [esp+38h+arg_4] .text:08003FE9 mov edx, 64h .text:08003FEE mov eax, 51EB851Fh .text:08003FF3 sub edx, [ecx+4] .text:08003FF6 xor ecx, ecx .text:08003FF8 imul edx, [esp+38h+var_28] .text:08003FFD mul edx .text:08003FFF shr edx, 5 .text:08004002 xor eax, eax .text:08004004 add ebx, edx .text:08004006 mov ax, [esi+1Eh] .text:0800400A mov [esi+12h], bx .text:0800400E xor edx, edx .text:08004010 mov dx, [esi+12h] .text:08004014 mov cx, [esi+1Ch] .text:08004018 add edx, eax .text:0800401A mov [esp+38h+var_24], edx .text:0800401E cmp ecx, edx .text:08004020 jg short loc_0_800402C .text:08004022 mov eax, 40h .text:08004027 jmp loc_0_80045FB .text:0800402C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800402C .text:0800402C loc_0_800402C: ; CODE XREF: formatNFTL+180j .text:0800402C mov [esp+38h+var_14], edi .text:08004030 mov cx, [esi+1Ch] .text:08004034 sub cx, word ptr [esp+38h+var_18+2] .text:08004039 mov [esi+10h], cx .text:0800403D push esi .text:0800403E call initTables .text:08004043 mov edi, eax .text:08004045 add esp, 4 .text:08004048 test edi, edi .text:0800404A jnz loc_0_80045FB .text:08004050 xor edx, edx .text:08004052 mov dx, [esi+1Ch] .text:08004056 xor eax, eax .text:08004058 mov ax, [esi+1Eh] .text:0800405C mov ebx, edi .text:0800405E sub edx, eax .text:08004060 cmp edi, edx .text:08004062 jge short loc_0_800408A .text:08004064 .text:08004064 loc_0_8004064: ; CODE XREF: formatNFTL+1E8j .text:08004064 xor edx, edx .text:08004066 mov eax, [esi+30h] .text:08004069 mov dx, bx .text:0800406C xor ecx, ecx .text:0800406E mov word ptr [eax+edx*2], 0FFFFh .text:08004074 inc ebx .text:08004075 xor edx, edx .text:08004077 mov dx, [esi+1Ch] .text:0800407B xor eax, eax .text:0800407D mov ax, [esi+1Eh] .text:08004081 mov cx, bx .text:08004084 sub edx, eax .text:08004086 cmp ecx, edx .text:08004088 jl short loc_0_8004064 .text:0800408A .text:0800408A loc_0_800408A: ; CODE XREF: formatNFTL+1C2j .text:0800408A mov dx, [esi+1Ch] .text:0800408E cmp [esi+4], dx .text:08004092 jb loc_0_800411C .text:08004098 mov ax, [esi+1Eh] .text:0800409C mov [esi+4], ax .text:080040A0 cmp ax, dx .text:080040A3 jnb loc_0_80041EB .text:080040A9 lea esi, [esi+0] .text:080040AC .text:080040AC loc_0_80040AC: ; CODE XREF: formatNFTL+23Bj .text:080040AC xor eax, eax .text:080040AE mov ax, [esi+4] .text:080040B2 push eax .text:080040B3 push esi .text:080040B4 call isErased .text:080040B9 add esp, 8 .text:080040BC test eax, eax .text:080040BE jnz short loc_0_80040DD .text:080040C0 mov ax, [esi+4] .text:080040C4 mov word ptr [esp+38h+var_24], ax .text:080040C9 inc eax .text:080040CA mov [esi+4], ax .text:080040CE inc word ptr [esp+38h+var_24] .text:080040D3 mov ecx, [esp+38h+var_24] .text:080040D7 cmp [esi+1Ch], cx .text:080040DB ja short loc_0_80040AC .text:080040DD .text:080040DD loc_0_80040DD: ; CODE XREF: formatNFTL+21Ej .text:080040DD mov dx, [esi+1Ch] .text:080040E1 cmp [esi+4], dx .text:080040E5 jnb loc_0_80041EB .text:080040EB xor ebx, ebx .text:080040ED cmp bx, dx .text:080040F0 jnb short loc_0_8004158 .text:080040F2 mov esi, esi .text:080040F4 .text:080040F4 loc_0_80040F4: ; CODE XREF: formatNFTL+277j .text:080040F4 xor edi, edi .text:080040F6 mov di, bx .text:080040F9 mov ebp, [esi+2Ch] .text:080040FC push edi .text:080040FD push esi .text:080040FE call isErased .text:08004103 add esp, 8 .text:08004106 xor edx, edx .text:08004108 test eax, eax .text:0800410A jz short loc_0_800410E .text:0800410C mov dl, 0FFh .text:0800410E .text:0800410E loc_0_800410E: ; CODE XREF: formatNFTL+26Aj .text:0800410E mov [edi+ebp], dl .text:08004111 inc bx .text:08004113 cmp [esi+1Ch], bx .text:08004117 ja short loc_0_80040F4 .text:08004119 jmp short loc_0_8004158 .text:08004119 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800411B align 4 .text:0800411C .text:0800411C loc_0_800411C: ; CODE XREF: formatNFTL+1F2j .text:0800411C push 2 .text:0800411E xor eax, eax .text:08004120 mov ax, [esi+1Ch] .text:08004124 push eax .text:08004125 mov eax, [esi+2Ch] .text:08004128 push eax .text:08004129 xor eax, eax .text:0800412B mov ax, [esi+4] .text:0800412F push eax .text:08004130 push esi .text:08004131 call unitBaseAddress .text:08004136 add esp, 8 .text:08004139 add eax, 200h .text:0800413E push eax .text:0800413F lea eax, [esi+5Ch] .text:08004142 push eax .text:08004143 mov eax, [esi+80h] .text:08004149 call eax .text:0800414B mov edi, eax .text:0800414D add esp, 14h .text:08004150 test edi, edi .text:08004152 jnz loc_0_80045F0 .text:08004158 .text:08004158 loc_0_8004158: ; CODE XREF: formatNFTL+250j .text:08004158 ; formatNFTL+279j .text:08004158 add word ptr [esi+12h], 2 .text:0800415D xor ebx, ebx .text:0800415F cmp [esi+1Ch], bx .text:08004163 jbe short loc_0_8004182 .text:08004165 lea esi, [esi+0] .text:08004168 .text:08004168 loc_0_8004168: ; CODE XREF: formatNFTL+2E0j .text:08004168 mov edi, [esi+2Ch] .text:0800416B xor edx, edx .text:0800416D mov dx, bx .text:08004170 cmp byte ptr [edx+edi], 0FFh .text:08004174 jz short loc_0_800417A .text:08004176 mov byte ptr [edx+edi], 6Bh .text:0800417A .text:0800417A loc_0_800417A: ; CODE XREF: formatNFTL+2D4j .text:0800417A inc bx .text:0800417C cmp [esi+1Ch], bx .text:08004180 ja short loc_0_8004168 .text:08004182 .text:08004182 loc_0_8004182: ; CODE XREF: formatNFTL+2C3j .text:08004182 mov word ptr [esi+1Eh], 0 .text:08004188 xor ebx, ebx .text:0800418A cmp word ptr [esp+38h+var_18+2], bx .text:0800418F jbe short loc_0_80041D0 .text:08004191 mov di, [esi+1Ch] .text:08004195 lea esi, [esi+0] .text:08004198 .text:08004198 loc_0_8004198: ; CODE XREF: formatNFTL+323j .text:08004198 cmp bx, di .text:0800419B jnb short loc_0_80041C5 .text:0800419D xor edx, edx .text:0800419F mov eax, [esi+2Ch] .text:080041A2 mov dx, bx .text:080041A5 mov dl, [edx+eax] .text:080041A8 cmp dl, 0FFh .text:080041AB jz short loc_0_80041B5 .text:080041AD and dl, 7Fh .text:080041B0 cmp dl, 40h .text:080041B3 ja short loc_0_80041B9 .text:080041B5 .text:080041B5 loc_0_80041B5: ; CODE XREF: formatNFTL+30Bj .text:080041B5 inc word ptr [esi+1Eh] .text:080041B9 .text:080041B9 loc_0_80041B9: ; CODE XREF: formatNFTL+313j .text:080041B9 inc ebx .text:080041BA mov ax, word ptr [esp+38h+var_18+2] .text:080041BF cmp [esi+1Eh], ax .text:080041C3 jb short loc_0_8004198 .text:080041C5 .text:080041C5 loc_0_80041C5: ; CODE XREF: formatNFTL+2FBj .text:080041C5 mov cx, word ptr [esp+38h+var_18+2] .text:080041CA cmp [esi+1Eh], cx .text:080041CE jb short loc_0_80041EB .text:080041D0 .text:080041D0 loc_0_80041D0: ; CODE XREF: formatNFTL+2EFj .text:080041D0 mov [esi+1Eh], bx .text:080041D4 xor eax, eax .text:080041D6 xor edx, edx .text:080041D8 mov dx, bx .text:080041DB xor ecx, ecx .text:080041DD mov cx, [esi+12h] .text:080041E1 mov ax, [esi+1Ch] .text:080041E5 add edx, ecx .text:080041E7 cmp eax, edx .text:080041E9 jg short loc_0_80041FC .text:080041EB .text:080041EB loc_0_80041EB: ; CODE XREF: formatNFTL+203j .text:080041EB ; formatNFTL+245j ... .text:080041EB push esi .text:080041EC call dismountNFTL .text:080041F1 mov eax, 40h .text:080041F6 jmp loc_0_80045F8 .text:080041F6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080041FB align 4 .text:080041FC .text:080041FC loc_0_80041FC: ; CODE XREF: formatNFTL+349j .text:080041FC xor ebx, ebx .text:080041FE mov dx, [esi+1Eh] .text:08004202 cmp bx, dx .text:08004205 jnb short loc_0_8004230 .text:08004207 mov ebp, [esi+2Ch] .text:0800420A mov esi, esi .text:0800420C .text:0800420C loc_0_800420C: ; CODE XREF: formatNFTL+38Ej .text:0800420C xor eax, eax .text:0800420E mov ax, bx .text:08004211 mov cl, [eax+ebp] .text:08004214 mov edi, ecx .text:08004216 cmp cl, 0FFh .text:08004219 jz short loc_0_8004229 .text:0800421B and cl, 7Fh .text:0800421E mov edi, ecx .text:08004220 cmp cl, 40h .text:08004223 jbe short loc_0_8004229 .text:08004225 dec word ptr [esi+12h] .text:08004229 .text:08004229 loc_0_8004229: ; CODE XREF: formatNFTL+379j .text:08004229 ; formatNFTL+383j .text:08004229 inc bx .text:0800422B cmp bx, dx .text:0800422E jb short loc_0_800420C .text:08004230 .text:08004230 loc_0_8004230: ; CODE XREF: formatNFTL+365j .text:08004230 xor edx, edx .text:08004232 mov dx, [esi+1Ch] .text:08004236 xor eax, eax .text:08004238 mov ax, [esi+1Eh] .text:0800423C sub edx, eax .text:0800423E xor eax, eax .text:08004240 mov ax, [esi+12h] .text:08004244 mov ebx, [esp+38h+var_14] .text:08004248 sub edx, eax .text:0800424A test ebx, ebx .text:0800424C jge short loc_0_8004254 .text:0800424E add ebx, 1FFh .text:08004254 .text:08004254 loc_0_8004254: ; CODE XREF: formatNFTL+3ACj .text:08004254 sar ebx, 9 .text:08004257 mov [esp+38h+var_24], ebx .text:0800425B imul edx, ebx .text:0800425E mov [esp+38h+var_24], edx .text:08004262 mov [esi+24h], edx .text:08004265 mov edx, [esi+18h] .text:08004268 mov eax, [esp+38h+var_24] .text:0800426C lea ebx, [edx+eax-1] .text:08004270 mov ecx, edx .text:08004272 mov eax, ebx .text:08004274 xor edx, edx .text:08004276 div ecx .text:08004278 mov ebx, eax .text:0800427A mov ax, [esi+1Eh] .text:0800427E mov dx, [esi+1Ch] .text:08004282 mov [esi+10h], bx .text:08004286 mov [esi+4], ax .text:0800428A cmp ax, dx .text:0800428D jnb short loc_0_80042BA .text:0800428F mov ebx, [esi+2Ch] .text:08004292 mov esi, esi .text:08004294 .text:08004294 loc_0_8004294: ; CODE XREF: formatNFTL+418j .text:08004294 xor eax, eax .text:08004296 mov ax, [esi+4] .text:0800429A cmp byte ptr [eax+ebx], 0FFh .text:0800429E jz short loc_0_80042BA .text:080042A0 mov cx, [esi+4] .text:080042A4 mov word ptr [esp+38h+var_24], cx .text:080042A9 inc ecx .text:080042AA mov [esi+4], cx .text:080042AE inc word ptr [esp+38h+var_24] .text:080042B3 cmp word ptr [esp+38h+var_24], dx .text:080042B8 jb short loc_0_8004294 .text:080042BA .text:080042BA loc_0_80042BA: ; CODE XREF: formatNFTL+3EDj .text:080042BA ; formatNFTL+3FEj .text:080042BA xor eax, eax .text:080042BC mov edx, [esi+2Ch] .text:080042BF mov ax, [esi+4] .text:080042C3 mov byte ptr [eax+edx], 6Ah .text:080042C7 mov ax, [esi+4] .text:080042CB inc eax .text:080042CC mov dx, [esi+1Ch] .text:080042D0 mov [esi+6], ax .text:080042D4 cmp ax, dx .text:080042D7 jnb short loc_0_8004302 .text:080042D9 mov ebx, [esi+2Ch] .text:080042DC .text:080042DC loc_0_80042DC: ; CODE XREF: formatNFTL+460j .text:080042DC xor eax, eax .text:080042DE mov ax, [esi+6] .text:080042E2 cmp byte ptr [eax+ebx], 0FFh .text:080042E6 jz short loc_0_8004302 .text:080042E8 mov ax, [esi+6] .text:080042EC mov word ptr [esp+38h+var_24], ax .text:080042F1 inc eax .text:080042F2 mov [esi+6], ax .text:080042F6 inc word ptr [esp+38h+var_24] .text:080042FB cmp word ptr [esp+38h+var_24], dx .text:08004300 jb short loc_0_80042DC .text:08004302 .text:08004302 loc_0_8004302: ; CODE XREF: formatNFTL+437j .text:08004302 ; formatNFTL+446j .text:08004302 xor edx, edx .text:08004304 mov eax, [esi+2Ch] .text:08004307 mov dx, [esi+6] .text:0800430B mov byte ptr [edx+eax], 6Ah .text:0800430F mov bx, [esi+1Eh] .text:08004313 cmp [esi+1Ch], bx .text:08004317 jbe loc_0_80043AC .text:0800431D lea esi, [esi+0] .text:08004320 .text:08004320 loc_0_8004320: ; CODE XREF: formatNFTL+506j .text:08004320 xor ebp, ebp .text:08004322 mov bp, bx .text:08004325 push ebp .text:08004326 push esi .text:08004327 call formatUnit .text:0800432C mov edi, eax .text:0800432E add esp, 8 .text:08004331 cmp edi, 1Dh .text:08004334 jnz short loc_0_8004360 .text:08004336 cmp [esi+4], bx .text:0800433A jz short loc_0_8004368 .text:0800433C cmp [esi+6], bx .text:08004340 jz short loc_0_8004368 .text:08004342 inc [esp+38h+var_1C] .text:08004346 mov eax, [esi+2Ch] .text:08004349 mov byte ptr [ebp+eax+0], 6Bh .text:0800434E xor eax, eax .text:08004350 mov ax, [esi+12h] .text:08004354 cmp [esp+38h+var_1C], eax .text:08004358 jl short loc_0_8004368 .text:0800435A jmp loc_0_80045F0 .text:0800435A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800435F align 4 .text:08004360 .text:08004360 loc_0_8004360: ; CODE XREF: formatNFTL+494j .text:08004360 test edi, edi .text:08004362 jnz loc_0_80045F0 .text:08004368 .text:08004368 loc_0_8004368: ; CODE XREF: formatNFTL+49Aj .text:08004368 ; formatNFTL+4A0j ... .text:08004368 mov ecx, [esp+38h+arg_4] .text:0800436C mov edi, [ecx+10h] .text:0800436F test edi, edi .text:08004371 jz short loc_0_80043A0 .text:08004373 xor edx, edx .text:08004375 xor eax, eax .text:08004377 mov ax, [esi+1Eh] .text:0800437B mov dx, bx .text:0800437E dec eax .text:0800437F sub edx, eax .text:08004381 push edx .text:08004382 xor eax, eax .text:08004384 xor edx, edx .text:08004386 mov dx, [esi+1Ch] .text:0800438A mov ax, [esi+1Eh] .text:0800438E sub edx, eax .text:08004390 push edx .text:08004391 call edi .text:08004393 mov edi, eax .text:08004395 add esp, 8 .text:08004398 test edi, edi .text:0800439A jnz loc_0_80045F0 .text:080043A0 .text:080043A0 loc_0_80043A0: ; CODE XREF: formatNFTL+4D1j .text:080043A0 inc bx .text:080043A2 cmp [esi+1Ch], bx .text:080043A6 ja loc_0_8004320 .text:080043AC .text:080043AC loc_0_80043AC: ; CODE XREF: formatNFTL+477j .text:080043AC xor ebx, ebx .text:080043AE cmp [esi+1Ch], bx .text:080043B2 jbe short loc_0_80043CE .text:080043B4 .text:080043B4 loc_0_80043B4: ; CODE XREF: formatNFTL+52Cj .text:080043B4 mov edi, [esi+2Ch] .text:080043B7 xor edx, edx .text:080043B9 mov dx, bx .text:080043BC cmp byte ptr [edx+edi], 6Bh .text:080043C0 jnz short loc_0_80043C6 .text:080043C2 mov byte ptr [edx+edi], 0 .text:080043C6 .text:080043C6 loc_0_80043C6: ; CODE XREF: formatNFTL+520j .text:080043C6 inc bx .text:080043C8 cmp [esi+1Ch], bx .text:080043CC ja short loc_0_80043B4 .text:080043CE .text:080043CE loc_0_80043CE: ; CODE XREF: formatNFTL+512j .text:080043CE push 0Eh .text:080043D0 push 0FFh .text:080043D5 lea ebp, [esp+40h+var_10] .text:080043D9 push ebp .text:080043DA call flmemset .text:080043DF mov ax, [esi+1Eh] .text:080043E3 mov word ptr [esp+44h+var_8], ax .text:080043E8 mov cx, [esi+1Ch] .text:080043EC sub ecx, [esp+44h+var_8] .text:080043F0 mov [esp+44h+var_A], cx .text:080043F5 push 6 .text:080043F7 push offset aAnand ; "ANAND" .text:080043FC push ebp .text:080043FD call flmemcpy .text:08004402 mov eax, [esi+24h] .text:08004405 shl eax, 9 .text:08004408 mov [esp+50h+var_24], eax .text:0800440C mov ecx, eax .text:0800440E push ecx .text:0800440F lea eax, [esp+54h+var_8+2] .text:08004413 mov [esp+54h+var_24], eax .text:08004417 mov ecx, eax .text:08004419 push ecx .text:0800441A call toUNALLONG .text:0800441F xor edx, edx .text:08004421 mov eax, [esi+2Ch] .text:08004424 mov dx, [esi+4] .text:08004428 mov byte ptr [edx+eax], 0FFh .text:0800442C xor edx, edx .text:0800442E mov ecx, [esi+2Ch] .text:08004431 mov dx, [esi+6] .text:08004435 add esp, 20h .text:08004438 mov byte ptr [edx+ecx], 0FFh .text:0800443C mov eax, [esp+38h+var_18] .text:08004440 cmp [esi+4], ax .text:08004444 jz loc_0_8004549 .text:0800444A xor eax, eax .text:0800444C mov ax, [esi+6] .text:08004450 push eax .text:08004451 push esi .text:08004452 call formatUnit .text:08004457 mov edi, eax .text:08004459 add esp, 8 .text:0800445C test edi, edi .text:0800445E jnz loc_0_80045F0 .text:08004464 push 2 .text:08004466 xor eax, eax .text:08004468 mov ax, [esi+1Ch] .text:0800446C push eax .text:0800446D mov eax, [esi+2Ch] .text:08004470 push eax .text:08004471 xor eax, eax .text:08004473 mov ax, [esi+6] .text:08004477 push eax .text:08004478 push esi .text:08004479 call unitBaseAddress .text:0800447E add esp, 8 .text:08004481 add eax, 200h .text:08004486 push eax .text:08004487 lea ebx, [esi+5Ch] .text:0800448A push ebx .text:0800448B mov eax, [esi+84h] .text:08004491 call eax .text:08004493 mov edi, eax .text:08004495 add esp, 14h .text:08004498 test edi, edi .text:0800449A jnz loc_0_80045F0 .text:080044A0 push edi .text:080044A1 push 0Eh .text:080044A3 push ebp .text:080044A4 xor eax, eax .text:080044A6 mov ax, [esi+6] .text:080044AA push eax .text:080044AB push esi .text:080044AC call unitBaseAddress .text:080044B1 add esp, 8 .text:080044B4 push eax .text:080044B5 push ebx .text:080044B6 mov eax, [esi+84h] .text:080044BC call eax .text:080044BE mov edi, eax .text:080044C0 add esp, 14h .text:080044C3 test edi, edi .text:080044C5 jnz loc_0_80045F0 .text:080044CB xor eax, eax .text:080044CD mov ax, [esi+4] .text:080044D1 push eax .text:080044D2 push esi .text:080044D3 call formatUnit .text:080044D8 mov edi, eax .text:080044DA add esp, 8 .text:080044DD test edi, edi .text:080044DF jnz loc_0_80045F0 .text:080044E5 push 2 .text:080044E7 xor eax, eax .text:080044E9 mov ax, [esi+1Ch] .text:080044ED push eax .text:080044EE mov eax, [esi+2Ch] .text:080044F1 push eax .text:080044F2 xor eax, eax .text:080044F4 mov ax, [esi+4] .text:080044F8 push eax .text:080044F9 push esi .text:080044FA call unitBaseAddress .text:080044FF add esp, 8 .text:08004502 add eax, 200h .text:08004507 push eax .text:08004508 push ebx .text:08004509 mov eax, [esi+84h] .text:0800450F call eax .text:08004511 mov edi, eax .text:08004513 add esp, 14h .text:08004516 test edi, edi .text:08004518 jnz loc_0_80045F0 .text:0800451E push edi .text:0800451F push 0Eh .text:08004521 push ebp .text:08004522 xor eax, eax .text:08004524 mov ax, [esi+4] .text:08004528 push eax .text:08004529 push esi .text:0800452A call unitBaseAddress .text:0800452F add esp, 8 .text:08004532 push eax .text:08004533 push ebx .text:08004534 mov eax, [esi+84h] .text:0800453A call eax .text:0800453C mov edi, eax .text:0800453E add esp, 14h .text:08004541 test edi, edi .text:08004543 jnz loc_0_80045F0 .text:08004549 .text:08004549 loc_0_8004549: ; CODE XREF: formatNFTL+5A4j .text:08004549 mov ecx, [esp+38h+var_18] .text:0800454D cmp [esi+4], cx .text:08004551 jbe short loc_0_8004590 .text:08004553 mov ebx, ecx .text:08004555 lea esi, [esi+0] .text:08004558 .text:08004558 loc_0_8004558: ; CODE XREF: formatNFTL+6EEj .text:08004558 mov eax, [esi+2Ch] .text:0800455B xor edx, edx .text:0800455D mov dx, bx .text:08004560 cmp byte ptr [edx+eax], 0 .text:08004564 jz short loc_0_8004588 .text:08004566 mov eax, [esi+0Ch] .text:08004569 mov ecx, [esi+20h] .text:0800456C sub ecx, eax .text:0800456E mov eax, 1 .text:08004573 shl eax, cl .text:08004575 push eax .text:08004576 shl edx, cl .text:08004578 push edx .text:08004579 lea eax, [esi+5Ch] .text:0800457C push eax .text:0800457D mov eax, [esi+88h] .text:08004583 call eax .text:08004585 add esp, 0Ch .text:08004588 .text:08004588 loc_0_8004588: ; CODE XREF: formatNFTL+6C4j .text:08004588 inc bx .text:0800458A cmp [esi+4], bx .text:0800458E ja short loc_0_8004558 .text:08004590 .text:08004590 loc_0_8004590: ; CODE XREF: formatNFTL+6B1j .text:08004590 xor ebx, ebx .text:08004592 cmp [esi+1Ch], bx .text:08004596 jbe short loc_0_80045BE .text:08004598 .text:08004598 loc_0_8004598: ; CODE XREF: formatNFTL+71Cj .text:08004598 mov edi, [esi+2Ch] .text:0800459B xor edx, edx .text:0800459D mov dx, bx .text:080045A0 cmp byte ptr [edx+edi], 0 .text:080045A4 jnz short loc_0_80045AC .text:080045A6 mov byte ptr [edx+edi], 6Bh .text:080045AA jmp short loc_0_80045B6 .text:080045AC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080045AC .text:080045AC loc_0_80045AC: ; CODE XREF: formatNFTL+704j .text:080045AC cmp [esi+1Eh], bx .text:080045B0 jbe short loc_0_80045B6 .text:080045B2 mov byte ptr [edx+edi], 6Ah .text:080045B6 .text:080045B6 loc_0_80045B6: ; CODE XREF: formatNFTL+70Aj .text:080045B6 ; formatNFTL+710j .text:080045B6 inc bx .text:080045B8 cmp [esi+1Ch], bx .text:080045BC ja short loc_0_8004598 .text:080045BE .text:080045BE loc_0_80045BE: ; CODE XREF: formatNFTL+6F6j .text:080045BE xor edx, edx .text:080045C0 mov eax, [esi+2Ch] .text:080045C3 mov dx, [esi+4] .text:080045C7 mov byte ptr [edx+eax], 6Ah .text:080045CB xor edx, edx .text:080045CD mov eax, [esi+2Ch] .text:080045D0 mov dx, [esi+6] .text:080045D4 mov byte ptr [edx+eax], 6Ah .text:080045D8 push offset aDebugFinishedN ; "Debug: finished NFTL format.\n" .text:080045DD call flprintk .text:080045E2 push esi .text:080045E3 call dismountNFTL .text:080045E8 xor eax, eax .text:080045EA add esp, 8 .text:080045ED jmp short loc_0_80045FB .text:080045ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080045EF align 4 .text:080045F0 .text:080045F0 loc_0_80045F0: ; CODE XREF: formatNFTL+2B2j .text:080045F0 ; formatNFTL+4BAj ... .text:080045F0 push esi .text:080045F1 call dismountNFTL .text:080045F6 mov eax, edi .text:080045F8 .text:080045F8 loc_0_80045F8: ; CODE XREF: formatNFTL+356j .text:080045F8 add esp, 4 .text:080045FB .text:080045FB loc_0_80045FB: ; CODE XREF: formatNFTL+3Cj .text:080045FB ; formatNFTL+187j ... .text:080045FB pop ebx .text:080045FC pop esi .text:080045FD pop edi .text:080045FE pop ebp .text:080045FF add esp, 28h .text:08004602 retn .text:08004602 formatNFTL endp .text:08004602 .text:08004602 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004603 align 4 .text:08004604 .text:08004604 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004604 .text:08004604 .text:08004604 mountNFTL proc near ; DATA XREF: flRegisterNFTL+23o .text:08004604 .text:08004604 var_2C = dword ptr -2Ch .text:08004604 var_28 = dword ptr -28h .text:08004604 var_22 = word ptr -22h .text:08004604 var_20 = byte ptr -20h .text:08004604 var_10 = byte ptr -10h .text:08004604 var_A = word ptr -0Ah .text:08004604 var_8 = dword ptr -8 .text:08004604 arg_0 = dword ptr 4 .text:08004604 arg_4 = dword ptr 8 .text:08004604 arg_8 = dword ptr 0Ch .text:08004604 arg_C = dword ptr 10h .text:08004604 .text:08004604 sub esp, 2Ch .text:08004607 push ebp .text:08004608 push edi .text:08004609 push esi .text:0800460A push ebx .text:0800460B mov eax, [esp+3Ch+arg_0] .text:0800460F mov ebp, [esp+3Ch+arg_4] .text:08004613 mov ebx, [esp+3Ch+arg_8] .text:08004617 push 0Eh .text:08004619 lea edx, [eax+eax*8] .text:0800461C push 0 .text:0800461E lea edx, [eax+edx*4] .text:08004621 lea edi, [esp+44h+var_10] .text:08004625 lea esi, vols_0[edx*4] .text:0800462C push edi .text:0800462D call flmemset .text:08004632 push offset aDebugStartin_0 ; "Debug: starting NFTL mount.\n" .text:08004637 call flprintk .text:0800463C mov dword ptr [esi+34h], 0 .text:08004643 mov dword ptr [esi+38h], 0 .text:0800464A push ebx .text:0800464B push esi .text:0800464C call initNFTL .text:08004651 mov ecx, eax .text:08004653 add esp, 18h .text:08004656 test ecx, ecx .text:08004658 jnz loc_0_8004AA3 .text:0800465E mov eax, [esp+3Ch+arg_C] .text:08004662 lea edx, [esi+5Ch] .text:08004665 mov [eax], edx .text:08004667 mov [esi+4], cx .text:0800466B xor eax, eax .text:0800466D cmp [esi+1Ch], ax .text:08004671 jbe short loc_0_80046D9 .text:08004673 mov ebx, edi .text:08004675 lea esi, [esi+0] .text:08004678 .text:08004678 loc_0_8004678: ; CODE XREF: mountNFTL+C6j .text:08004678 push 0 .text:0800467A push 0Eh .text:0800467C push ebx .text:0800467D xor eax, eax .text:0800467F mov ax, [esi+4] .text:08004683 push eax .text:08004684 push esi .text:08004685 call unitBaseAddress .text:0800468A add esp, 8 .text:0800468D push eax .text:0800468E lea eax, [esi+5Ch] .text:08004691 push eax .text:08004692 mov eax, [esi+80h] .text:08004698 call eax .text:0800469A push 6 .text:0800469C push offset aAnand ; "ANAND" .text:080046A1 push ebx .text:080046A2 call flmemcmp .text:080046A7 add esp, 20h .text:080046AA test eax, eax .text:080046AC jz short loc_0_80046CC .text:080046AE mov dx, [esi+4] .text:080046B2 mov [esp+3Ch+var_22], dx .text:080046B7 inc edx .text:080046B8 mov [esi+4], dx .text:080046BC inc [esp+3Ch+var_22] .text:080046C1 mov ax, [esp+3Ch+var_22] .text:080046C6 cmp [esi+1Ch], ax .text:080046CA ja short loc_0_8004678 .text:080046CC .text:080046CC loc_0_80046CC: ; CODE XREF: mountNFTL+A8j .text:080046CC mov cx, [esi+4] .text:080046D0 mov bx, [esi+1Ch] .text:080046D4 cmp cx, bx .text:080046D7 jb short loc_0_80046F0 .text:080046D9 .text:080046D9 loc_0_80046D9: ; CODE XREF: mountNFTL+6Dj .text:080046D9 push offset aDebugNotNftlFo ; "Debug: not NFTL format.\n" .text:080046DE call flprintk .text:080046E3 mov eax, 1Ah .text:080046E8 add esp, 4 .text:080046EB jmp loc_0_8004AA3 .text:080046F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080046F0 .text:080046F0 loc_0_80046F0: ; CODE XREF: mountNFTL+D3j .text:080046F0 mov eax, ecx .text:080046F2 inc eax .text:080046F3 mov [esi+6], ax .text:080046F7 cmp ax, bx .text:080046FA jnb short loc_0_800475E .text:080046FC lea ebx, [esp+3Ch+var_20] .text:08004700 .text:08004700 loc_0_8004700: ; CODE XREF: mountNFTL+14Ej .text:08004700 push 0 .text:08004702 push 0Eh .text:08004704 push ebx .text:08004705 xor eax, eax .text:08004707 mov ax, [esi+6] .text:0800470B push eax .text:0800470C push esi .text:0800470D call unitBaseAddress .text:08004712 add esp, 8 .text:08004715 push eax .text:08004716 lea eax, [esi+5Ch] .text:08004719 push eax .text:0800471A mov eax, [esi+80h] .text:08004720 call eax .text:08004722 push 6 .text:08004724 push offset aAnand ; "ANAND" .text:08004729 push ebx .text:0800472A call flmemcmp .text:0800472F add esp, 20h .text:08004732 test eax, eax .text:08004734 jz short loc_0_8004754 .text:08004736 mov dx, [esi+6] .text:0800473A mov [esp+3Ch+var_22], dx .text:0800473F inc edx .text:08004740 mov [esi+6], dx .text:08004744 inc [esp+3Ch+var_22] .text:08004749 mov ax, [esp+3Ch+var_22] .text:0800474E cmp [esi+1Ch], ax .text:08004752 ja short loc_0_8004700 .text:08004754 .text:08004754 loc_0_8004754: ; CODE XREF: mountNFTL+130j .text:08004754 mov ax, [esi+1Ch] .text:08004758 cmp [esi+6], ax .text:0800475C jb short loc_0_8004764 .text:0800475E .text:0800475E loc_0_800475E: ; CODE XREF: mountNFTL+F6j .text:0800475E mov word ptr [esi+6], 0FFFFh .text:08004764 .text:08004764 loc_0_8004764: ; CODE XREF: mountNFTL+158j .text:08004764 mov dx, [esp+3Ch+var_A] .text:08004769 mov [esi+1Ch], dx .text:0800476D mov eax, [esp+3Ch+var_8] .text:08004771 lea edx, [esp+3Ch+var_8+2] .text:08004775 mov [esi+1Eh], ax .text:08004779 mov [esp+3Ch+var_28], edx .text:0800477D push edx .text:0800477E call fromUNALLONG .text:08004783 mov ebx, eax .text:08004785 mov ax, [esi+1Eh] .text:08004789 mov ecx, [esi+20h] .text:0800478C mov edx, 1 .text:08004791 shr ebx, 9 .text:08004794 add [esi+1Ch], ax .text:08004798 shl edx, cl .text:0800479A add ecx, 0FFFFFFF7h .text:0800479D mov [esi+24h], ebx .text:080047A0 mov [esp+40h+var_2C], edx .text:080047A4 mov eax, edx .text:080047A6 mov edx, 1 .text:080047AB dec eax .text:080047AC shl edx, cl .text:080047AE mov [esi+14h], eax .text:080047B1 mov [esp+40h+var_28], edx .text:080047B5 mov eax, edx .text:080047B7 mov [esi+18h], eax .text:080047BA lea edx, [edx+ebx-1] .text:080047BE mov [esp+40h+var_2C], edx .text:080047C2 mov eax, edx .text:080047C4 xor edx, edx .text:080047C6 div [esp+40h+var_28] .text:080047CA mov [esp+40h+var_2C], eax .text:080047CE xor edx, edx .text:080047D0 mov eax, [esp+40h+var_2C] .text:080047D4 mov dx, [esi+1Ch] .text:080047D8 mov [esi+10h], ax .text:080047DC mov [esp+40h+var_2C], edx .text:080047E0 xor eax, eax .text:080047E2 mov ax, [esi+1Eh] .text:080047E6 shr ebx, cl .text:080047E8 mov [esp+40h+var_28], eax .text:080047EC mov edx, eax .text:080047EE sub [esp+40h+var_2C], edx .text:080047F2 add esp, 4 .text:080047F5 xor ecx, ecx .text:080047F7 mov cx, bx .text:080047FA cmp [esp+3Ch+var_2C], ecx .text:080047FE jge short loc_0_800480C .text:08004800 mov eax, 17h .text:08004805 jmp loc_0_8004AA3 .text:08004805 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800480A align 4 .text:0800480C .text:0800480C loc_0_800480C: ; CODE XREF: mountNFTL+1FAj .text:0800480C push esi .text:0800480D call initTables .text:08004812 mov ecx, eax .text:08004814 add esp, 4 .text:08004817 test ecx, ecx .text:08004819 jnz loc_0_8004AA3 .text:0800481F mov [esi], ecx .text:08004821 push 2 .text:08004823 xor eax, eax .text:08004825 mov ax, [esi+1Ch] .text:08004829 push eax .text:0800482A mov eax, [esi+2Ch] .text:0800482D push eax .text:0800482E xor eax, eax .text:08004830 mov ax, [esi+4] .text:08004834 push eax .text:08004835 push esi .text:08004836 call unitBaseAddress .text:0800483B add esp, 8 .text:0800483E add eax, 200h .text:08004843 push eax .text:08004844 lea eax, [esi+5Ch] .text:08004847 push eax .text:08004848 mov eax, [esi+80h] .text:0800484E call eax .text:08004850 mov edi, eax .text:08004852 add esp, 14h .text:08004855 test edi, edi .text:08004857 jnz loc_0_8004A84 .text:0800485D mov ebx, edi .text:0800485F cmp [esi+10h], bx .text:08004863 jbe short loc_0_800487D .text:08004865 lea esi, [esi+0] .text:08004868 .text:08004868 loc_0_8004868: ; CODE XREF: mountNFTL+277j .text:08004868 xor edx, edx .text:0800486A mov dx, bx .text:0800486D mov eax, [esi+30h] .text:08004870 inc ebx .text:08004871 mov word ptr [eax+edx*2], 0FFFFh .text:08004877 cmp [esi+10h], bx .text:0800487B ja short loc_0_8004868 .text:0800487D .text:0800487D loc_0_800487D: ; CODE XREF: mountNFTL+25Fj .text:0800487D xor ebx, ebx .text:0800487F cmp [esi+1Ch], bx .text:08004883 jbe short loc_0_80048C8 .text:08004885 lea esi, [esi+0] .text:08004888 .text:08004888 loc_0_8004888: ; CODE XREF: mountNFTL+2C2j .text:08004888 cmp [esi+1Eh], bx .text:0800488C ja short loc_0_80048A8 .text:0800488E cmp [esi+4], bx .text:08004892 jz short loc_0_80048A8 .text:08004894 cmp [esi+6], bx .text:08004898 jz short loc_0_80048A8 .text:0800489A mov eax, [esi+2Ch] .text:0800489D xor edx, edx .text:0800489F mov dx, bx .text:080048A2 cmp byte ptr [edx+eax], 0FFh .text:080048A6 jz short loc_0_80048C0 .text:080048A8 .text:080048A8 loc_0_80048A8: ; CODE XREF: mountNFTL+288j .text:080048A8 ; mountNFTL+28Ej ... .text:080048A8 mov ecx, [esi+2Ch] .text:080048AB xor edi, edi .text:080048AD mov di, bx .text:080048B0 cmp byte ptr [edi+ecx], 0FFh .text:080048B4 jz short loc_0_80048BC .text:080048B6 mov byte ptr [edi+ecx], 6Bh .text:080048BA jmp short loc_0_80048C0 .text:080048BC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080048BC .text:080048BC loc_0_80048BC: ; CODE XREF: mountNFTL+2B0j .text:080048BC mov byte ptr [edi+ecx], 6Ah .text:080048C0 .text:080048C0 loc_0_80048C0: ; CODE XREF: mountNFTL+2A2j .text:080048C0 ; mountNFTL+2B6j .text:080048C0 inc bx .text:080048C2 cmp [esi+1Ch], bx .text:080048C6 ja short loc_0_8004888 .text:080048C8 .text:080048C8 loc_0_80048C8: ; CODE XREF: mountNFTL+27Fj .text:080048C8 xor ebx, ebx .text:080048CA cmp [esi+1Ch], bx .text:080048CE jbe short loc_0_80048FD .text:080048D0 .text:080048D0 loc_0_80048D0: ; CODE XREF: mountNFTL+2F7j .text:080048D0 xor ecx, ecx .text:080048D2 mov eax, [esi+2Ch] .text:080048D5 mov cx, bx .text:080048D8 mov al, [ecx+eax] .text:080048DB add al, 96h .text:080048DD cmp al, 1 .text:080048DF jbe short loc_0_80048F5 .text:080048E1 push ecx .text:080048E2 push esi .text:080048E3 call mountUnit .text:080048E8 mov edi, eax .text:080048EA add esp, 8 .text:080048ED test edi, edi .text:080048EF jnz loc_0_8004A84 .text:080048F5 .text:080048F5 loc_0_80048F5: ; CODE XREF: mountNFTL+2DBj .text:080048F5 inc bx .text:080048F7 cmp [esi+1Ch], bx .text:080048FB ja short loc_0_80048D0 .text:080048FD .text:080048FD loc_0_80048FD: ; CODE XREF: mountNFTL+2CAj .text:080048FD mov word ptr [esi+8], 0 .text:08004903 mov bx, [esi+1Eh] .text:08004907 cmp [esi+1Ch], bx .text:0800490B jbe short loc_0_800494D .text:0800490D lea esi, [esi+0] .text:08004910 .text:08004910 loc_0_8004910: ; CODE XREF: mountNFTL+347j .text:08004910 xor ecx, ecx .text:08004912 mov cx, bx .text:08004915 mov eax, [esi+2Ch] .text:08004918 add eax, ecx .text:0800491A mov [esp+3Ch+var_2C], eax .text:0800491E mov dl, [eax] .text:08004920 mov edi, edx .text:08004922 cmp dl, 10h .text:08004925 jz short loc_0_800492C .text:08004927 cmp dl, 90h .text:0800492A jnz short loc_0_8004938 .text:0800492C .text:0800492C loc_0_800492C: ; CODE XREF: mountNFTL+321j .text:0800492C push ecx .text:0800492D push esi .text:0800492E call formatChain .text:08004933 add esp, 8 .text:08004936 jmp short loc_0_8004945 .text:08004938 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004938 .text:08004938 loc_0_8004938: ; CODE XREF: mountNFTL+326j .text:08004938 mov eax, edi .text:0800493A cmp al, 0EFh .text:0800493C jnz short loc_0_8004945 .text:0800493E mov edx, [esp+3Ch+var_2C] .text:08004942 mov byte ptr [edx], 0FFh .text:08004945 .text:08004945 loc_0_8004945: ; CODE XREF: mountNFTL+332j .text:08004945 ; mountNFTL+338j .text:08004945 inc bx .text:08004947 cmp [esi+1Ch], bx .text:0800494B ja short loc_0_8004910 .text:0800494D .text:0800494D loc_0_800494D: ; CODE XREF: mountNFTL+307j .text:0800494D mov word ptr [esi+8], 0 .text:08004953 mov bx, [esi+1Eh] .text:08004957 mov di, [esi+1Ch] .text:0800495B cmp bx, di .text:0800495E jnb short loc_0_800497A .text:08004960 mov ecx, [esi+2Ch] .text:08004963 nop .text:08004964 .text:08004964 loc_0_8004964: ; CODE XREF: mountNFTL+374j .text:08004964 xor eax, eax .text:08004966 mov ax, bx .text:08004969 cmp byte ptr [eax+ecx], 0FFh .text:0800496D jnz short loc_0_8004973 .text:0800496F inc word ptr [esi+8] .text:08004973 .text:08004973 loc_0_8004973: ; CODE XREF: mountNFTL+369j .text:08004973 inc bx .text:08004975 cmp bx, di .text:08004978 jb short loc_0_8004964 .text:0800497A .text:0800497A loc_0_800497A: ; CODE XREF: mountNFTL+35Aj .text:0800497A mov ax, [esi+1Eh] .text:0800497E mov dword ptr [esi+50h], 0 .text:08004985 mov dword ptr [esi+4Ch], 0 .text:0800498C mov dword ptr [esi+48h], 0 .text:08004993 mov dword ptr [esi+58h], 0 .text:0800499A mov dword ptr [esi+54h], 0 .text:080049A1 mov [esi+28h], ax .text:080049A5 mov [ebp+0], esi .text:080049A8 mov dword ptr [ebp+4], offset mapSector .text:080049AF mov dword ptr [ebp+8], offset writeSector .text:080049B6 mov dword ptr [ebp+14h], offset deleteSector .text:080049BD mov dword ptr [ebp+20h], offset defragment .text:080049C4 mov dword ptr [ebp+24h], offset sectorsInVolume .text:080049CB mov dword ptr [ebp+18h], offset tlSetBusy .text:080049D2 mov dword ptr [ebp+1Ch], offset dismountNFTL .text:080049D9 mov dword ptr [ebp+0Ch], 0 .text:080049E0 mov dword ptr [ebp+10h], 0 .text:080049E7 push offset aDebugFinishe_0 ; "Debug: finished NFTL mount.\n" .text:080049EC call flprintk .text:080049F1 xor eax, eax .text:080049F3 mov ax, [esi+1Ch] .text:080049F7 shl eax, 2 .text:080049FA push eax .text:080049FB call flkmalloc .text:08004A00 mov [esi+34h], eax .text:08004A03 add esp, 8 .text:08004A06 test eax, eax .text:08004A08 jz short loc_0_8004A38 .text:08004A0A xor ebx, ebx .text:08004A0C cmp [esi+1Ch], bx .text:08004A10 jbe short loc_0_8004A45 .text:08004A12 mov esi, esi .text:08004A14 .text:08004A14 loc_0_8004A14: ; CODE XREF: mountNFTL+42Dj .text:08004A14 xor eax, eax .text:08004A16 mov edx, [esi+34h] .text:08004A19 mov ax, bx .text:08004A1C mov word ptr [edx+eax*4], 0DEADh .text:08004A22 mov edx, [esi+34h] .text:08004A25 inc ebx .text:08004A26 mov word ptr [edx+eax*4+2], 0DEADh .text:08004A2D cmp [esi+1Ch], bx .text:08004A31 ja short loc_0_8004A14 .text:08004A33 jmp short loc_0_8004A45 .text:08004A33 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004A35 align 4 .text:08004A38 .text:08004A38 loc_0_8004A38: ; CODE XREF: mountNFTL+404j .text:08004A38 push offset aDebugNftlRunsW ; "Debug: NFTL runs without U-cache\n" .text:08004A3D call flprintk .text:08004A42 add esp, 4 .text:08004A45 .text:08004A45 loc_0_8004A45: ; CODE XREF: mountNFTL+40Cj .text:08004A45 ; mountNFTL+42Fj .text:08004A45 xor eax, eax .text:08004A47 mov ecx, [esi+20h] .text:08004A4A mov ax, [esi+1Ch] .text:08004A4E add ecx, 0FFFFFFF5h .text:08004A51 shl eax, cl .text:08004A53 push eax .text:08004A54 call flkmalloc .text:08004A59 mov ebx, eax .text:08004A5B add esp, 4 .text:08004A5E mov [esi+38h], ebx .text:08004A61 test ebx, ebx .text:08004A63 jz short loc_0_8004A94 .text:08004A65 xor eax, eax .text:08004A67 mov ecx, [esi+20h] .text:08004A6A mov ax, [esi+1Ch] .text:08004A6E add ecx, 0FFFFFFF5h .text:08004A71 shl eax, cl .text:08004A73 push eax .text:08004A74 push 55h .text:08004A76 push ebx .text:08004A77 call flmemset .text:08004A7C add esp, 0Ch .text:08004A7F jmp short loc_0_8004AA1 .text:08004A7F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004A81 align 4 .text:08004A84 .text:08004A84 loc_0_8004A84: ; CODE XREF: mountNFTL+253j .text:08004A84 ; mountNFTL+2EBj .text:08004A84 push esi .text:08004A85 call dismountNFTL .text:08004A8A mov eax, edi .text:08004A8C add esp, 4 .text:08004A8F jmp short loc_0_8004AA3 .text:08004A8F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004A91 align 4 .text:08004A94 .text:08004A94 loc_0_8004A94: ; CODE XREF: mountNFTL+45Fj .text:08004A94 push offset aDebugNftlRun_0 ; "Debug: NFTL runs without S-cache\n" .text:08004A99 call flprintk .text:08004A9E add esp, 4 .text:08004AA1 .text:08004AA1 loc_0_8004AA1: ; CODE XREF: mountNFTL+47Bj .text:08004AA1 xor eax, eax .text:08004AA3 .text:08004AA3 loc_0_8004AA3: ; CODE XREF: mountNFTL+54j .text:08004AA3 ; mountNFTL+E7j ... .text:08004AA3 pop ebx .text:08004AA4 pop esi .text:08004AA5 pop edi .text:08004AA6 pop ebp .text:08004AA7 add esp, 2Ch .text:08004AAA retn .text:08004AAA mountNFTL endp .text:08004AAA .text:08004AAA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004AAB align 4 .text:08004AAC .text:08004AAC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004AAC .text:08004AAC .text:08004AAC public flRegisterNFTL .text:08004AAC flRegisterNFTL proc near ; CODE XREF: flRegisterComponents+21p .text:08004AAC mov ecx, ds:noOfTLs .text:08004AB2 test ecx, ecx .text:08004AB4 jle short loc_0_8004ABC .text:08004AB6 mov eax, 66h .text:08004ABB retn .text:08004ABC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004ABC .text:08004ABC loc_0_8004ABC: ; CODE XREF: flRegisterNFTL+8j .text:08004ABC lea edx, ds:0[ecx*8] .text:08004AC3 inc ecx .text:08004AC4 mov eax, offset tlTable .text:08004AC9 mov ds:noOfTLs, ecx .text:08004ACF mov dword ptr [edx+eax], offset mountNFTL .text:08004AD6 mov dword ptr [edx+eax+4], offset formatNFTL .text:08004ADE mov ecx, offset vols_0 .text:08004AE3 xor edx, edx .text:08004AE5 lea esi, [esi+0] .text:08004AE8 .text:08004AE8 loc_0_8004AE8: ; CODE XREF: flRegisterNFTL+56j .text:08004AE8 lea eax, [edx+edx*8] .text:08004AEB lea eax, [edx+eax*4] .text:08004AEE shl eax, 2 .text:08004AF1 mov dword ptr [eax+ecx+2Ch], 0 .text:08004AF9 mov dword ptr [eax+ecx+30h], 0 .text:08004B01 inc edx .text:08004B02 jz short loc_0_8004AE8 .text:08004B04 xor eax, eax .text:08004B06 retn .text:08004B06 flRegisterNFTL endp .text:08004B06 .text:08004B06 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004B07 align 4 .text:08004B08 .text:08004B08 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004B08 .text:08004B08 .text:08004B08 public dismountVolume .text:08004B08 dismountVolume proc near ; CODE XREF: absMountVolume+6p .text:08004B08 ; mountVolume+6p ... .text:08004B08 .text:08004B08 arg_0 = dword ptr 8 .text:08004B08 .text:08004B08 push ebx ; Alternative name is 'gcc2_compiled.' .text:08004B09 mov ebx, [esp+arg_0] .text:08004B0D test byte ptr [ebx], 8 .text:08004B10 jz short loc_0_8004B21 .text:08004B12 mov eax, [ebx+6Ch] .text:08004B15 push eax .text:08004B16 mov eax, [ebx+88h] .text:08004B1C call eax .text:08004B1E add esp, 4 .text:08004B21 .text:08004B21 loc_0_8004B21: ; CODE XREF: dismountVolume+8j .text:08004B21 mov byte ptr [ebx], 0 .text:08004B24 xor eax, eax .text:08004B26 pop ebx .text:08004B27 retn .text:08004B27 dismountVolume endp .text:08004B27 .text:08004B28 .text:08004B28 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004B28 .text:08004B28 .text:08004B28 public setBusy .text:08004B28 setBusy proc near ; CODE XREF: bdCall+4Ap .text:08004B28 ; bdCall+290p ... .text:08004B28 .text:08004B28 arg_0 = dword ptr 10h .text:08004B28 arg_4 = dword ptr 14h .text:08004B28 .text:08004B28 push edi .text:08004B29 push esi .text:08004B2A push ebx .text:08004B2B xor esi, esi .text:08004B2D mov ebx, [esp+arg_0] .text:08004B31 mov edi, [esp+arg_4] .text:08004B35 cmp edi, 1 .text:08004B38 jnz short loc_0_8004B8C .text:08004B3A lea eax, [ebx+34h] .text:08004B3D push eax .text:08004B3E call flTakeMutex .text:08004B43 add esp, 4 .text:08004B46 test eax, eax .text:08004B48 jnz short loc_0_8004B54 .text:08004B4A mov eax, 9 .text:08004B4F jmp short loc_0_8004BCB .text:08004B4F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004B51 align 4 .text:08004B54 .text:08004B54 loc_0_8004B54: ; CODE XREF: setBusy+20j .text:08004B54 push edi .text:08004B55 mov eax, [ebx+98h] .text:08004B5B push eax .text:08004B5C call flSocketSetBusy .text:08004B61 mov eax, [ebx+98h] .text:08004B67 push eax .text:08004B68 call flNeedVcc .text:08004B6D add esp, 0Ch .text:08004B70 test byte ptr [ebx], 8 .text:08004B73 jz short loc_0_8004BC9 .text:08004B75 push edi .text:08004B76 mov eax, [ebx+6Ch] .text:08004B79 push eax .text:08004B7A mov eax, [ebx+84h] .text:08004B80 call eax .text:08004B82 mov esi, eax .text:08004B84 add esp, 8 .text:08004B87 jmp short loc_0_8004BC9 .text:08004B87 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004B89 align 4 .text:08004B8C .text:08004B8C loc_0_8004B8C: ; CODE XREF: setBusy+10j .text:08004B8C test byte ptr [ebx], 8 .text:08004B8F jz short loc_0_8004BA3 .text:08004B91 push esi .text:08004B92 mov eax, [ebx+6Ch] .text:08004B95 push eax .text:08004B96 mov eax, [ebx+84h] .text:08004B9C call eax .text:08004B9E mov esi, eax .text:08004BA0 add esp, 8 .text:08004BA3 .text:08004BA3 loc_0_8004BA3: ; CODE XREF: setBusy+67j .text:08004BA3 mov eax, [ebx+98h] .text:08004BA9 push eax .text:08004BAA call flDontNeedVcc .text:08004BAF push 0 .text:08004BB1 mov eax, [ebx+98h] .text:08004BB7 push eax .text:08004BB8 call flSocketSetBusy .text:08004BBD lea eax, [ebx+34h] .text:08004BC0 push eax .text:08004BC1 call flFreeMutex .text:08004BC6 add esp, 10h .text:08004BC9 .text:08004BC9 loc_0_8004BC9: ; CODE XREF: setBusy+4Bj .text:08004BC9 ; setBusy+5Fj .text:08004BC9 mov eax, esi .text:08004BCB .text:08004BCB loc_0_8004BCB: ; CODE XREF: setBusy+27j .text:08004BCB pop ebx .text:08004BCC pop esi .text:08004BCD pop edi .text:08004BCE retn .text:08004BCE setBusy endp .text:08004BCE .text:08004BCE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004BCF align 4 .text:08004BD0 .text:08004BD0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004BD0 .text:08004BD0 .text:08004BD0 public findSector .text:08004BD0 findSector proc near ; CODE XREF: absRead+2Ap .text:08004BD0 ; replaceFATsector+11p ... .text:08004BD0 .text:08004BD0 arg_0 = dword ptr 4 .text:08004BD0 arg_4 = dword ptr 8 .text:08004BD0 .text:08004BD0 mov edx, [esp+arg_0] .text:08004BD4 mov eax, [esp+arg_4] .text:08004BD8 push 0 .text:08004BDA push eax .text:08004BDB mov eax, [edx+6Ch] .text:08004BDE push eax .text:08004BDF mov eax, [edx+70h] .text:08004BE2 call eax .text:08004BE4 add esp, 0Ch .text:08004BE7 retn .text:08004BE7 findSector endp .text:08004BE7 .text:08004BE8 .text:08004BE8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004BE8 .text:08004BE8 .text:08004BE8 absMountVolume proc near ; CODE XREF: formatVolume+98p .text:08004BE8 ; bdCall+205p .text:08004BE8 .text:08004BE8 arg_0 = dword ptr 8 .text:08004BE8 .text:08004BE8 push ebx .text:08004BE9 mov ebx, [esp+arg_0] .text:08004BED push ebx .text:08004BEE call dismountVolume .text:08004BF3 add esp, 4 .text:08004BF6 test eax, eax .text:08004BF8 jnz short loc_0_8004C29 .text:08004BFA push 1 .text:08004BFC lea eax, [ebx+6Ch] .text:08004BFF push eax .text:08004C00 mov eax, ebx .text:08004C02 sub eax, 0 .text:08004C07 imul eax, 96F96F97h .text:08004C0D sar eax, 2 .text:08004C10 push eax .text:08004C11 call flMount .text:08004C16 add esp, 0Ch .text:08004C19 test eax, eax .text:08004C1B jnz short loc_0_8004C29 .text:08004C1D mov [ebx+10h], eax .text:08004C20 mov [ebx+18h], eax .text:08004C23 mov [ebx+14h], eax .text:08004C26 or byte ptr [ebx], 8 .text:08004C29 .text:08004C29 loc_0_8004C29: ; CODE XREF: absMountVolume+10j .text:08004C29 ; absMountVolume+33j .text:08004C29 pop ebx .text:08004C2A retn .text:08004C2A absMountVolume endp .text:08004C2A .text:08004C2A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004C2B align 4 .text:08004C2C .text:08004C2C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004C2C .text:08004C2C .text:08004C2C mountVolume proc near ; CODE XREF: bdCall+1B5p .text:08004C2C .text:08004C2C arg_0 = dword ptr 8 .text:08004C2C .text:08004C2C push ebx .text:08004C2D mov ebx, [esp+arg_0] .text:08004C31 push ebx .text:08004C32 call dismountVolume .text:08004C37 add esp, 4 .text:08004C3A test eax, eax .text:08004C3C jnz short loc_0_8004C6D .text:08004C3E push 1 .text:08004C40 lea eax, [ebx+6Ch] .text:08004C43 push eax .text:08004C44 mov eax, ebx .text:08004C46 sub eax, 0 .text:08004C4B imul eax, 96F96F97h .text:08004C51 sar eax, 2 .text:08004C54 push eax .text:08004C55 call flMount .text:08004C5A add esp, 0Ch .text:08004C5D test eax, eax .text:08004C5F jnz short loc_0_8004C6D .text:08004C61 mov [ebx+10h], eax .text:08004C64 mov [ebx+18h], eax .text:08004C67 mov [ebx+14h], eax .text:08004C6A or byte ptr [ebx], 0Ah .text:08004C6D .text:08004C6D loc_0_8004C6D: ; CODE XREF: mountVolume+10j .text:08004C6D ; mountVolume+33j .text:08004C6D pop ebx .text:08004C6E retn .text:08004C6E mountVolume endp .text:08004C6E .text:08004C6E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004C6F align 4 .text:08004C70 .text:08004C70 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004C70 .text:08004C70 .text:08004C70 defragmentVolume proc near ; CODE XREF: bdCall+1E2p .text:08004C70 .text:08004C70 arg_0 = dword ptr 4 .text:08004C70 arg_4 = dword ptr 8 .text:08004C70 .text:08004C70 mov eax, [esp+arg_4] .text:08004C74 add eax, 10h .text:08004C77 mov edx, [esp+arg_0] .text:08004C7B push eax .text:08004C7C mov eax, [edx+6Ch] .text:08004C7F push eax .text:08004C80 mov eax, [edx+8Ch] .text:08004C86 call eax .text:08004C88 add esp, 8 .text:08004C8B retn .text:08004C8B defragmentVolume endp .text:08004C8B .text:08004C8C .text:08004C8C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004C8C .text:08004C8C .text:08004C8C formatVolume proc near ; CODE XREF: bdCall+1EEp .text:08004C8C .text:08004C8C var_4 = dword ptr -4 .text:08004C8C arg_0 = dword ptr 4 .text:08004C8C arg_4 = dword ptr 8 .text:08004C8C .text:08004C8C sub esp, 4 .text:08004C8F push ebp .text:08004C90 push edi .text:08004C91 push esi .text:08004C92 push ebx .text:08004C93 mov eax, [esp+14h+arg_0] .text:08004C97 mov edx, [esp+14h+arg_4] .text:08004C9B sub eax, 0 .text:08004CA0 mov edi, [edx+0Ch] .text:08004CA3 imul ebx, eax, 96F96F97h .text:08004CA9 sar ebx, 2 .text:08004CAC mov edx, [esp+14h+arg_0] .text:08004CB0 mov [esp+14h+var_4], ebx .text:08004CB4 push edx .text:08004CB5 xor esi, esi .text:08004CB7 call dismountVolume .text:08004CBC add esp, 4 .text:08004CBF test eax, eax .text:08004CC1 jnz loc_0_8004D51 .text:08004CC7 mov edx, [esp+14h+arg_4] .text:08004CCB mov ebp, [edx+4] .text:08004CCE and ebp, 1 .text:08004CD1 jz short loc_0_8004CDC .text:08004CD3 push edi .text:08004CD4 push ebx .text:08004CD5 call flFormat .text:08004CDA jmp short loc_0_8004D14 .text:08004CDC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004CDC .text:08004CDC loc_0_8004CDC: ; CODE XREF: formatVolume+45j .text:08004CDC push esi .text:08004CDD mov eax, [esp+18h+arg_0] .text:08004CE1 add eax, 6Ch .text:08004CE4 push eax .text:08004CE5 push ebx .text:08004CE6 call flMount .text:08004CEB mov esi, 1 .text:08004CF0 add esp, 0Ch .text:08004CF3 cmp eax, 1Ah .text:08004CF6 jz short loc_0_8004CFD .text:08004CF8 cmp eax, 17h .text:08004CFB jnz short loc_0_8004D17 .text:08004CFD .text:08004CFD loc_0_8004CFD: ; CODE XREF: formatVolume+6Aj .text:08004CFD mov edx, [esp+14h+arg_4] .text:08004D01 test byte ptr [edx+4], 2 .text:08004D05 jz short loc_0_8004D17 .text:08004D07 push edi .text:08004D08 mov edx, [esp+18h+var_4] .text:08004D0C push edx .text:08004D0D call flFormat .text:08004D12 mov esi, ebp .text:08004D14 .text:08004D14 loc_0_8004D14: ; CODE XREF: formatVolume+4Ej .text:08004D14 add esp, 8 .text:08004D17 .text:08004D17 loc_0_8004D17: ; CODE XREF: formatVolume+6Fj .text:08004D17 ; formatVolume+79j .text:08004D17 test eax, eax .text:08004D19 jnz short loc_0_8004D51 .text:08004D1B test esi, esi .text:08004D1D jnz short loc_0_8004D30 .text:08004D1F mov edx, [esp+14h+arg_0] .text:08004D23 push edx .text:08004D24 call absMountVolume .text:08004D29 add esp, 4 .text:08004D2C test eax, eax .text:08004D2E jnz short loc_0_8004D51 .text:08004D30 .text:08004D30 loc_0_8004D30: ; CODE XREF: formatVolume+91j .text:08004D30 mov edx, [esp+14h+arg_4] .text:08004D34 test byte ptr [edx+4], 8 .text:08004D38 jnz short loc_0_8004D4F .text:08004D3A push edi .text:08004D3B mov eax, [esp+18h+arg_0] .text:08004D3F add eax, 6Ch .text:08004D42 push eax .text:08004D43 call flDosFormat .text:08004D48 add esp, 8 .text:08004D4B test eax, eax .text:08004D4D jnz short loc_0_8004D51 .text:08004D4F .text:08004D4F loc_0_8004D4F: ; CODE XREF: formatVolume+ACj .text:08004D4F xor eax, eax .text:08004D51 .text:08004D51 loc_0_8004D51: ; CODE XREF: formatVolume+35j .text:08004D51 ; formatVolume+8Dj ... .text:08004D51 pop ebx .text:08004D52 pop esi .text:08004D53 pop edi .text:08004D54 pop ebp .text:08004D55 add esp, 4 .text:08004D58 retn .text:08004D58 formatVolume endp .text:08004D58 .text:08004D58 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004D59 align 4 .text:08004D5C .text:08004D5C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004D5C .text:08004D5C .text:08004D5C sectorsInVolume_0 proc near ; CODE XREF: bdCall+1FAp .text:08004D5C .text:08004D5C arg_0 = dword ptr 8 .text:08004D5C arg_4 = dword ptr 0Ch .text:08004D5C .text:08004D5C push ebx .text:08004D5D mov edx, [esp+arg_0] .text:08004D61 mov eax, [edx+6Ch] .text:08004D64 mov ebx, [esp+arg_4] .text:08004D68 push eax .text:08004D69 mov eax, [edx+90h] .text:08004D6F call eax .text:08004D71 mov [ebx+10h], eax .text:08004D74 add esp, 4 .text:08004D77 xor eax, eax .text:08004D79 pop ebx .text:08004D7A retn .text:08004D7A sectorsInVolume_0 endp .text:08004D7A .text:08004D7A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004D7B align 4 .text:08004D7C .text:08004D7C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004D7C .text:08004D7C .text:08004D7C absRead proc near ; CODE XREF: bdCall+216p .text:08004D7C .text:08004D7C arg_0 = dword ptr 14h .text:08004D7C arg_4 = dword ptr 18h .text:08004D7C .text:08004D7C push ebp .text:08004D7D push edi .text:08004D7E push esi .text:08004D7F push ebx .text:08004D80 mov edi, [esp+arg_4] .text:08004D84 mov edx, [esp+arg_0] .text:08004D88 mov ebx, [edi+0Ch] .text:08004D8B mov esi, [edi+10h] .text:08004D8E mov ebp, [edi+14h] .text:08004D91 add esi, [edx+10h] .text:08004D94 mov dword ptr [edi+14h], 0 .text:08004D9B test ebp, ebp .text:08004D9D jz short loc_0_8004DF5 .text:08004D9F nop .text:08004DA0 .text:08004DA0 loc_0_8004DA0: ; CODE XREF: absRead+77j .text:08004DA0 push esi .text:08004DA1 mov edx, [esp+4+arg_0] .text:08004DA5 push edx .text:08004DA6 call findSector .text:08004DAB add esp, 8 .text:08004DAE test eax, eax .text:08004DB0 jz short loc_0_8004DD0 .text:08004DB2 cmp eax, offset dataErrorObject .text:08004DB7 jnz short loc_0_8004DC0 .text:08004DB9 mov eax, 19h .text:08004DBE jmp short loc_0_8004DF7 .text:08004DC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004DC0 .text:08004DC0 loc_0_8004DC0: ; CODE XREF: absRead+3Bj .text:08004DC0 push 200h .text:08004DC5 push eax .text:08004DC6 push ebx .text:08004DC7 call flmemcpy .text:08004DCC jmp short loc_0_8004DDC .text:08004DCC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004DCE align 4 .text:08004DD0 .text:08004DD0 loc_0_8004DD0: ; CODE XREF: absRead+34j .text:08004DD0 push 200h .text:08004DD5 push eax .text:08004DD6 push ebx .text:08004DD7 call flmemset .text:08004DDC .text:08004DDC loc_0_8004DDC: ; CODE XREF: absRead+50j .text:08004DDC add esp, 0Ch .text:08004DDF mov eax, [edi+14h] .text:08004DE2 inc esi .text:08004DE3 lea edx, [eax+1] .text:08004DE6 add ebx, 200h .text:08004DEC mov [edi+14h], edx .text:08004DEF mov eax, edx .text:08004DF1 cmp eax, ebp .text:08004DF3 jb short loc_0_8004DA0 .text:08004DF5 .text:08004DF5 loc_0_8004DF5: ; CODE XREF: absRead+21j .text:08004DF5 xor eax, eax .text:08004DF7 .text:08004DF7 loc_0_8004DF7: ; CODE XREF: absRead+42j .text:08004DF7 pop ebx .text:08004DF8 pop esi .text:08004DF9 pop edi .text:08004DFA pop ebp .text:08004DFB retn .text:08004DFB absRead endp .text:08004DFB .text:08004DFC .text:08004DFC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004DFC .text:08004DFC .text:08004DFC public replaceFATsector .text:08004DFC replaceFATsector proc near ; CODE XREF: absWrite+41p .text:08004DFC .text:08004DFC var_8 = dword ptr -8 .text:08004DFC var_4 = dword ptr -4 .text:08004DFC arg_0 = dword ptr 4 .text:08004DFC arg_4 = dword ptr 8 .text:08004DFC arg_8 = dword ptr 0Ch .text:08004DFC .text:08004DFC sub esp, 0Ch .text:08004DFF push ebp .text:08004E00 push edi .text:08004E01 push esi .text:08004E02 push ebx .text:08004E03 mov eax, [esp+1Ch+arg_4] .text:08004E07 mov ebp, [esp+1Ch+arg_0] .text:08004E0B push eax .text:08004E0C push ebp .text:08004E0D call findSector .text:08004E12 mov ecx, eax .text:08004E14 add esp, 8 .text:08004E17 test ecx, ecx .text:08004E19 jz loc_0_8004F3F .text:08004E1F cmp ecx, offset dataErrorObject .text:08004E25 jz loc_0_8004F3F .text:08004E2B mov [esp+1Ch+var_8], 4 .text:08004E33 test byte ptr [ebp+0], 4 .text:08004E37 jz short loc_0_8004E41 .text:08004E39 mov [esp+1Ch+var_8], 3 .text:08004E41 .text:08004E41 loc_0_8004E41: ; CODE XREF: replaceFATsector+3Bj .text:08004E41 cmp [esp+1Ch+var_8], 3 .text:08004E46 jnz short loc_0_8004E6C .text:08004E48 mov eax, [esp+1Ch+arg_4] .text:08004E4C sub eax, [ebp+14h] .text:08004E4F shl eax, 0Ah .text:08004E52 mov edx, 0AAAAAAABh .text:08004E57 add eax, 2 .text:08004E5A mul edx .text:08004E5C shr edx, 1 .text:08004E5F jmp short loc_0_8004E76 .text:08004E5F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004E61 align 4 .text:08004E64 .text:08004E64 loc_0_8004E64: ; CODE XREF: replaceFATsector+116j .text:08004E64 mov eax, edx .text:08004E66 jmp loc_0_8004F41 .text:08004E66 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004E6B align 4 .text:08004E6C .text:08004E6C loc_0_8004E6C: ; CODE XREF: replaceFATsector+4Aj .text:08004E6C mov edx, [esp+1Ch+arg_4] .text:08004E70 sub edx, [ebp+14h] .text:08004E73 shl edx, 8 .text:08004E76 .text:08004E76 loc_0_8004E76: ; CODE XREF: replaceFATsector+63j .text:08004E76 lea eax, [edx-2] .text:08004E79 mov [esp+1Ch+var_4], eax .text:08004E7D mov edi, [esp+1Ch+var_8] .text:08004E81 imul eax, [ebp+4] .text:08004E85 mov [esp+1Ch+var_4], eax .text:08004E89 imul edi, edx .text:08004E8C mov eax, [ebp+2Ch] .text:08004E8F and edi, 3FFh .text:08004E95 add [esp+1Ch+var_4], eax .text:08004E99 cmp edi, 3FDh .text:08004E9F ja loc_0_8004F3F .text:08004EA5 lea esi, [esi+0] .text:08004EA8 .text:08004EA8 loc_0_8004EA8: ; CODE XREF: replaceFATsector+13Dj .text:08004EA8 mov ebx, edi .text:08004EAA shr ebx, 1 .text:08004EAD lea eax, [ebx+ecx] .text:08004EB0 push eax .text:08004EB1 call fromUNAL .text:08004EB6 add ebx, [esp+20h+arg_8] .text:08004EBA mov esi, eax .text:08004EBC push ebx .text:08004EBD call fromUNAL .text:08004EC2 mov edx, eax .text:08004EC4 add esp, 8 .text:08004EC7 test edi, 1 .text:08004ECD jz short loc_0_8004EDC .text:08004ECF shr si, 4 .text:08004ED3 shr dx, 4 .text:08004ED7 jmp short loc_0_8004EEC .text:08004ED7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004ED9 align 4 .text:08004EDC .text:08004EDC loc_0_8004EDC: ; CODE XREF: replaceFATsector+D1j .text:08004EDC cmp [esp+1Ch+var_8], 3 .text:08004EE1 jnz short loc_0_8004EEC .text:08004EE3 and esi, 0FFFh .text:08004EE9 and dh, 0Fh .text:08004EEC .text:08004EEC loc_0_8004EEC: ; CODE XREF: replaceFATsector+DBj .text:08004EEC ; replaceFATsector+E5j .text:08004EEC test si, si .text:08004EEF jz short loc_0_8004F18 .text:08004EF1 test dx, dx .text:08004EF4 jnz short loc_0_8004F18 .text:08004EF6 mov eax, [ebp+4] .text:08004EF9 push eax .text:08004EFA mov eax, [esp+20h+var_4] .text:08004EFE push eax .text:08004EFF mov eax, [ebp+6Ch] .text:08004F02 push eax .text:08004F03 mov eax, [ebp+80h] .text:08004F09 call eax .text:08004F0B mov edx, eax .text:08004F0D add esp, 0Ch .text:08004F10 test edx, edx .text:08004F12 jnz loc_0_8004E64 .text:08004F18 .text:08004F18 loc_0_8004F18: ; CODE XREF: replaceFATsector+F3j .text:08004F18 ; replaceFATsector+F8j .text:08004F18 mov eax, [esp+1Ch+arg_4] .text:08004F1C push eax .text:08004F1D push ebp .text:08004F1E call findSector .text:08004F23 mov ecx, eax .text:08004F25 add esp, 8 .text:08004F28 mov eax, [ebp+4] .text:08004F2B add [esp+1Ch+var_4], eax .text:08004F2F add edi, [esp+1Ch+var_8] .text:08004F33 cmp edi, 3FDh .text:08004F39 jbe loc_0_8004EA8 .text:08004F3F .text:08004F3F loc_0_8004F3F: ; CODE XREF: replaceFATsector+1Dj .text:08004F3F ; replaceFATsector+29j ... .text:08004F3F xor eax, eax .text:08004F41 .text:08004F41 loc_0_8004F41: ; CODE XREF: replaceFATsector+6Aj .text:08004F41 pop ebx .text:08004F42 pop esi .text:08004F43 pop edi .text:08004F44 pop ebp .text:08004F45 add esp, 0Ch .text:08004F48 retn .text:08004F48 replaceFATsector endp .text:08004F48 .text:08004F48 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004F49 align 4 .text:08004F4C .text:08004F4C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08004F4C .text:08004F4C .text:08004F4C absWrite proc near ; CODE XREF: bdCall+222p .text:08004F4C .text:08004F4C arg_0 = dword ptr 14h .text:08004F4C arg_4 = dword ptr 18h .text:08004F4C .text:08004F4C push ebp .text:08004F4D push edi .text:08004F4E push esi .text:08004F4F push ebx .text:08004F50 mov edx, [esp+arg_4] .text:08004F54 mov ecx, [esp+arg_0] .text:08004F58 mov edi, [edx+0Ch] .text:08004F5B mov ebx, [edx+10h] .text:08004F5E mov ebp, [edx+14h] .text:08004F61 add ebx, [ecx+10h] .text:08004F64 cmp [ecx+18h], ebx .text:08004F67 jbe short loc_0_8004FB2 .text:08004F69 lea eax, [ebp+ebx+0] .text:08004F6D cmp [ecx+14h], eax .text:08004F70 jnb short loc_0_8004FB2 .text:08004F72 xor esi, esi .text:08004F74 cmp esi, ebp .text:08004F76 jnb short loc_0_8004FA1 .text:08004F78 .text:08004F78 loc_0_8004F78: ; CODE XREF: absWrite+53j .text:08004F78 mov edx, [esp+arg_0] .text:08004F7C cmp [edx+14h], ebx .text:08004F7F ja short loc_0_8004F95 .text:08004F81 cmp [edx+18h], ebx .text:08004F84 jbe short loc_0_8004F95 .text:08004F86 push edi .text:08004F87 push ebx .text:08004F88 mov ecx, [esp+8+arg_0] .text:08004F8C push ecx .text:08004F8D call replaceFATsector .text:08004F92 add esp, 0Ch .text:08004F95 .text:08004F95 loc_0_8004F95: ; CODE XREF: absWrite+33j .text:08004F95 ; absWrite+38j .text:08004F95 inc esi .text:08004F96 inc ebx .text:08004F97 add edi, 200h .text:08004F9D cmp esi, ebp .text:08004F9F jb short loc_0_8004F78 .text:08004FA1 .text:08004FA1 loc_0_8004FA1: ; CODE XREF: absWrite+2Aj .text:08004FA1 mov edx, [esp+arg_4] .text:08004FA5 mov ecx, [esp+arg_0] .text:08004FA9 mov ebx, [edx+10h] .text:08004FAC mov edi, [edx+0Ch] .text:08004FAF add ebx, [ecx+10h] .text:08004FB2 .text:08004FB2 loc_0_8004FB2: ; CODE XREF: absWrite+1Bj .text:08004FB2 ; absWrite+24j .text:08004FB2 mov edx, [esp+arg_4] .text:08004FB6 mov dword ptr [edx+14h], 0 .text:08004FBD test ebp, ebp .text:08004FBF jz short loc_0_8004FF8 .text:08004FC1 lea esi, [esi+0] .text:08004FC4 .text:08004FC4 loc_0_8004FC4: ; CODE XREF: absWrite+AAj .text:08004FC4 push edi .text:08004FC5 push ebx .text:08004FC6 mov ecx, [esp+8+arg_0] .text:08004FCA mov eax, [ecx+6Ch] .text:08004FCD push eax .text:08004FCE mov edx, [esp+0Ch+arg_0] .text:08004FD2 mov eax, [edx+74h] .text:08004FD5 call eax .text:08004FD7 add esp, 0Ch .text:08004FDA test eax, eax .text:08004FDC jnz short loc_0_8004FFA .text:08004FDE mov ecx, [esp+arg_4] .text:08004FE2 mov eax, [ecx+14h] .text:08004FE5 inc ebx .text:08004FE6 lea edx, [eax+1] .text:08004FE9 add edi, 200h .text:08004FEF mov [ecx+14h], edx .text:08004FF2 mov eax, edx .text:08004FF4 cmp eax, ebp .text:08004FF6 jb short loc_0_8004FC4 .text:08004FF8 .text:08004FF8 loc_0_8004FF8: ; CODE XREF: absWrite+73j .text:08004FF8 xor eax, eax .text:08004FFA .text:08004FFA loc_0_8004FFA: ; CODE XREF: absWrite+90j .text:08004FFA pop ebx .text:08004FFB pop esi .text:08004FFC pop edi .text:08004FFD pop ebp .text:08004FFE retn .text:08004FFE absWrite endp .text:08004FFE .text:08004FFE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08004FFF align 4 .text:08005000 .text:08005000 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005000 .text:08005000 .text:08005000 absAddress proc near ; CODE XREF: bdCall+22Ep .text:08005000 .text:08005000 var_4 = dword ptr -4 .text:08005000 arg_0 = dword ptr 4 .text:08005000 arg_4 = dword ptr 8 .text:08005000 .text:08005000 sub esp, 4 .text:08005003 push ebx .text:08005004 lea eax, [esp+8+var_4] .text:08005008 mov edx, [esp+8+arg_0] .text:0800500C mov ebx, [esp+8+arg_4] .text:08005010 push eax .text:08005011 mov eax, [ebx+10h] .text:08005014 push eax .text:08005015 mov eax, [edx+6Ch] .text:08005018 push eax .text:08005019 mov eax, [edx+70h] .text:0800501C call eax .text:0800501E add esp, 0Ch .text:08005021 test eax, eax .text:08005023 jz short loc_0_8005040 .text:08005025 cmp eax, offset dataErrorObject .text:0800502A jnz short loc_0_8005034 .text:0800502C mov eax, 19h .text:08005031 jmp short loc_0_8005045 .text:08005031 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005033 align 4 .text:08005034 .text:08005034 loc_0_8005034: ; CODE XREF: absAddress+2Aj .text:08005034 mov eax, [esp+8+var_4] .text:08005038 mov [ebx+14h], eax .text:0800503B xor eax, eax .text:0800503D jmp short loc_0_8005045 .text:0800503D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800503F align 4 .text:08005040 .text:08005040 loc_0_8005040: ; CODE XREF: absAddress+23j .text:08005040 mov eax, 1Bh .text:08005045 .text:08005045 loc_0_8005045: ; CODE XREF: absAddress+31j .text:08005045 ; absAddress+3Dj .text:08005045 pop ebx .text:08005046 add esp, 4 .text:08005049 retn .text:08005049 absAddress endp .text:08005049 .text:08005049 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800504A align 4 .text:0800504C .text:0800504C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800504C .text:0800504C .text:0800504C absDelete proc near ; CODE XREF: bdCall+23Ap .text:0800504C .text:0800504C arg_0 = dword ptr 4 .text:0800504C arg_4 = dword ptr 8 .text:0800504C .text:0800504C mov eax, [esp+arg_4] .text:08005050 mov edx, [esp+arg_0] .text:08005054 mov ecx, [eax+10h] .text:08005057 mov eax, [eax+14h] .text:0800505A add ecx, [edx+10h] .text:0800505D push eax .text:0800505E push ecx .text:0800505F mov eax, [edx+6Ch] .text:08005062 push eax .text:08005063 mov eax, [edx+80h] .text:08005069 call eax .text:0800506B add esp, 0Ch .text:0800506E retn .text:0800506E absDelete endp .text:0800506E .text:0800506E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800506F align 4 .text:08005070 .text:08005070 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005070 .text:08005070 .text:08005070 getBPB proc near ; CODE XREF: bdCall+246p .text:08005070 .text:08005070 arg_0 = dword ptr 14h .text:08005070 arg_4 = dword ptr 18h .text:08005070 .text:08005070 push ebp .text:08005071 push edi .text:08005072 push esi .text:08005073 push ebx .text:08005074 mov eax, [esp+arg_4] .text:08005078 mov ebx, [esp+arg_0] .text:0800507C mov ebp, [eax+0Ch] .text:0800507F mov eax, [ebx+10h] .text:08005082 push eax .text:08005083 push ebx .text:08005084 call findSector .text:08005089 mov esi, eax .text:0800508B add esp, 8 .text:0800508E test esi, esi .text:08005090 jz short loc_0_80050B3 .text:08005092 cmp esi, offset dataErrorObject .text:08005098 jz short loc_0_80050C3 .text:0800509A mov edi, ebp .text:0800509C cld .text:0800509D mov ecx, 9 .text:080050A2 repe movsd .text:080050A4 push 0 .text:080050A6 push ebx .text:080050A7 call findSector .text:080050AC add esp, 8 .text:080050AF test eax, eax .text:080050B1 jnz short loc_0_80050BC .text:080050B3 .text:080050B3 loc_0_80050B3: ; CODE XREF: getBPB+20j .text:080050B3 mov eax, 1Bh .text:080050B8 jmp short loc_0_80050F3 .text:080050B8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080050BA align 4 .text:080050BC .text:080050BC loc_0_80050BC: ; CODE XREF: getBPB+41j .text:080050BC cmp eax, offset dataErrorObject .text:080050C1 jnz short loc_0_80050CC .text:080050C3 .text:080050C3 loc_0_80050C3: ; CODE XREF: getBPB+28j .text:080050C3 mov eax, 19h .text:080050C8 jmp short loc_0_80050F3 .text:080050C8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080050CA align 4 .text:080050CC .text:080050CC loc_0_80050CC: ; CODE XREF: getBPB+51j .text:080050CC cmp word ptr [eax+1FEh], 0AA55h .text:080050D5 jnz short loc_0_80050F1 .text:080050D7 cmp byte ptr [eax+1C2h], 0 .text:080050DE jz short loc_0_80050F1 .text:080050E0 add eax, 1C6h .text:080050E5 push eax .text:080050E6 call fromUNALLONG .text:080050EB mov [ebp+1Ch], eax .text:080050EE add esp, 4 .text:080050F1 .text:080050F1 loc_0_80050F1: ; CODE XREF: getBPB+65j .text:080050F1 ; getBPB+6Ej .text:080050F1 xor eax, eax .text:080050F3 .text:080050F3 loc_0_80050F3: ; CODE XREF: getBPB+48j .text:080050F3 ; getBPB+58j .text:080050F3 pop ebx .text:080050F4 pop esi .text:080050F5 pop edi .text:080050F6 pop ebp .text:080050F7 retn .text:080050F7 getBPB endp .text:080050F7 .text:080050F8 .text:080050F8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080050F8 .text:080050F8 .text:080050F8 mountLowLevel proc near ; CODE XREF: bdCall+D9p .text:080050F8 .text:080050F8 arg_0 = dword ptr 10h .text:080050F8 .text:080050F8 push edi .text:080050F9 push esi .text:080050FA push ebx .text:080050FB mov esi, [esp+arg_0] .text:080050FF lea edi, [esi+38h] .text:08005102 push edi .text:08005103 mov eax, [esi+98h] .text:08005109 push eax .text:0800510A call flIdentifyFlash .text:0800510F mov ebx, eax .text:08005111 add esp, 8 .text:08005114 test ebx, ebx .text:08005116 jnz short loc_0_8005128 .text:08005118 push edi .text:08005119 mov eax, [esi+68h] .text:0800511C call eax .text:0800511E or byte ptr [esi], 1 .text:08005121 mov eax, ebx .text:08005123 add esp, 4 .text:08005126 jmp short loc_0_800512A .text:08005128 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005128 .text:08005128 loc_0_8005128: ; CODE XREF: mountLowLevel+1Ej .text:08005128 mov eax, ebx .text:0800512A .text:0800512A loc_0_800512A: ; CODE XREF: mountLowLevel+2Ej .text:0800512A pop ebx .text:0800512B pop esi .text:0800512C pop edi .text:0800512D retn .text:0800512D mountLowLevel endp .text:0800512D .text:0800512D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800512E align 4 .text:08005130 .text:08005130 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005130 .text:08005130 .text:08005130 public dismountLowLevel .text:08005130 dismountLowLevel proc near ; CODE XREF: bdCall+B6p .text:08005130 ; bdCall+EFp ... .text:08005130 .text:08005130 arg_0 = dword ptr 4 .text:08005130 .text:08005130 mov eax, [esp+arg_0] .text:08005134 and byte ptr [eax], 0FEh .text:08005137 retn .text:08005137 dismountLowLevel endp .text:08005137 .text:08005138 .text:08005138 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005138 .text:08005138 .text:08005138 getPhysicalInfo proc near ; CODE XREF: bdCall+252p .text:08005138 .text:08005138 arg_0 = dword ptr 4 .text:08005138 arg_4 = dword ptr 8 .text:08005138 .text:08005138 mov eax, [esp+arg_4] .text:0800513C mov edx, [esp+arg_0] .text:08005140 mov ecx, [eax+0Ch] .text:08005143 mov ax, [edx+38h] .text:08005147 mov [ecx], ax .text:0800514A mov eax, [edx+3Ch] .text:0800514D mov [ecx+4], eax .text:08005150 mov eax, [edx+40h] .text:08005153 imul eax, [edx+44h] .text:08005157 mov [ecx+8], eax .text:0800515A mov eax, [edx+40h] .text:0800515D mov [ecx+0Ch], eax .text:08005160 mov eax, [edx+48h] .text:08005163 mov [ecx+10h], eax .text:08005166 xor eax, eax .text:08005168 retn .text:08005168 getPhysicalInfo endp .text:08005168 .text:08005168 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005169 align 4 .text:0800516C .text:0800516C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800516C .text:0800516C .text:0800516C physicalRead proc near ; CODE XREF: bdCall+25Ep .text:0800516C .text:0800516C var_4 = dword ptr -4 .text:0800516C arg_0 = dword ptr 4 .text:0800516C arg_4 = dword ptr 8 .text:0800516C .text:0800516C sub esp, 4 .text:0800516F push ebp .text:08005170 push edi .text:08005171 push esi .text:08005172 push ebx .text:08005173 mov esi, [esp+14h+arg_4] .text:08005177 mov edi, [esp+14h+arg_0] .text:0800517B mov ebx, [esi+10h] .text:0800517E mov ecx, [esi+14h] .text:08005181 mov eax, [edi+40h] .text:08005184 lea edx, [ecx+ebx] .text:08005187 imul eax, [edi+44h] .text:0800518B cmp edx, eax .text:0800518D jle short loc_0_8005198 .text:0800518F mov eax, 33h .text:08005194 jmp short loc_0_80051D1 .text:08005194 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005196 align 4 .text:08005198 .text:08005198 loc_0_8005198: ; CODE XREF: physicalRead+21j .text:08005198 mov eax, [edi+3Ch] .text:0800519B mov [esp+14h+var_4], eax .text:0800519F mov eax, ebx .text:080051A1 cdq .text:080051A2 idiv [esp+14h+var_4] .text:080051A6 sub [esp+14h+var_4], edx .text:080051AA cmp [esp+14h+var_4], ecx .text:080051AE jl short loc_0_80051CC .text:080051B0 mov eax, [esi+4] .text:080051B3 push eax .text:080051B4 push ecx .text:080051B5 mov eax, [esi+0Ch] .text:080051B8 push eax .text:080051B9 push ebx .text:080051BA lea eax, [edi+38h] .text:080051BD push eax .text:080051BE mov eax, [edi+5Ch] .text:080051C1 call eax .text:080051C3 xor eax, eax .text:080051C5 add esp, 14h .text:080051C8 jmp short loc_0_80051D1 .text:080051C8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080051CA align 4 .text:080051CC .text:080051CC loc_0_80051CC: ; CODE XREF: physicalRead+42j .text:080051CC mov eax, 33h .text:080051D1 .text:080051D1 loc_0_80051D1: ; CODE XREF: physicalRead+28j .text:080051D1 ; physicalRead+5Cj .text:080051D1 pop ebx .text:080051D2 pop esi .text:080051D3 pop edi .text:080051D4 pop ebp .text:080051D5 add esp, 4 .text:080051D8 retn .text:080051D8 physicalRead endp .text:080051D8 .text:080051D8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080051D9 align 4 .text:080051DC .text:080051DC ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080051DC .text:080051DC .text:080051DC physicalWrite proc near ; CODE XREF: bdCall+26Ap .text:080051DC .text:080051DC var_4 = dword ptr -4 .text:080051DC arg_0 = dword ptr 4 .text:080051DC arg_4 = dword ptr 8 .text:080051DC .text:080051DC sub esp, 4 .text:080051DF push ebp .text:080051E0 push edi .text:080051E1 push esi .text:080051E2 push ebx .text:080051E3 mov esi, [esp+14h+arg_4] .text:080051E7 mov edi, [esp+14h+arg_0] .text:080051EB mov ebx, [esi+10h] .text:080051EE mov ecx, [esi+14h] .text:080051F1 mov eax, [edi+40h] .text:080051F4 lea edx, [ecx+ebx] .text:080051F7 imul eax, [edi+44h] .text:080051FB cmp edx, eax .text:080051FD jg short loc_0_8005217 .text:080051FF mov eax, [edi+3Ch] .text:08005202 mov [esp+14h+var_4], eax .text:08005206 mov eax, ebx .text:08005208 cdq .text:08005209 idiv [esp+14h+var_4] .text:0800520D sub [esp+14h+var_4], edx .text:08005211 cmp [esp+14h+var_4], ecx .text:08005215 jge short loc_0_8005220 .text:08005217 .text:08005217 loc_0_8005217: ; CODE XREF: physicalWrite+21j .text:08005217 mov eax, 33h .text:0800521C jmp short loc_0_800523E .text:0800521C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800521E align 4 .text:08005220 .text:08005220 loc_0_8005220: ; CODE XREF: physicalWrite+39j .text:08005220 mov eax, [esi+4] .text:08005223 push eax .text:08005224 push ecx .text:08005225 mov eax, [esi+0Ch] .text:08005228 push eax .text:08005229 push ebx .text:0800522A lea eax, [edi+38h] .text:0800522D push eax .text:0800522E mov eax, [edi+60h] .text:08005231 call eax .text:08005233 mov edx, eax .text:08005235 add esp, 14h .text:08005238 test edx, edx .text:0800523A jz short loc_0_800523E .text:0800523C mov eax, edx .text:0800523E .text:0800523E loc_0_800523E: ; CODE XREF: physicalWrite+40j .text:0800523E ; physicalWrite+5Ej .text:0800523E pop ebx .text:0800523F pop esi .text:08005240 pop edi .text:08005241 pop ebp .text:08005242 add esp, 4 .text:08005245 retn .text:08005245 physicalWrite endp .text:08005245 .text:08005245 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005246 align 4 .text:08005248 .text:08005248 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005248 .text:08005248 .text:08005248 physicalErase proc near ; CODE XREF: bdCall+276p .text:08005248 .text:08005248 var_4 = dword ptr -4 .text:08005248 arg_0 = dword ptr 4 .text:08005248 arg_4 = dword ptr 8 .text:08005248 .text:08005248 sub esp, 4 .text:0800524B push ebp .text:0800524C push edi .text:0800524D push esi .text:0800524E push ebx .text:0800524F mov eax, [esp+14h+arg_4] .text:08005253 mov esi, [eax+10h] .text:08005256 mov ebx, [eax+14h] .text:08005259 lea edx, [ebx+esi] .text:0800525C mov ecx, [esp+14h+arg_0] .text:08005260 mov [esp+14h+var_4], edx .text:08005264 mov ebp, [ecx+40h] .text:08005267 imul ebp, [ecx+44h] .text:0800526B mov eax, ebp .text:0800526D cdq .text:0800526E idiv dword ptr [ecx+3Ch] .text:08005271 mov ebp, eax .text:08005273 cmp [esp+14h+var_4], ebp .text:08005277 jle short loc_0_8005280 .text:08005279 mov eax, 33h .text:0800527E jmp short loc_0_8005296 .text:08005280 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005280 .text:08005280 loc_0_8005280: ; CODE XREF: physicalErase+2Fj .text:08005280 push ebx .text:08005281 push esi .text:08005282 lea eax, [ecx+38h] .text:08005285 push eax .text:08005286 mov eax, [ecx+64h] .text:08005289 call eax .text:0800528B mov ecx, eax .text:0800528D add esp, 0Ch .text:08005290 test ecx, ecx .text:08005292 jz short loc_0_8005296 .text:08005294 mov eax, ecx .text:08005296 .text:08005296 loc_0_8005296: ; CODE XREF: physicalErase+36j .text:08005296 ; physicalErase+4Aj .text:08005296 pop ebx .text:08005297 pop esi .text:08005298 pop edi .text:08005299 pop ebp .text:0800529A add esp, 4 .text:0800529D retn .text:0800529D physicalErase endp .text:0800529D .text:0800529D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800529E align 4 .text:080052A0 .text:080052A0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080052A0 .text:080052A0 .text:080052A0 public bdCall .text:080052A0 bdCall proc near .text:080052A0 .text:080052A0 arg_0 = dword ptr 14h .text:080052A0 arg_4 = dword ptr 18h .text:080052A0 .text:080052A0 push ebp .text:080052A1 push edi .text:080052A2 push esi .text:080052A3 push ebx .text:080052A4 mov ebp, [esp+arg_0] .text:080052A8 mov edi, [esp+arg_4] .text:080052AC cmp initDone, 0 .text:080052B3 jnz short loc_0_80052C2 .text:080052B5 call flInit .text:080052BA test eax, eax .text:080052BC jnz loc_0_8005549 .text:080052C2 .text:080052C2 loc_0_80052C2: ; CODE XREF: bdCall+13j .text:080052C2 mov edx, [edi] .text:080052C4 cmp noOfDrives, edx .text:080052CA ja short loc_0_80052D8 .text:080052CC mov eax, 14h .text:080052D1 jmp loc_0_8005549 .text:080052D1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080052D6 align 4 .text:080052D8 .text:080052D8 loc_0_80052D8: ; CODE XREF: bdCall+2Aj .text:080052D8 lea eax, [edx+edx*4] .text:080052DB shl eax, 3 .text:080052DE sub eax, edx .text:080052E0 push 1 .text:080052E2 lea esi, ds:0[eax*4] .text:080052E9 push esi .text:080052EA call setBusy .text:080052EF add esp, 8 .text:080052F2 test eax, eax .text:080052F4 jnz loc_0_8005549 .text:080052FA cmp ebp, 0Fh ; switch 16 cases .text:080052FD ja loc_0_800539C ; default .text:08005303 jmp ds:off_0_800530C[ebp*4] ; switch jump .text:08005303 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800530A align 4 .text:0800530C off_0_800530C dd offset loc_0_800534C ; DATA XREF: bdCall+63r .text:0800530C dd offset loc_0_800539C ; jump table for switch statement .text:0800530C dd offset loc_0_800539C .text:0800530C dd offset loc_0_800539C .text:0800530C dd offset loc_0_800534C .text:0800530C dd offset loc_0_800534C .text:0800530C dd offset loc_0_800539C .text:0800530C dd offset loc_0_800539C .text:0800530C dd offset loc_0_800539C .text:0800530C dd offset loc_0_800539C .text:0800530C dd offset loc_0_800539C .text:0800530C dd offset loc_0_8005364 .text:0800530C dd offset loc_0_8005364 .text:0800530C dd offset loc_0_8005364 .text:0800530C dd offset loc_0_8005364 .text:0800530C dd offset loc_0_8005400 .text:0800534C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800534C .text:0800534C loc_0_800534C: ; CODE XREF: bdCall+63j .text:0800534C ; DATA XREF: bdCall+6Co .text:0800534C test byte ptr [esi], 1 ; case 0 .text:0800534F jz loc_0_8005400 ; case 0xf .text:08005355 push esi .text:08005356 call dismountLowLevel .text:0800535B add esp, 4 .text:0800535E jmp loc_0_8005400 ; case 0xf .text:0800535E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005363 align 4 .text:08005364 .text:08005364 loc_0_8005364: ; CODE XREF: bdCall+63j .text:08005364 ; DATA XREF: bdCall+6Co .text:08005364 mov al, [esi] ; case 0xb .text:08005366 test al, 8 .text:08005368 jz short loc_0_8005374 .text:0800536A mov ebx, 1Fh .text:0800536F jmp loc_0_800553C .text:08005374 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005374 .text:08005374 loc_0_8005374: ; CODE XREF: bdCall+C8j .text:08005374 test al, 1 .text:08005376 jnz short loc_0_8005388 .text:08005378 push esi .text:08005379 call mountLowLevel .text:0800537E mov ebx, eax .text:08005380 add esp, 4 .text:08005383 jmp short loc_0_800538A .text:08005383 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005385 align 4 .text:08005388 .text:08005388 loc_0_8005388: ; CODE XREF: bdCall+D6j .text:08005388 xor ebx, ebx .text:0800538A .text:0800538A loc_0_800538A: ; CODE XREF: bdCall+E3j .text:0800538A test ebx, ebx .text:0800538C jz short loc_0_8005400 ; case 0xf .text:0800538E push esi .text:0800538F call dismountLowLevel .text:08005394 add esp, 4 .text:08005397 jmp loc_0_8005529 .text:0800539C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800539C .text:0800539C loc_0_800539C: ; CODE XREF: bdCall+5Dj .text:0800539C ; bdCall+63j .text:0800539C ; DATA XREF: ... .text:0800539C test byte ptr [esi], 8 ; default .text:0800539F jz short loc_0_80053F5 .text:080053A1 lea eax, [ebp-1] ; switch 16 cases .text:080053A4 cmp eax, 0Fh .text:080053A7 ja short loc_0_80053F0 ; default .text:080053A9 jmp ds:off_0_80053B0[eax*4] ; switch jump .text:080053A9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080053B0 off_0_80053B0 dd offset loc_0_8005400 ; DATA XREF: bdCall+109r .text:080053B0 dd offset loc_0_8005400 ; jump table for switch statement .text:080053B0 dd offset loc_0_8005400 .text:080053B0 dd offset loc_0_80053F0 .text:080053B0 dd offset loc_0_80053F0 .text:080053B0 dd offset loc_0_8005400 .text:080053B0 dd offset loc_0_8005400 .text:080053B0 dd offset loc_0_80053F0 .text:080053B0 dd offset loc_0_8005400 .text:080053B0 dd offset loc_0_8005400 .text:080053B0 dd offset loc_0_80053F0 .text:080053B0 dd offset loc_0_80053F0 .text:080053B0 dd offset loc_0_80053F0 .text:080053B0 dd offset loc_0_80053F0 .text:080053B0 dd offset loc_0_80053F0 .text:080053B0 dd offset loc_0_8005400 .text:080053F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080053F0 .text:080053F0 loc_0_80053F0: ; CODE XREF: bdCall+107j .text:080053F0 ; bdCall+109j .text:080053F0 ; DATA XREF: ... .text:080053F0 test byte ptr [esi], 2 ; default .text:080053F3 jnz short loc_0_8005400 ; case 0xf .text:080053F5 .text:080053F5 loc_0_80053F5: ; CODE XREF: bdCall+FFj .text:080053F5 mov ebx, 37h .text:080053FA jmp loc_0_800553C .text:080053FA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080053FF align 4 .text:08005400 .text:08005400 loc_0_8005400: ; CODE XREF: bdCall+63j .text:08005400 ; bdCall+AFj ... .text:08005400 cmp ebp, 10h ; case 0xf .text:08005403 ja loc_0_8005524 .text:08005409 jmp ds:off_0_8005410[ebp*4] .text:08005409 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005410 off_0_8005410 dd offset loc_0_8005454 ; DATA XREF: bdCall+169r .text:08005414 dd offset loc_0_800545C .text:08005418 dd offset loc_0_800552D .text:0800541C dd offset loc_0_8005480 .text:08005420 dd offset loc_0_800548C .text:08005424 dd offset loc_0_80054A4 .text:08005428 dd offset loc_0_80054B4 .text:0800542C dd offset loc_0_80054C0 .text:08005430 dd offset loc_0_80054CC .text:08005434 dd offset loc_0_80054D8 .text:08005438 dd offset loc_0_80054E4 .text:0800543C dd offset loc_0_80054F0 .text:08005440 dd offset loc_0_80054FC .text:08005444 dd offset loc_0_8005508 .text:08005448 dd offset loc_0_8005514 .text:0800544C dd offset loc_0_8005464 .text:08005450 dd offset loc_0_8005498 .text:08005454 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005454 .text:08005454 loc_0_8005454: ; CODE XREF: bdCall+169j .text:08005454 ; DATA XREF: bdCall+170o .text:08005454 push esi .text:08005455 call mountVolume .text:0800545A jmp short loc_0_80054AA .text:0800545C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800545C .text:0800545C loc_0_800545C: ; CODE XREF: bdCall+169j .text:0800545C ; DATA XREF: bdCall+174o .text:0800545C push esi .text:0800545D call dismountVolume .text:08005462 jmp short loc_0_80054AA .text:08005464 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005464 .text:08005464 loc_0_8005464: ; CODE XREF: bdCall+169j .text:08005464 ; DATA XREF: bdCall+1ACo .text:08005464 mov eax, [edi+0Ch] .text:08005467 push eax .text:08005468 mov eax, [edi] .text:0800546A push eax .text:0800546B call flSocketOf .text:08005470 add esp, 4 .text:08005473 push eax .text:08005474 call updateSocketParameters .text:08005479 jmp loc_0_800551B .text:08005479 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800547E align 4 .text:08005480 .text:08005480 loc_0_8005480: ; CODE XREF: bdCall+169j .text:08005480 ; DATA XREF: bdCall+17Co .text:08005480 push edi .text:08005481 push esi .text:08005482 call defragmentVolume .text:08005487 jmp loc_0_800551B .text:0800548C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800548C .text:0800548C loc_0_800548C: ; CODE XREF: bdCall+169j .text:0800548C ; DATA XREF: bdCall+180o .text:0800548C push edi .text:0800548D push esi .text:0800548E call formatVolume .text:08005493 jmp loc_0_800551B .text:08005498 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005498 .text:08005498 loc_0_8005498: ; CODE XREF: bdCall+169j .text:08005498 ; DATA XREF: bdCall+1B0o .text:08005498 push edi .text:08005499 push esi .text:0800549A call sectorsInVolume_0 .text:0800549F jmp short loc_0_800551B .text:0800549F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080054A1 align 4 .text:080054A4 .text:080054A4 loc_0_80054A4: ; CODE XREF: bdCall+169j .text:080054A4 ; DATA XREF: bdCall+184o .text:080054A4 push esi .text:080054A5 call absMountVolume .text:080054AA .text:080054AA loc_0_80054AA: ; CODE XREF: bdCall+1BAj .text:080054AA ; bdCall+1C2j .text:080054AA mov ebx, eax .text:080054AC add esp, 4 .text:080054AF jmp short loc_0_8005529 .text:080054AF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080054B1 align 4 .text:080054B4 .text:080054B4 loc_0_80054B4: ; CODE XREF: bdCall+169j .text:080054B4 ; DATA XREF: bdCall+188o .text:080054B4 push edi .text:080054B5 push esi .text:080054B6 call absRead .text:080054BB jmp short loc_0_800551B .text:080054BB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080054BD align 4 .text:080054C0 .text:080054C0 loc_0_80054C0: ; CODE XREF: bdCall+169j .text:080054C0 ; DATA XREF: bdCall+18Co .text:080054C0 push edi .text:080054C1 push esi .text:080054C2 call absWrite .text:080054C7 jmp short loc_0_800551B .text:080054C7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080054C9 align 4 .text:080054CC .text:080054CC loc_0_80054CC: ; CODE XREF: bdCall+169j .text:080054CC ; DATA XREF: bdCall+190o .text:080054CC push edi .text:080054CD push esi .text:080054CE call absAddress .text:080054D3 jmp short loc_0_800551B .text:080054D3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080054D5 align 4 .text:080054D8 .text:080054D8 loc_0_80054D8: ; CODE XREF: bdCall+169j .text:080054D8 ; DATA XREF: bdCall+194o .text:080054D8 push edi .text:080054D9 push esi .text:080054DA call absDelete .text:080054DF jmp short loc_0_800551B .text:080054DF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080054E1 align 4 .text:080054E4 .text:080054E4 loc_0_80054E4: ; CODE XREF: bdCall+169j .text:080054E4 ; DATA XREF: bdCall+198o .text:080054E4 push edi .text:080054E5 push esi .text:080054E6 call getBPB .text:080054EB jmp short loc_0_800551B .text:080054EB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080054ED align 4 .text:080054F0 .text:080054F0 loc_0_80054F0: ; CODE XREF: bdCall+169j .text:080054F0 ; DATA XREF: bdCall+19Co .text:080054F0 push edi .text:080054F1 push esi .text:080054F2 call getPhysicalInfo .text:080054F7 jmp short loc_0_800551B .text:080054F7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080054F9 align 4 .text:080054FC .text:080054FC loc_0_80054FC: ; CODE XREF: bdCall+169j .text:080054FC ; DATA XREF: bdCall+1A0o .text:080054FC push edi .text:080054FD push esi .text:080054FE call physicalRead .text:08005503 jmp short loc_0_800551B .text:08005503 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005505 align 4 .text:08005508 .text:08005508 loc_0_8005508: ; CODE XREF: bdCall+169j .text:08005508 ; DATA XREF: bdCall+1A4o .text:08005508 push edi .text:08005509 push esi .text:0800550A call physicalWrite .text:0800550F jmp short loc_0_800551B .text:0800550F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005511 align 4 .text:08005514 .text:08005514 loc_0_8005514: ; CODE XREF: bdCall+169j .text:08005514 ; DATA XREF: bdCall+1A8o .text:08005514 push edi .text:08005515 push esi .text:08005516 call physicalErase .text:0800551B .text:0800551B loc_0_800551B: ; CODE XREF: bdCall+1D9j .text:0800551B ; bdCall+1E7j ... .text:0800551B mov ebx, eax .text:0800551D add esp, 8 .text:08005520 jmp short loc_0_8005529 .text:08005520 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005522 align 4 .text:08005524 .text:08005524 loc_0_8005524: ; CODE XREF: bdCall+163j .text:08005524 mov ebx, 1 .text:08005529 .text:08005529 loc_0_8005529: ; CODE XREF: bdCall+F7j .text:08005529 ; bdCall+20Fj ... .text:08005529 test ebx, ebx .text:0800552B jnz short loc_0_800553C .text:0800552D .text:0800552D loc_0_800552D: ; CODE XREF: bdCall+169j .text:0800552D ; DATA XREF: bdCall+178o .text:0800552D push 0 .text:0800552F push esi .text:08005530 call setBusy .text:08005535 mov ebx, eax .text:08005537 jmp short loc_0_8005544 .text:08005537 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005539 align 4 .text:0800553C .text:0800553C loc_0_800553C: ; CODE XREF: bdCall+CFj .text:0800553C ; bdCall+15Aj ... .text:0800553C push 0 .text:0800553E push esi .text:0800553F call setBusy .text:08005544 .text:08005544 loc_0_8005544: ; CODE XREF: bdCall+297j .text:08005544 add esp, 8 .text:08005547 mov eax, ebx .text:08005549 .text:08005549 loc_0_8005549: ; CODE XREF: bdCall+1Cj .text:08005549 ; bdCall+31j ... .text:08005549 pop ebx .text:0800554A pop esi .text:0800554B pop edi .text:0800554C pop ebp .text:0800554D retn .text:0800554D bdCall endp .text:0800554D .text:0800554D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800554E align 4 .text:08005550 .text:08005550 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005550 .text:08005550 .text:08005550 public flInit .text:08005550 flInit proc near ; CODE XREF: bdCall+15p .text:08005550 push edi .text:08005551 push esi .text:08005552 mov eax, initDone .text:08005557 push ebx .text:08005558 test eax, eax .text:0800555A jnz short loc_0_80055CC .text:0800555C mov esi, 0 .text:08005561 mov ebx, eax .text:08005563 nop .text:08005564 .text:08005564 loc_0_8005564: ; CODE XREF: flInit+3Ej .text:08005564 push ebx .text:08005565 call flSocketOf .text:0800556A mov [esi+98h], eax .text:08005570 mov [eax], ebx .text:08005572 lea eax, [esi+34h] .text:08005575 mov byte ptr [esi], 0 .text:08005578 push eax .text:08005579 call flCreateMutex .text:0800557E mov edi, eax .text:08005580 add esp, 8 .text:08005583 test edi, edi .text:08005585 jnz short loc_0_80055C4 .text:08005587 add esi, 9Ch .text:0800558D inc ebx .text:0800558E jz short loc_0_8005564 .text:08005590 mov initDone, 1 .text:0800559A call flSysfunInit .text:0800559F mov ds:noOfTLs, edi .text:080055A5 call flRegisterComponents .text:080055AA test eax, eax .text:080055AC jz short loc_0_80055B8 .text:080055AE mov eax, 3Ch .text:080055B3 jmp short loc_0_80055CE .text:080055B3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080055B5 align 4 .text:080055B8 .text:080055B8 loc_0_80055B8: ; CODE XREF: flInit+5Cj .text:080055B8 call flInitSockets .text:080055BD test eax, eax .text:080055BF jz short loc_0_80055CC .text:080055C1 jmp short loc_0_80055CE .text:080055C1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080055C3 align 4 .text:080055C4 .text:080055C4 loc_0_80055C4: ; CODE XREF: flInit+35j .text:080055C4 mov eax, 1Fh .text:080055C9 jmp short loc_0_80055CE .text:080055C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080055CB align 4 .text:080055CC .text:080055CC loc_0_80055CC: ; CODE XREF: flInit+Aj .text:080055CC ; flInit+6Fj .text:080055CC xor eax, eax .text:080055CE .text:080055CE loc_0_80055CE: ; CODE XREF: flInit+63j .text:080055CE ; flInit+71j ... .text:080055CE pop ebx .text:080055CF pop esi .text:080055D0 pop edi .text:080055D1 retn .text:080055D1 flInit endp .text:080055D1 .text:080055D1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080055D2 align 4 .text:080055D4 .text:080055D4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080055D4 .text:080055D4 .text:080055D4 public flExit .text:080055D4 flExit proc near .text:080055D4 push edi .text:080055D5 push esi .text:080055D6 xor edi, edi .text:080055D8 mov esi, 0 .text:080055DD push ebx .text:080055DE cmp noOfDrives, edi .text:080055E4 jbe short loc_0_8005630 .text:080055E6 mov esi, esi .text:080055E8 .text:080055E8 loc_0_80055E8: ; CODE XREF: flExit+5Aj .text:080055E8 push 1 .text:080055EA push esi .text:080055EB call setBusy .text:080055F0 add esp, 8 .text:080055F3 test eax, eax .text:080055F5 jnz short loc_0_8005621 .text:080055F7 push esi .text:080055F8 call dismountVolume .text:080055FD push esi .text:080055FE call dismountLowLevel .text:08005603 mov eax, [esi+98h] .text:08005609 push eax .text:0800560A call flExitSocket .text:0800560F lea ebx, [esi+34h] .text:08005612 push ebx .text:08005613 call flFreeMutex .text:08005618 push ebx .text:08005619 call flDeleteMutex .text:0800561E add esp, 14h .text:08005621 .text:08005621 loc_0_8005621: ; CODE XREF: flExit+21j .text:08005621 inc edi .text:08005622 add esi, 9Ch .text:08005628 cmp noOfDrives, edi .text:0800562E ja short loc_0_80055E8 .text:08005630 .text:08005630 loc_0_8005630: ; CODE XREF: flExit+10j .text:08005630 pop ebx .text:08005631 pop esi .text:08005632 mov initDone, 0 .text:0800563C pop edi .text:0800563D retn .text:0800563D flExit endp .text:0800563D .text:0800563D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800563E align 4 .text:08005640 .text:08005640 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005640 .text:08005640 .text:08005640 RTLeightToTen proc near ; CODE XREF: flDecodeEDC+19p .text:08005640 .text:08005640 arg_0 = dword ptr 8 .text:08005640 arg_4 = dword ptr 0Ch .text:08005640 .text:08005640 push ebx ; Alternative name is 'gcc2_compiled.' .text:08005641 mov edx, [esp+arg_0] .text:08005645 mov al, [edx+1] .text:08005648 xor ecx, ecx .text:0800564A and al, 3 .text:0800564C mov cl, [edx] .text:0800564E shl ax, 8 .text:08005652 mov ebx, [esp+arg_4] .text:08005656 or ecx, eax .text:08005658 mov [ebx], cx .text:0800565B mov al, [edx+2] .text:0800565E movsx ecx, byte ptr [edx+1] .text:08005662 and al, 0Fh .text:08005664 and ecx, 0FCh .text:0800566A cbw .text:0800566C sar ecx, 2 .text:0800566F shl ax, 6 .text:08005673 or eax, ecx .text:08005675 mov [ebx+2], ax .text:08005679 mov al, [edx+3] .text:0800567C movsx ecx, byte ptr [edx+2] .text:08005680 and al, 3Fh .text:08005682 and ecx, 0F0h .text:08005688 cbw .text:0800568A sar ecx, 4 .text:0800568D shl ax, 4 .text:08005691 or eax, ecx .text:08005693 mov [ebx+4], ax .text:08005697 movsx ecx, byte ptr [edx+3] .text:0800569B xor eax, eax .text:0800569D mov al, [edx+4] .text:080056A0 and ecx, 0C0h .text:080056A6 shl ax, 2 .text:080056AA sar ecx, 6 .text:080056AD or eax, ecx .text:080056AF mov [ebx+6], ax .text:080056B3 pop ebx .text:080056B4 retn .text:080056B4 RTLeightToTen endp .text:080056B4 .text:080056B4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080056B5 align 4 .text:080056B8 .text:080056B8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080056B8 .text:080056B8 .text:080056B8 unpack proc near ; CODE XREF: decoder_for_2_errors+1BEp .text:080056B8 .text:080056B8 arg_0 = dword ptr 0Ch .text:080056B8 arg_4 = dword ptr 10h .text:080056B8 arg_8 = dword ptr 14h .text:080056B8 .text:080056B8 push esi .text:080056B9 push ebx .text:080056BA mov ebx, [esp+arg_4] .text:080056BE movsx eax, bx .text:080056C1 add eax, eax .text:080056C3 xor edx, edx .text:080056C5 add eax, [esp+arg_8] .text:080056C9 mov ecx, [esp+arg_0] .text:080056CD jmp short loc_0_80056DD .text:080056CD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080056CF align 4 .text:080056D0 .text:080056D0 loc_0_80056D0: ; CODE XREF: unpack+2Bj .text:080056D0 mov esi, ecx .text:080056D2 and esi, 1 .text:080056D5 sar cx, 1 .text:080056D9 mov [eax], si .text:080056DC inc edx .text:080056DD .text:080056DD loc_0_80056DD: ; CODE XREF: unpack+15j .text:080056DD add eax, 0FFFFFFFEh .text:080056E0 cmp dx, bx .text:080056E3 jl short loc_0_80056D0 .text:080056E5 pop ebx .text:080056E6 pop esi .text:080056E7 retn .text:080056E7 unpack endp .text:080056E7 .text:080056E8 .text:080056E8 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080056E8 .text:080056E8 .text:080056E8 pack proc near ; CODE XREF: decoder_for_2_errors+25Fp .text:080056E8 .text:080056E8 arg_0 = dword ptr 10h .text:080056E8 arg_4 = dword ptr 14h .text:080056E8 .text:080056E8 push edi .text:080056E9 push esi .text:080056EA push ebx .text:080056EB mov edx, [esp+arg_4] .text:080056EF mov ecx, edx .text:080056F1 xor edi, edi .text:080056F3 movsx eax, cx .text:080056F6 mov esi, 1 .text:080056FB lea ebx, ds:0FFFFFFFEh[eax*2] .text:08005702 dec ecx .text:08005703 add ebx, [esp+arg_0] .text:08005707 test dx, dx .text:0800570A jle short loc_0_8005725 .text:0800570C .text:0800570C loc_0_800570C: ; CODE XREF: pack+3Bj .text:0800570C mov ax, [ebx] .text:0800570F add ebx, 0FFFFFFFEh .text:08005712 test ax, ax .text:08005715 jz short loc_0_8005719 .text:08005717 or edi, esi .text:08005719 .text:08005719 loc_0_8005719: ; CODE XREF: pack+2Dj .text:08005719 add si, si .text:0800571C mov eax, ecx .text:0800571E dec cx .text:08005720 test ax, ax .text:08005723 jg short loc_0_800570C .text:08005725 .text:08005725 loc_0_8005725: ; CODE XREF: pack+22j .text:08005725 pop ebx .text:08005726 movsx eax, di .text:08005729 pop esi .text:0800572A pop edi .text:0800572B retn .text:0800572B pack endp .text:0800572B .text:0800572C .text:0800572C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800572C .text:0800572C .text:0800572C gfi proc near ; CODE XREF: gfdiv+Bp .text:0800572C ; decoder_for_2_errors+92p .text:0800572C .text:0800572C arg_0 = word ptr 4 .text:0800572C .text:0800572C movsx eax, [esp+arg_0] .text:08005731 push eax .text:08005732 call flog .text:08005737 mov edx, eax .text:08005739 mov eax, 3FFh .text:0800573E sub eax, edx .text:08005740 cwde .text:08005741 push eax .text:08005742 call alog .text:08005747 cwde .text:08005748 add esp, 8 .text:0800574B retn .text:0800574B gfi endp .text:0800574B .text:0800574C .text:0800574C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800574C .text:0800574C .text:0800574C gfmul proc near ; CODE XREF: gfdiv+16p .text:0800574C ; residue_to_syndrom+70p ... .text:0800574C .text:0800574C arg_0 = dword ptr 0Ch .text:0800574C arg_4 = dword ptr 10h .text:0800574C .text:0800574C push esi .text:0800574D push ebx .text:0800574E mov eax, [esp+arg_0] .text:08005752 mov edx, [esp+arg_4] .text:08005756 mov ecx, eax .text:08005758 mov esi, edx .text:0800575A test ax, ax .text:0800575D jz short loc_0_8005764 .text:0800575F test dx, dx .text:08005762 jnz short loc_0_8005768 .text:08005764 .text:08005764 loc_0_8005764: ; CODE XREF: gfmul+11j .text:08005764 xor eax, eax .text:08005766 jmp short loc_0_8005797 .text:08005768 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005768 .text:08005768 loc_0_8005768: ; CODE XREF: gfmul+16j .text:08005768 movsx eax, cx .text:0800576B push eax .text:0800576C call flog .text:08005771 mov ebx, eax .text:08005773 movsx eax, si .text:08005776 push eax .text:08005777 call flog .text:0800577C add eax, ebx .text:0800577E add esp, 8 .text:08005781 cmp ax, 3FFh .text:08005785 jle short loc_0_800578C .text:08005787 add eax, 0FFFFFC01h .text:0800578C .text:0800578C loc_0_800578C: ; CODE XREF: gfmul+39j .text:0800578C cwde .text:0800578D push eax .text:0800578E call alog .text:08005793 cwde .text:08005794 add esp, 4 .text:08005797 .text:08005797 loc_0_8005797: ; CODE XREF: gfmul+1Aj .text:08005797 pop ebx .text:08005798 pop esi .text:08005799 retn .text:08005799 gfmul endp .text:08005799 .text:08005799 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800579A align 4 .text:0800579C .text:0800579C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800579C .text:0800579C .text:0800579C gfdiv proc near ; CODE XREF: residue_to_syndrom+9Ap .text:0800579C ; decoder_for_2_errors+44p ... .text:0800579C .text:0800579C arg_0 = dword ptr 8 .text:0800579C arg_4 = word ptr 0Ch .text:0800579C .text:0800579C push ebx .text:0800579D movsx eax, [esp+arg_4] .text:080057A2 mov ebx, [esp+arg_0] .text:080057A6 push eax .text:080057A7 call gfi .text:080057AC cwde .text:080057AD push eax .text:080057AE movsx eax, bx .text:080057B1 push eax .text:080057B2 call gfmul .text:080057B7 add esp, 0Ch .text:080057BA cwde .text:080057BB pop ebx .text:080057BC retn .text:080057BC gfdiv endp .text:080057BC .text:080057BC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080057BD align 4 .text:080057C0 .text:080057C0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080057C0 .text:080057C0 .text:080057C0 residue_to_syndrom proc near ; CODE XREF: flDecodeEDC+32p .text:080057C0 .text:080057C0 var_6 = word ptr -6 .text:080057C0 var_4 = word ptr -4 .text:080057C0 var_2 = word ptr -2 .text:080057C0 arg_0 = dword ptr 4 .text:080057C0 arg_4 = dword ptr 8 .text:080057C0 .text:080057C0 sub esp, 8 .text:080057C3 push ebp .text:080057C4 push edi .text:080057C5 push esi .text:080057C6 push ebx .text:080057C7 mov ebp, 1FEh .text:080057CC mov [esp+18h+var_2], 0 .text:080057D3 nop .text:080057D4 .text:080057D4 loc_0_80057D4: ; CODE XREF: residue_to_syndrom+BDj .text:080057D4 mov ecx, [esp+18h+arg_0] .text:080057D8 movsx eax, bp .text:080057DB mov di, [ecx] .text:080057DE push eax .text:080057DF call alog .text:080057E4 mov ebx, eax .text:080057E6 mov eax, ebp .text:080057E8 mov [esp+1Ch+var_4], bx .text:080057ED add ax, ax .text:080057F0 add esp, 4 .text:080057F3 cmp ax, 3FEh .text:080057F7 jle short loc_0_80057FE .text:080057F9 add eax, 0FFFFFC01h .text:080057FE .text:080057FE loc_0_80057FE: ; CODE XREF: residue_to_syndrom+37j .text:080057FE add ax, ax .text:08005801 cmp ax, 3FEh .text:08005805 jle short loc_0_800580C .text:08005807 add eax, 0FFFFFC01h .text:0800580C .text:0800580C loc_0_800580C: ; CODE XREF: residue_to_syndrom+45j .text:0800580C cwde .text:0800580D push eax .text:0800580E call alog .text:08005813 mov [esp+1Ch+var_6], ax .text:08005818 mov esi, 1 .text:0800581D add esp, 4 .text:08005820 .text:08005820 loc_0_8005820: ; CODE XREF: residue_to_syndrom+8Ej .text:08005820 movsx ebx, bx .text:08005823 push ebx .text:08005824 movsx eax, si .text:08005827 mov ecx, [esp+1Ch+arg_0] .text:0800582B movsx eax, word ptr [ecx+eax*2] .text:0800582F push eax .text:08005830 call gfmul .text:08005835 push ebx .text:08005836 xor edi, eax .text:08005838 movsx eax, [esp+24h+var_4] .text:0800583D push eax .text:0800583E call gfmul .text:08005843 mov ebx, eax .text:08005845 add esp, 10h .text:08005848 inc si .text:0800584A cmp si, 3 .text:0800584E jle short loc_0_8005820 .text:08005850 movsx eax, [esp+18h+var_6] .text:08005855 push eax .text:08005856 movsx eax, di .text:08005859 push eax .text:0800585A call gfdiv .text:0800585F mov edx, eax .text:08005861 movsx eax, [esp+20h+var_2] .text:08005866 mov ecx, [esp+20h+arg_4] .text:0800586A add esp, 8 .text:0800586D mov [ecx+eax*2], dx .text:08005871 inc ebp .text:08005872 inc [esp+18h+var_2] .text:08005877 cmp [esp+18h+var_2], 3 .text:0800587D jle loc_0_80057D4 .text:08005883 pop ebx .text:08005884 pop esi .text:08005885 pop edi .text:08005886 pop ebp .text:08005887 add esp, 8 .text:0800588A retn .text:0800588A residue_to_syndrom endp .text:0800588A .text:0800588A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800588B align 4 .text:0800588C .text:0800588C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800588C .text:0800588C .text:0800588C alog proc near ; CODE XREF: gfi+16p .text:0800588C ; gfmul+42p ... .text:0800588C .text:0800588C arg_0 = dword ptr 4 .text:0800588C .text:0800588C mov ecx, [esp+arg_0] .text:08005890 xor edx, edx .text:08005892 mov eax, 1 .text:08005897 cmp dx, cx .text:0800589A jge short loc_0_80058BC .text:0800589C .text:0800589C loc_0_800589C: ; CODE XREF: alog+2Ej .text:0800589C add ax, ax .text:0800589F cmp ax, 3FFh .text:080058A3 jle short loc_0_80058B5 .text:080058A5 test al, 8 .text:080058A7 jz short loc_0_80058B0 .text:080058A9 add eax, 0FFFFFBF9h .text:080058AE jmp short loc_0_80058B5 .text:080058B0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080058B0 .text:080058B0 loc_0_80058B0: ; CODE XREF: alog+1Bj .text:080058B0 add eax, 0FFFFFC09h .text:080058B5 .text:080058B5 loc_0_80058B5: ; CODE XREF: alog+17j .text:080058B5 ; alog+22j .text:080058B5 inc dx .text:080058B7 cmp dx, cx .text:080058BA jl short loc_0_800589C .text:080058BC .text:080058BC loc_0_80058BC: ; CODE XREF: alog+Ej .text:080058BC cwde .text:080058BD retn .text:080058BD alog endp .text:080058BD .text:080058BD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080058BE align 4 .text:080058C0 .text:080058C0 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:080058C0 .text:080058C0 .text:080058C0 flog proc near ; CODE XREF: gfi+6p .text:080058C0 ; gfmul+20p ... .text:080058C0 .text:080058C0 arg_0 = dword ptr 4 .text:080058C0 .text:080058C0 mov eax, [esp+arg_0] .text:080058C4 mov ecx, eax .text:080058C6 test ax, ax .text:080058C9 jnz short loc_0_80058D8 .text:080058CB mov eax, 0FFFFFFFFh .text:080058D0 retn .text:080058D0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080058D1 align 4 .text:080058D4 .text:080058D4 loc_0_80058D4: ; CODE XREF: flog+23j .text:080058D4 cwde .text:080058D5 retn .text:080058D5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080058D6 align 4 .text:080058D8 .text:080058D8 loc_0_80058D8: ; CODE XREF: flog+9j .text:080058D8 xor eax, eax .text:080058DA mov edx, 1 .text:080058DF nop .text:080058E0 .text:080058E0 loc_0_80058E0: ; CODE XREF: flog+48j .text:080058E0 cmp dx, cx .text:080058E3 jz short loc_0_80058D4 .text:080058E5 add dx, dx .text:080058E8 cmp dx, 3FFh .text:080058ED jle short loc_0_8005902 .text:080058EF test dl, 8 .text:080058F2 jz short loc_0_80058FC .text:080058F4 add edx, 0FFFFFBF9h .text:080058FA jmp short loc_0_8005902 .text:080058FC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080058FC .text:080058FC loc_0_80058FC: ; CODE XREF: flog+32j .text:080058FC add edx, 0FFFFFC09h .text:08005902 .text:08005902 loc_0_8005902: ; CODE XREF: flog+2Dj .text:08005902 ; flog+3Aj .text:08005902 inc ax .text:08005904 cmp ax, 3FFh .text:08005908 jle short loc_0_80058E0 .text:0800590A xor eax, eax .text:0800590C retn .text:0800590C flog endp .text:0800590C .text:0800590C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800590D align 4 .text:08005910 .text:08005910 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005910 .text:08005910 .text:08005910 convert_to_byte_patterns proc near ; CODE XREF: flDecodeEDC+97p .text:08005910 .text:08005910 var_10 = dword ptr -10h .text:08005910 var_C = dword ptr -0Ch .text:08005910 var_6 = word ptr -6 .text:08005910 var_4 = dword ptr -4 .text:08005910 arg_0 = dword ptr 4 .text:08005910 arg_4 = dword ptr 8 .text:08005910 arg_8 = dword ptr 0Ch .text:08005910 arg_C = dword ptr 10h .text:08005910 arg_10 = dword ptr 14h .text:08005910 .text:08005910 sub esp, 10h .text:08005913 push ebp .text:08005914 push edi .text:08005915 push esi .text:08005916 push ebx .text:08005917 mov ecx, [esp+20h+arg_8] .text:0800591B mov word ptr [esp+20h+var_4], 0 .text:08005922 mov word ptr [esp+20h+var_4+2], cx .text:08005927 mov ebp, [esp+20h+var_4] .text:0800592B cmp word ptr [esp+20h+var_4], cx .text:08005930 jge loc_0_8005A62 .text:08005936 mov esi, esi .text:08005938 .text:08005938 loc_0_8005938: ; CODE XREF: convert_to_byte_patterns+14Cj .text:08005938 movsx eax, word ptr [esp+20h+var_4] .text:0800593D mov esi, [esp+20h+arg_4] .text:08005941 mov ecx, [esp+20h+arg_0] .text:08005945 mov di, [esi+eax*2] .text:08005949 movsx eax, word ptr [ecx+eax*2] .text:0800594D lea eax, [eax+eax*4] .text:08005950 add eax, eax .text:08005952 mov edx, eax .text:08005954 add edx, 0FFFFFFFAh .text:08005957 mov ebx, edx .text:08005959 sar bx, 3 .text:0800595D mov eax, ebx .text:0800595F shl ax, 3 .text:08005963 sub edx, eax .text:08005965 inc ebx .text:08005966 mov eax, edx .text:08005968 cmp ax, 7 .text:0800596C jnz short loc_0_80059C8 .text:0800596E movsx edx, bp .text:08005971 mov ecx, ebx .text:08005973 mov esi, [esp+20h+arg_C] .text:08005977 inc ebp .text:08005978 mov eax, edi .text:0800597A inc ecx .text:0800597B and eax, 1 .text:0800597E mov [esi+edx*2], cx .text:08005982 jz short loc_0_8005990 .text:08005984 mov esi, [esp+20h+arg_10] .text:08005988 mov word ptr [esi+edx*2], 80h .text:0800598E jmp short loc_0_8005998 .text:08005990 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005990 .text:08005990 loc_0_8005990: ; CODE XREF: convert_to_byte_patterns+72j .text:08005990 mov ecx, [esp+20h+arg_10] .text:08005994 mov [ecx+edx*2], ax .text:08005998 .text:08005998 loc_0_8005998: ; CODE XREF: convert_to_byte_patterns+7Ej .text:08005998 movsx eax, bp .text:0800599B mov esi, [esp+20h+arg_C] .text:0800599F sar di, 1 .text:080059A3 mov [esi+eax*2], bx .text:080059A7 mov edx, edi .text:080059A9 mov ecx, [esp+20h+arg_10] .text:080059AD mov dh, 0 .text:080059AF inc ebp .text:080059B0 mov [ecx+eax*2], dx .text:080059B4 movsx eax, bp .text:080059B7 shr di, 8 .text:080059BB inc ebp .text:080059BC mov [ecx+eax*2], di .text:080059C0 jmp loc_0_8005A4D .text:080059C0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:080059C5 align 4 .text:080059C8 .text:080059C8 loc_0_80059C8: ; CODE XREF: convert_to_byte_patterns+5Cj .text:080059C8 mov [esp+20h+var_6], 8 .text:080059CF movsx edx, bp .text:080059D2 sub [esp+20h+var_6], ax .text:080059D7 mov esi, [esp+20h+arg_C] .text:080059DB mov eax, 0Ah .text:080059E0 sub ax, [esp+20h+var_6] .text:080059E5 mov [esi+edx*2], bx .text:080059E9 cwde .text:080059EA mov [esp+20h+var_10], eax .text:080059EE mov [esp+20h+var_C], 8 .text:080059F6 mov ecx, [esp+20h+var_10] .text:080059FA mov eax, edi .text:080059FC sub [esp+20h+var_C], ecx .text:08005A00 and ax, mask_20[ecx*2] .text:08005A08 mov ecx, [esp+20h+var_C] .text:08005A0C cwde .text:08005A0D mov esi, [esp+20h+arg_10] .text:08005A11 shl eax, cl .text:08005A13 movsx edi, di .text:08005A16 mov [esi+edx*2], ax .text:08005A1A inc ebp .text:08005A1B mov [esp+20h+var_C], edi .text:08005A1F mov ecx, [esp+20h+var_10] .text:08005A23 movsx edx, bp .text:08005A26 dec ebx .text:08005A27 mov esi, [esp+20h+arg_C] .text:08005A2B sar [esp+20h+var_C], cl .text:08005A2F mov [esi+edx*2], bx .text:08005A33 movsx eax, [esp+20h+var_6] .text:08005A38 inc ebp .text:08005A39 mov ax, mask_20[eax*2] .text:08005A41 mov ecx, [esp+20h+arg_10] .text:08005A45 and eax, [esp+20h+var_C] .text:08005A49 mov [ecx+edx*2], ax .text:08005A4D .text:08005A4D loc_0_8005A4D: ; CODE XREF: convert_to_byte_patterns+B0j .text:08005A4D inc word ptr [esp+20h+var_4] .text:08005A52 mov si, word ptr [esp+20h+var_4+2] .text:08005A57 cmp word ptr [esp+20h+var_4], si .text:08005A5C jl loc_0_8005938 .text:08005A62 .text:08005A62 loc_0_8005A62: ; CODE XREF: convert_to_byte_patterns+20j .text:08005A62 mov word ptr [esp+20h+var_4], 0 .text:08005A69 mov ebx, 0FFFFFFFFh .text:08005A6E cmp word ptr [esp+20h+var_4], bp .text:08005A73 jge short loc_0_8005AE5 .text:08005A75 lea esi, [esi+0] .text:08005A78 .text:08005A78 loc_0_8005A78: ; CODE XREF: convert_to_byte_patterns+1D3j .text:08005A78 movsx edi, word ptr [esp+20h+var_4] .text:08005A7D mov ecx, [esp+20h+arg_10] .text:08005A81 mov cx, [ecx+edi*2] .text:08005A85 mov word ptr [esp+20h+var_10], cx .text:08005A8A test cx, cx .text:08005A8D jz short loc_0_8005AD9 .text:08005A8F movsx edx, bx .text:08005A92 mov esi, [esp+20h+arg_C] .text:08005A96 mov ax, [esi+edx*2] .text:08005A9A cmp [esi+edi*2], ax .text:08005A9E jnz short loc_0_8005AB0 .text:08005AA0 test bx, bx .text:08005AA3 jl short loc_0_8005AB0 .text:08005AA5 mov esi, [esp+20h+arg_10] .text:08005AA9 or [esi+edx*2], cx .text:08005AAD jmp short loc_0_8005AD9 .text:08005AAD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005AAF align 4 .text:08005AB0 .text:08005AB0 loc_0_8005AB0: ; CODE XREF: convert_to_byte_patterns+18Ej .text:08005AB0 ; convert_to_byte_patterns+193j .text:08005AB0 inc ebx .text:08005AB1 movsx edx, word ptr [esp+20h+var_4] .text:08005AB6 movsx ecx, bx .text:08005AB9 mov esi, [esp+20h+arg_C] .text:08005ABD mov [esp+20h+var_C], ecx .text:08005AC1 mov ax, [esi+edx*2] .text:08005AC5 mov [esi+ecx*2], ax .text:08005AC9 mov ecx, [esp+20h+arg_10] .text:08005ACD mov esi, [esp+20h+var_C] .text:08005AD1 mov ax, [ecx+edx*2] .text:08005AD5 mov [ecx+esi*2], ax .text:08005AD9 .text:08005AD9 loc_0_8005AD9: ; CODE XREF: convert_to_byte_patterns+17Dj .text:08005AD9 ; convert_to_byte_patterns+19Dj .text:08005AD9 inc word ptr [esp+20h+var_4] .text:08005ADE cmp word ptr [esp+20h+var_4], bp .text:08005AE3 jl short loc_0_8005A78 .text:08005AE5 .text:08005AE5 loc_0_8005AE5: ; CODE XREF: convert_to_byte_patterns+163j .text:08005AE5 inc ebx .text:08005AE6 movsx eax, bx .text:08005AE9 pop ebx .text:08005AEA pop esi .text:08005AEB pop edi .text:08005AEC pop ebp .text:08005AED add esp, 10h .text:08005AF0 retn .text:08005AF0 convert_to_byte_patterns endp .text:08005AF0 .text:08005AF0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005AF1 align 4 .text:08005AF4 .text:08005AF4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005AF4 .text:08005AF4 .text:08005AF4 deg512 proc near ; CODE XREF: decoder_for_2_errors+2D5p .text:08005AF4 ; decoder_for_2_errors+34Cp .text:08005AF4 .text:08005AF4 arg_0 = word ptr 4 .text:08005AF4 .text:08005AF4 movsx eax, [esp+arg_0] .text:08005AF9 push eax .text:08005AFA call flog .text:08005AFF mov edx, eax .text:08005B01 xor ecx, ecx .text:08005B03 add esp, 4 .text:08005B06 mov esi, esi .text:08005B08 .text:08005B08 loc_0_8005B08: ; CODE XREF: deg512+29j .text:08005B08 mov eax, edx .text:08005B0A add dx, dx .text:08005B0D shr eax, 9 .text:08005B10 and dh, 3 .text:08005B13 and eax, 1 .text:08005B16 inc ecx .text:08005B17 or edx, eax .text:08005B19 cmp cx, 8 .text:08005B1D jle short loc_0_8005B08 .text:08005B1F movsx eax, dx .text:08005B22 push eax .text:08005B23 call alog .text:08005B28 cwde .text:08005B29 add esp, 4 .text:08005B2C retn .text:08005B2C deg512 endp .text:08005B2C .text:08005B2C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005B2D align 4 .text:08005B30 .text:08005B30 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005B30 .text:08005B30 .text:08005B30 decoder_for_2_errors proc near ; CODE XREF: flDecodeEDC+42p .text:08005B30 .text:08005B30 var_42 = word ptr -42h .text:08005B30 var_40 = dword ptr -40h .text:08005B30 var_3A = word ptr -3Ah .text:08005B30 var_38 = dword ptr -38h .text:08005B30 var_32 = word ptr -32h .text:08005B30 var_30 = dword ptr -30h .text:08005B30 var_2C = dword ptr -2Ch .text:08005B30 var_28 = dword ptr -28h .text:08005B30 var_24 = dword ptr -24h .text:08005B30 var_20 = dword ptr -20h .text:08005B30 var_1C = dword ptr -1Ch .text:08005B30 var_16 = word ptr -16h .text:08005B30 var_14 = word ptr -14h .text:08005B30 var_12 = word ptr -12h .text:08005B30 var_10 = word ptr -10h .text:08005B30 var_E = word ptr -0Eh .text:08005B30 var_C = word ptr -0Ch .text:08005B30 var_A = word ptr -0Ah .text:08005B30 var_8 = word ptr -8 .text:08005B30 var_6 = word ptr -6 .text:08005B30 var_4 = word ptr -4 .text:08005B30 var_2 = word ptr -2 .text:08005B30 arg_0 = dword ptr 4 .text:08005B30 arg_4 = dword ptr 8 .text:08005B30 arg_8 = dword ptr 0Ch .text:08005B30 .text:08005B30 sub esp, 44h .text:08005B33 push ebp .text:08005B34 push edi .text:08005B35 push esi .text:08005B36 push ebx .text:08005B37 xor ebx, ebx .text:08005B39 mov ebp, [esp+54h+arg_0] .text:08005B3D mov edx, ebx .text:08005B3F nop .text:08005B40 .text:08005B40 loc_0_8005B40: ; CODE XREF: decoder_for_2_errors+22j .text:08005B40 movsx eax, dx .text:08005B43 cmp word ptr [ebp+eax*2+0], 0 .text:08005B49 jz short loc_0_8005B4C .text:08005B4B inc ebx .text:08005B4C .text:08005B4C loc_0_8005B4C: ; CODE XREF: decoder_for_2_errors+19j .text:08005B4C inc dx .text:08005B4E cmp dx, 3 .text:08005B52 jle short loc_0_8005B40 .text:08005B54 test bx, bx .text:08005B57 jnz short loc_0_8005B60 .text:08005B59 xor eax, eax .text:08005B5B jmp loc_0_8005F39 .text:08005B60 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005B60 .text:08005B60 loc_0_8005B60: ; CODE XREF: decoder_for_2_errors+27j .text:08005B60 cmp bx, 3 .text:08005B64 jle loc_0_8005C18 .text:08005B6A movsx eax, word ptr [ebp+0] .text:08005B6E push eax .text:08005B6F movsx eax, word ptr [ebp+2] .text:08005B73 push eax .text:08005B74 call gfdiv .text:08005B79 mov esi, eax .text:08005B7B movsx eax, word ptr [ebp+2] .text:08005B7F push eax .text:08005B80 movsx eax, word ptr [ebp+4] .text:08005B84 push eax .text:08005B85 call gfdiv .text:08005B8A mov ebx, eax .text:08005B8C movsx eax, word ptr [ebp+4] .text:08005B90 push eax .text:08005B91 movsx eax, word ptr [ebp+6] .text:08005B95 push eax .text:08005B96 call gfdiv .text:08005B9B add esp, 18h .text:08005B9E cmp si, bx .text:08005BA1 jnz short loc_0_8005C18 .text:08005BA3 cmp bx, ax .text:08005BA6 jnz short loc_0_8005C18 .text:08005BA8 movsx ebx, bx .text:08005BAB push ebx .text:08005BAC call flog .text:08005BB1 add esp, 4 .text:08005BB4 cmp ax, 19Eh .text:08005BB8 jg short loc_0_8005C18 .text:08005BBA mov ecx, [esp+54h+arg_4] .text:08005BBE mov [ecx], ax .text:08005BC1 push ebx .text:08005BC2 call gfi .text:08005BC7 mov edx, eax .text:08005BC9 xor ebx, ebx .text:08005BCB add esp, 4 .text:08005BCE mov esi, esi .text:08005BD0 .text:08005BD0 loc_0_8005BD0: ; CODE XREF: decoder_for_2_errors+B3j .text:08005BD0 movsx eax, dx .text:08005BD3 push eax .text:08005BD4 push eax .text:08005BD5 call gfmul .text:08005BDA mov edx, eax .text:08005BDC add esp, 8 .text:08005BDF inc ebx .text:08005BE0 cmp ebx, 8 .text:08005BE3 jle short loc_0_8005BD0 .text:08005BE5 movsx eax, word ptr [ebp+2] .text:08005BE9 push eax .text:08005BEA movsx eax, si .text:08005BED push eax .text:08005BEE movsx eax, dx .text:08005BF1 push eax .text:08005BF2 call gfmul .text:08005BF7 add esp, 8 .text:08005BFA cwde .text:08005BFB push eax .text:08005BFC call gfmul .text:08005C01 mov edi, [esp+5Ch+arg_8] .text:08005C05 mov [edi], ax .text:08005C08 mov eax, 1 .text:08005C0D add esp, 8 .text:08005C10 jmp loc_0_8005F39 .text:08005C10 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005C15 align 4 .text:08005C18 .text:08005C18 loc_0_8005C18: ; CODE XREF: decoder_for_2_errors+34j .text:08005C18 ; decoder_for_2_errors+71j ... .text:08005C18 movsx eax, word ptr [ebp+4] .text:08005C1C push eax .text:08005C1D movsx eax, word ptr [ebp+0] .text:08005C21 push eax .text:08005C22 call gfmul .text:08005C27 mov esi, eax .text:08005C29 movsx eax, word ptr [ebp+2] .text:08005C2D push eax .text:08005C2E movsx eax, word ptr [ebp+2] .text:08005C32 push eax .text:08005C33 call gfmul .text:08005C38 xor esi, eax .text:08005C3A add esp, 10h .text:08005C3D test si, si .text:08005C40 jz loc_0_8005ED1 .text:08005C46 movsx eax, word ptr [ebp+6] .text:08005C4A push eax .text:08005C4B movsx eax, word ptr [ebp+2] .text:08005C4F push eax .text:08005C50 call gfmul .text:08005C55 mov ebx, eax .text:08005C57 movsx eax, word ptr [ebp+4] .text:08005C5B push eax .text:08005C5C movsx eax, word ptr [ebp+4] .text:08005C60 push eax .text:08005C61 call gfmul .text:08005C66 mov edx, eax .text:08005C68 add esp, 10h .text:08005C6B xor edx, ebx .text:08005C6D test dx, dx .text:08005C70 jz loc_0_8005ED1 .text:08005C76 movsx esi, si .text:08005C79 push esi .text:08005C7A movsx eax, dx .text:08005C7D push eax .text:08005C7E call gfdiv .text:08005C83 mov [esp+5Ch+var_3A], ax .text:08005C88 movsx eax, word ptr [ebp+4] .text:08005C8C push eax .text:08005C8D movsx eax, word ptr [ebp+2] .text:08005C91 push eax .text:08005C92 call gfmul .text:08005C97 mov ebx, eax .text:08005C99 movsx eax, word ptr [ebp+6] .text:08005C9D push eax .text:08005C9E movsx eax, word ptr [ebp+0] .text:08005CA2 push eax .text:08005CA3 call gfmul .text:08005CA8 mov edx, eax .text:08005CAA add esp, 18h .text:08005CAD xor edx, ebx .text:08005CAF test dx, dx .text:08005CB2 jz loc_0_8005ED1 .text:08005CB8 push esi .text:08005CB9 movsx eax, dx .text:08005CBC push eax .text:08005CBD call gfdiv .text:08005CC2 cwde .text:08005CC3 mov [esp+5Ch+var_30], eax .text:08005CC7 mov ecx, eax .text:08005CC9 push ecx .text:08005CCA mov edi, [esp+60h+var_30] .text:08005CCE push edi .text:08005CCF call gfmul .text:08005CD4 cwde .text:08005CD5 push eax .text:08005CD6 movsx eax, [esp+68h+var_3A] .text:08005CDB push eax .text:08005CDC call gfdiv .text:08005CE1 mov edx, eax .text:08005CE3 lea eax, [esp+6Ch+var_28] .text:08005CE7 push eax .text:08005CE8 push 0Ah .text:08005CEA movsx eax, dx .text:08005CED push eax .text:08005CEE call unpack .text:08005CF3 add esp, 24h .text:08005CF6 mov ecx, [esp+54h+var_24] .text:08005CFA mov [esp+54h+var_32], cx .text:08005CFF test cx, cx .text:08005D02 jnz loc_0_8005ED1 .text:08005D08 mov ax, [esp+54h+var_16] .text:08005D0D mov ebx, [esp+54h+var_1C] .text:08005D11 mov edx, [esp+54h+var_20] .text:08005D15 mov [esp+54h+var_C], ax .text:08005D1A mov ecx, ebx .text:08005D1C mov esi, edx .text:08005D1E xor ecx, eax .text:08005D20 xor esi, eax .text:08005D22 mov ax, word ptr [esp+54h+var_24+2] .text:08005D27 xor eax, edx .text:08005D29 xor eax, ebx .text:08005D2B mov [esp+54h+var_12], ax .text:08005D30 xor eax, [esp+54h+var_28] .text:08005D34 mov dx, word ptr [esp+54h+var_1C+2] .text:08005D39 mov [esp+54h+var_42], ax .text:08005D3E mov [esp+54h+var_14], ax .text:08005D43 xor edx, esi .text:08005D45 xor eax, [esp+3Ch] .text:08005D49 mov edi, [esp+54h+var_28] .text:08005D4D xor edx, eax .text:08005D4F xor di, word ptr [esp+54h+var_28+2] .text:08005D54 mov [esp+54h+var_6], dx .text:08005D59 mov [esp+54h+var_A], di .text:08005D5E xor dx, word ptr [esp+54h+var_20+2] .text:08005D63 xor edi, edx .text:08005D65 xor di, [esp+54h+var_42] .text:08005D6A mov [esp+54h+var_8], cx .text:08005D6F mov [esp+54h+var_10], di .text:08005D74 mov [esp+54h+var_E], si .text:08005D79 mov di, [esp+54h+var_32] .text:08005D7E mov [esp+54h+var_4], ax .text:08005D83 mov [esp+54h+var_2], di .text:08005D88 push 0Ah .text:08005D8A lea eax, [esp+58h+var_14] .text:08005D8E push eax .text:08005D8F call pack .text:08005D94 mov ebx, eax .text:08005D96 movsx eax, bx .text:08005D99 push eax .text:08005D9A mov ecx, [esp+60h+var_30] .text:08005D9E mov esi, ebx .text:08005DA0 push ecx .text:08005DA1 or esi, 1 .text:08005DA4 call gfmul .text:08005DA9 mov ebx, eax .text:08005DAB movsx eax, si .text:08005DAE push eax .text:08005DAF mov edi, [esp+68h+var_30] .text:08005DB3 push edi .text:08005DB4 call gfmul .text:08005DB9 movsx ecx, bx .text:08005DBC mov esi, eax .text:08005DBE mov [esp+6Ch+var_38], ecx .text:08005DC2 mov edi, ecx .text:08005DC4 push edi .text:08005DC5 call flog .text:08005DCA mov word ptr [esp+70h+var_2C+2], ax .text:08005DCF movsx ecx, si .text:08005DD2 mov [esp+70h+var_40], ecx .text:08005DD6 mov edi, ecx .text:08005DD8 push edi .text:08005DD9 call flog .text:08005DDE mov word ptr [esp+74h+var_2C], ax .text:08005DE3 add esp, 20h .text:08005DE6 cmp word ptr [esp+54h+var_2C+2], 19Eh .text:08005DED jg loc_0_8005ED1 .text:08005DF3 cmp word ptr [esp+54h+var_2C], 19Eh .text:08005DFA jg loc_0_8005ED1 .text:08005E00 mov ecx, [esp+54h+var_38] .text:08005E04 push ecx .text:08005E05 call deg512 .text:08005E0A mov edi, [esp+58h+var_38] .text:08005E0E push edi .text:08005E0F xor esi, ebx .text:08005E11 mov ecx, [esp+5Ch+var_38] .text:08005E15 mov ebx, eax .text:08005E17 push ecx .text:08005E18 call gfmul .text:08005E1D mov edx, eax .text:08005E1F movsx eax, dx .text:08005E22 push eax .text:08005E23 movsx eax, bx .text:08005E26 push eax .text:08005E27 call gfdiv .text:08005E2C movsx esi, si .text:08005E2F mov ebx, eax .text:08005E31 push esi .text:08005E32 movsx eax, bx .text:08005E35 push eax .text:08005E36 call gfmul .text:08005E3B mov ebx, eax .text:08005E3D add esp, 1Ch .text:08005E40 test bx, bx .text:08005E43 jz loc_0_8005ED1 .text:08005E49 mov edi, [esp+54h+var_40] .text:08005E4D push edi .text:08005E4E movsx eax, word ptr [ebp+0] .text:08005E52 push eax .text:08005E53 call gfmul .text:08005E58 mov edx, eax .text:08005E5A add esp, 8 .text:08005E5D xor dx, [ebp+2] .text:08005E61 jz short loc_0_8005ED1 .text:08005E63 movsx eax, bx .text:08005E66 push eax .text:08005E67 movsx eax, dx .text:08005E6A push eax .text:08005E6B call gfdiv .text:08005E70 mov ecx, [esp+5Ch+arg_8] .text:08005E74 mov [ecx], ax .text:08005E77 mov edi, [esp+5Ch+var_40] .text:08005E7B push edi .text:08005E7C call deg512 .text:08005E81 mov ecx, [esp+60h+var_40] .text:08005E85 push ecx .text:08005E86 mov edi, [esp+64h+var_40] .text:08005E8A mov ebx, eax .text:08005E8C push edi .text:08005E8D call gfmul .text:08005E92 mov edx, eax .text:08005E94 movsx eax, dx .text:08005E97 push eax .text:08005E98 movsx eax, bx .text:08005E9B push eax .text:08005E9C call gfdiv .text:08005EA1 mov ebx, eax .text:08005EA3 push esi .text:08005EA4 movsx eax, bx .text:08005EA7 push eax .text:08005EA8 call gfmul .text:08005EAD mov ebx, eax .text:08005EAF add esp, 24h .text:08005EB2 test bx, bx .text:08005EB5 jz short loc_0_8005ED1 .text:08005EB7 mov ecx, [esp+54h+var_38] .text:08005EBB push ecx .text:08005EBC movsx eax, word ptr [ebp+0] .text:08005EC0 push eax .text:08005EC1 call gfmul .text:08005EC6 mov edx, eax .text:08005EC8 add esp, 8 .text:08005ECB xor dx, [ebp+2] .text:08005ECF jnz short loc_0_8005ED8 .text:08005ED1 .text:08005ED1 loc_0_8005ED1: ; CODE XREF: decoder_for_2_errors+110j .text:08005ED1 ; decoder_for_2_errors+140j ... .text:08005ED1 mov eax, 0FFFFFFFFh .text:08005ED6 jmp short loc_0_8005F39 .text:08005ED8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005ED8 .text:08005ED8 loc_0_8005ED8: ; CODE XREF: decoder_for_2_errors+39Fj .text:08005ED8 movsx eax, bx .text:08005EDB push eax .text:08005EDC movsx eax, dx .text:08005EDF push eax .text:08005EE0 call gfdiv .text:08005EE5 mov edi, [esp+5Ch+arg_8] .text:08005EE9 add esp, 8 .text:08005EEC mov [edi+2], ax .text:08005EF0 mov ecx, [esp+54h+var_2C] .text:08005EF4 cmp word ptr [esp+54h+var_2C+2], cx .text:08005EF9 jle short loc_0_8005F20 .text:08005EFB mov edi, [esp+54h+arg_4] .text:08005EFF mov [edi], cx .text:08005F02 mov cx, word ptr [esp+54h+var_2C+2] .text:08005F07 mov [edi+2], cx .text:08005F0B mov edi, [esp+54h+arg_8] .text:08005F0F mov ax, [edi+2] .text:08005F13 mov dx, [edi] .text:08005F16 mov [edi], ax .text:08005F19 mov [edi+2], dx .text:08005F1D jmp short loc_0_8005F34 .text:08005F1D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005F1F align 4 .text:08005F20 .text:08005F20 loc_0_8005F20: ; CODE XREF: decoder_for_2_errors+3C9j .text:08005F20 mov ecx, [esp+54h+arg_4] .text:08005F24 mov di, word ptr [esp+54h+var_2C+2] .text:08005F29 mov [ecx], di .text:08005F2C mov edi, [esp+54h+var_2C] .text:08005F30 mov [ecx+2], di .text:08005F34 .text:08005F34 loc_0_8005F34: ; CODE XREF: decoder_for_2_errors+3EDj .text:08005F34 mov eax, 2 .text:08005F39 .text:08005F39 loc_0_8005F39: ; CODE XREF: decoder_for_2_errors+2Bj .text:08005F39 ; decoder_for_2_errors+E0j ... .text:08005F39 pop ebx .text:08005F3A pop esi .text:08005F3B pop edi .text:08005F3C pop ebp .text:08005F3D add esp, 44h .text:08005F40 retn .text:08005F40 decoder_for_2_errors endp .text:08005F40 .text:08005F40 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005F41 align 4 .text:08005F44 .text:08005F44 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:08005F44 .text:08005F44 .text:08005F44 public flDecodeEDC .text:08005F44 flDecodeEDC proc near ; CODE XREF: flCheckAndFixEDC+1Fp .text:08005F44 .text:08005F44 var_20 = dword ptr -20h .text:08005F44 var_1A = word ptr -1Ah .text:08005F44 var_18 = byte ptr -18h .text:08005F44 var_14 = byte ptr -14h .text:08005F44 var_10 = byte ptr -10h .text:08005F44 var_8 = byte ptr -8 .text:08005F44 arg_0 = dword ptr 4 .text:08005F44 arg_4 = dword ptr 8 .text:08005F44 arg_8 = dword ptr 0Ch .text:08005F44 arg_C = dword ptr 10h .text:08005F44 .text:08005F44 sub esp, 20h .text:08005F47 push ebp .text:08005F48 push edi .text:08005F49 push esi .text:08005F4A push ebx .text:08005F4B lea ebx, [esp+30h+var_10] .text:08005F4F mov esi, [esp+30h+arg_0] .text:08005F53 mov [esp+30h+var_20], ebx .text:08005F57 mov ebp, [esp+30h+arg_C] .text:08005F5B push ebx .text:08005F5C push esi .text:08005F5D call RTLeightToTen .text:08005F62 xor ebx, ebx .text:08005F64 mov bl, [esi+5] .text:08005F67 mov [esp+38h+var_1A], bx .text:08005F6C lea esi, [esp+38h+var_8] .text:08005F70 push esi .text:08005F71 mov ebx, [esp+3Ch+var_20] .text:08005F75 push ebx .text:08005F76 call residue_to_syndrom .text:08005F7B lea eax, [esp+40h+var_18] .text:08005F7F push eax .text:08005F80 lea edi, [esp+44h+var_14] .text:08005F84 push edi .text:08005F85 push esi .text:08005F86 call decoder_for_2_errors .text:08005F8B add esp, 1Ch .text:08005F8E test ax, ax .text:08005F91 jnz short loc_0_8005F9C .text:08005F93 xor eax, eax .text:08005F95 jmp loc_0_8006021 .text:08005F95 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08005F9A align 4 .text:08005F9C .text:08005F9C loc_0_8005F9C: ; CODE XREF: flDecodeEDC+4Dj .text:08005F9C test ax, ax .text:08005F9F jl short loc_0_800601C .text:08005FA1 movsx ebx, ax .text:08005FA4 xor edx, edx .text:08005FA6 mov [esp+30h+var_20], ebx .text:08005FAA cmp edx, ebx .text:08005FAC jge short loc_0_8005FC9 .text:08005FAE mov ecx, edi .text:08005FB0 mov esi, 19Eh .text:08005FB5 lea esi, [esi+0] .text:08005FB8 .text:08005FB8 loc_0_8005FB8: ; CODE XREF: flDecodeEDC+83j .text:08005FB8 mov ebx, esi .text:08005FBA sub bx, [ecx+edx*2] .text:08005FBE mov [ecx+edx*2], bx .text:08005FC2 inc edx .text:08005FC3 cmp [esp+30h+var_20], edx .text:08005FC7 jg short loc_0_8005FB8 .text:08005FC9 .text:08005FC9 loc_0_8005FC9: ; CODE XREF: flDecodeEDC+68j .text:08005FC9 push ebp .text:08005FCA mov ebx, [esp+34h+arg_8] .text:08005FCE push ebx .text:08005FCF cwde .text:08005FD0 push eax .text:08005FD1 lea eax, [esp+3Ch+var_18] .text:08005FD5 push eax .text:08005FD6 lea eax, [esp+40h+var_14] .text:08005FDA push eax .text:08005FDB call convert_to_byte_patterns .text:08005FE0 mov ebx, [esp+44h+arg_4] .text:08005FE4 add esp, 14h .text:08005FE7 mov [ebx], al .text:08005FE9 xor edx, edx .text:08005FEB mov ebx, [esp+30h+arg_4] .text:08005FEF mov eax, edx .text:08005FF1 movsx ecx, byte ptr [ebx] .text:08005FF4 cmp edx, ecx .text:08005FF6 jge short loc_0_800600E .text:08005FF8 .text:08005FF8 loc_0_8005FF8: ; CODE XREF: flDecodeEDC+C8j .text:08005FF8 mov ebx, [esp+30h+arg_8] .text:08005FFC cmp word ptr [ebx+edx*2], 200h .text:08006002 jg short loc_0_8006009 .text:08006004 xor ax, [ebp+edx*2+0] .text:08006009 .text:08006009 loc_0_8006009: ; CODE XREF: flDecodeEDC+BEj .text:08006009 inc edx .text:0800600A cmp edx, ecx .text:0800600C jl short loc_0_8005FF8 .text:0800600E .text:0800600E loc_0_800600E: ; CODE XREF: flDecodeEDC+B2j .text:0800600E cmp [esp+30h+var_1A], ax .text:08006013 jnz short loc_0_800601C .text:08006015 mov eax, 1 .text:0800601A jmp short loc_0_8006021 .text:0800601C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:0800601C .text:0800601C loc_0_800601C: ; CODE XREF: flDecodeEDC+5Bj .text:0800601C ; flDecodeEDC+CFj .text:0800601C mov eax, 2 .text:08006021 .text:08006021 loc_0_8006021: ; CODE XREF: flDecodeEDC+51j .text:08006021 ; flDecodeEDC+D6j .text:08006021 pop ebx .text:08006022 pop esi .text:08006023 pop edi .text:08006024 pop ebp .text:08006025 add esp, 20h .text:08006028 retn .text:08006028 flDecodeEDC endp .text:08006028 .text:08006028 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 .text:08006029 align 4 .text:0800602C .text:0800602C ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 .text:0800602C .text:0800602C .text:0800602C public flCheckAndFixEDC .text:0800602C flCheckAndFixEDC proc near ; CODE XREF: readOneSector+199p .text:0800602C .text:0800602C var_20 = dword ptr -20h .text:0800602C var_19 = byte ptr -19h .text:0800602C var_18 = byte ptr -18h .text:0800602C var_C = byte ptr -0Ch .text:0800602C arg_0 = dword ptr 4 .text:0800602C arg_4 = dword ptr 8 .text:0800602C arg_8 = dword ptr 0Ch .text:0800602C .text:0800602C sub esp, 20h .text:0800602F push ebp .text:08006030 push edi .text:08006031 push esi .text:08006032 push ebx .text:08006033 lea esi, [esp+30h+var_18] .text:08006037 mov ebp, [esp+30h+arg_0] .text:0800603B mov edx, [esp+30h+arg_4] .text:0800603F push esi .text:08006040 lea ebx, [esp+34h+var_C] .text:08006044 push ebx .text:08006045 lea eax, [esp+38h+var_19] .text:08006049 push eax .text:0800604A push edx .text:0800604B call flDecodeEDC .text:08006050 add esp, 10h .text:08006053 cmp eax, 1 .text:08006056 jnz short loc_0_8006089 .text:08006058 xor ecx, ecx .text:0800605A movsx eax, [esp+30h+var_19] .text:0800605F cmp ecx, eax .text:08006061 jge short loc_0_8006087 .text:08006063 mov [esp+30h+var_20], ebx .text:08006067 mov ebx, eax .text:08006069 lea esi, [esi+0] .text:0800606C .text:0800606C loc_0_800606C: ; CODE XREF: flCheckAndFixEDC+59j .text:0800606C mov eax, ecx .text:0800606E add eax, ecx .text:08006070 mov edi, [esp+30h+var_20] .text:08006074 movsx edx, word ptr [eax+edi] .text:08006078 xor edx, [esp+30h+arg_8] .text:0800607C mov al, [eax+esi] .text:0800607F inc ecx .text:08006080 xor [edx+ebp], al .text:08006083 cmp ecx, ebx .text:08006085 jl short loc_0_800606C .text:08006087 .text:08006087 loc_0_8006087: ; CODE XREF: flCheckAndFixEDC+35j .text:08006087 xor eax, eax .text:08006089 .text:08006089 loc_0_8006089: ; CODE XREF: flCheckAndFixEDC+2Aj .text:08006089 pop ebx .text:0800608A pop esi .text:0800608B pop edi .text:0800608C pop ebp .text:0800608D add esp, 20h .text:08006090 retn .text:08006090 flCheckAndFixEDC endp .text:08006090 .text:08006090 _text ends .text:08006090 .rodata:08006091 ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 .rodata:08006091 .rodata:08006091 ; Segment type: Pure data .rodata:08006091 ; Segment permissions: Read .rodata:08006091 _rodata segment byte public 'CONST' use32 .rodata:08006091 assume cs:_rodata .rodata:08006091 ;org 8006091h .rodata:08006091 aFat12 db 'FAT12 ',0 ; DATA XREF: createDOSbootSector+8Bo .rodata:0800609A aFat16 db 'FAT16 ',0 ; DATA XREF: createDOSbootSector+7Fo .rodata:080060A3 aMsystems db 'MSystems',0 ; DATA XREF: createDOSbootSector+B0o .rodata:080060AC aDebugErrorSock db 'Debug: error, socket window looks like RAM.',0Ah,0 .rodata:080060AC ; DATA XREF: isRAM+44o .rodata:080060D9 aDebugDidNotIde db 'Debug: did not identify flash media.',0Ah,0 .rodata:080060D9 ; DATA XREF: flIdentifyFlash+98o .rodata:080060FF aDebugFailedAll db 'Debug: failed allocating sector buffer.',0Ah,0 .rodata:080060FF ; DATA XREF: flInitSockets+4Eo .rodata:08006128 aDebugTimeoutEr db 'Debug: timeout error in NFDC 2148.',0Ah,0 .rodata:08006128 ; DATA XREF: waitForReady+1Eo .rodata:0800614C aDebugNfdc2148W db 'Debug: NFDC 2148 write failed.',0Ah,0 .rodata:0800614C ; DATA XREF: writeExecute+20o .rodata:0800616C aDebugEdcErrorF db 'Debug: EDC error for NFDC 2148.',0Ah,0 .rodata:0800616C ; DATA XREF: readOneSector+1A5o .rodata:0800618D aDebugNfdc2148E db 'Debug: NFDC 2148 erase failed.',0Ah,0 .rodata:0800618D ; DATA XREF: doc2Erase+C8o .rodata:0800618D ; doc2Erase+1CCo .rodata:080061AD aDebugEnteringN db 'debug: entering NFDC 2148 identification routine.',0Ah,0 .rodata:080061AD ; DATA XREF: doc2Identify+14o .rodata:080061E0 aDebugFailedToI db 'Debug: failed to identify NFDC 2148.',0Ah,0 .rodata:080061E0 ; DATA XREF: doc2Identify+29Fo .rodata:08006206 aDebugIdentifie db 'Debug: identified NFDC 2148.',0Ah,0 .rodata:08006206 ; DATA XREF: doc2Identify+2F7o .rodata:08006224 aDebugMediaIsNo db 'Debug: media is not fit for NFTL format.',0Ah,0 .rodata:08006224 ; DATA XREF: initNFTL+1Ao .rodata:0800624E aDebugFailedA_0 db 'Debug: failed allocating conversion tables for NFTL.',0Ah,0 .rodata:0800624E ; DATA XREF: initTables+32o .rodata:08006284 aDebugStartingN db 'Debug: starting NFTL format.',0Ah,0 .rodata:08006284 ; DATA XREF: formatNFTL+1Do .rodata:080062A2 aAnand db 'ANAND',0 ; DATA XREF: formatNFTL+8Co .rodata:080062A2 ; formatNFTL+557o ... .rodata:080062A8 aDebugFinishedN db 'Debug: finished NFTL format.',0Ah,0 .rodata:080062A8 ; DATA XREF: formatNFTL+738o .rodata:080062C6 aDebugStartin_0 db 'Debug: starting NFTL mount.',0Ah,0 .rodata:080062C6 ; DATA XREF: mountNFTL+2Eo .rodata:080062E3 aDebugNotNftlFo db 'Debug: not NFTL format.',0Ah,0 .rodata:080062E3 ; DATA XREF: mountNFTL+D5o .rodata:080062FC aDebugFinishe_0 db 'Debug: finished NFTL mount.',0Ah,0 .rodata:080062FC ; DATA XREF: mountNFTL+3E3o .rodata:08006319 aDebugNftlRunsW db 'Debug: NFTL runs without U-cache',0Ah,0 .rodata:08006319 ; DATA XREF: mountNFTL+434o .rodata:0800633B aDebugNftlRun_0 db 'Debug: NFTL runs without S-cache',0Ah,0 .rodata:0800633B ; DATA XREF: mountNFTL+490o .rodata:0800633B _rodata ends .rodata:0800633B .data:08006360 ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 .data:08006360 .data:08006360 ; Segment type: Pure data .data:08006360 ; Segment permissions: Read/Write .data:08006360 _data segment dword public 'DATA' use32 .data:08006360 assume cs:_data .data:08006360 ;org 8006360h .data:08006360 bootCode_4 db 0FAh ; ; DATA XREF: createMasterBootRecord+35o .data:08006361 db 33h ; 3 .data:08006362 db 0C0h ; .data:08006363 db 8Eh ; .data:08006364 db 0D0h ; .data:08006365 db 0BCh ; .data:08006366 db 0 ; .data:08006367 db 7Ch ; | .data:08006368 db 8Bh ; .data:08006369 db 0F4h ; .data:0800636A db 50h ; P .data:0800636B db 7 ; .data:0800636C db 50h ; P .data:0800636D db 1Fh ; .data:0800636E db 0FBh ; .data:0800636F db 0FCh ; .data:08006370 db 0BFh ; .data:08006371 db 0 ; .data:08006372 db 6 ; .data:08006373 db 0B9h ; .data:08006374 db 0 ; .data:08006375 db 1 ; .data:08006376 db 0F2h ; .data:08006377 db 0A5h ; .data:08006378 db 0EAh ; .data:08006379 db 1Dh ; .data:0800637A db 6 ; .data:0800637B db 0 ; .data:0800637C db 0 ; .data:0800637D db 0BEh ; .data:0800637E db 0BEh ; .data:0800637F db 7 ; .data:08006380 db 0B3h ; .data:08006381 db 4 ; .data:08006382 db 80h ; .data:08006383 db 3Ch ; < .data:08006384 db 80h ; .data:08006385 db 74h ; t .data:08006386 db 0Eh ; .data:08006387 db 80h ; .data:08006388 db 3Ch ; < .data:08006389 db 0 ; .data:0800638A db 75h ; u .data:0800638B db 1Ch ; .data:0800638C db 83h ; .data:0800638D db 0C6h ; .data:0800638E db 10h ; .data:0800638F db 0FEh ; .data:08006390 db 0CBh ; .data:08006391 db 75h ; u .data:08006392 db 0EFh ; .data:08006393 db 0CDh ; .data:08006394 db 18h ; .data:08006395 db 8Bh ; .data:08006396 db 14h ; .data:08006397 db 8Bh ; .data:08006398 db 4Ch ; L .data:08006399 db 2 ; .data:0800639A db 8Bh ; .data:0800639B db 0EEh ; .data:0800639C db 83h ; .data:0800639D db 0C6h ; .data:0800639E db 10h ; .data:0800639F db 0FEh ; .data:080063A0 db 0CBh ; .data:080063A1 db 74h ; t .data:080063A2 db 1Ah ; .data:080063A3 db 80h ; .data:080063A4 db 3Ch ; < .data:080063A5 db 0 ; .data:080063A6 db 74h ; t .data:080063A7 db 0F4h ; .data:080063A8 db 0BEh ; .data:080063A9 db 8Bh ; .data:080063AA db 6 ; .data:080063AB db 0ACh ; .data:080063AC db 3Ch ; < .data:080063AD db 0 ; .data:080063AE db 74h ; t .data:080063AF db 0Bh ; .data:080063B0 db 56h ; V .data:080063B1 db 0BBh ; .data:080063B2 db 7 ; .data:080063B3 db 0 ; .data:080063B4 db 0B4h ; .data:080063B5 db 0Eh ; .data:080063B6 db 0CDh ; .data:080063B7 db 10h ; .data:080063B8 db 5Eh ; ^ .data:080063B9 db 0EBh ; .data:080063BA db 0F0h ; .data:080063BB db 0EBh ; .data:080063BC db 0FEh ; .data:080063BD db 0BFh ; .data:080063BE db 5 ; .data:080063BF db 0 ; .data:080063C0 db 0BBh ; .data:080063C1 db 0 ; .data:080063C2 db 7Ch ; | .data:080063C3 db 0B8h ; .data:080063C4 db 1 ; .data:080063C5 db 2 ; .data:080063C6 db 57h ; W .data:080063C7 db 0CDh ; .data:080063C8 db 13h ; .data:080063C9 db 5Fh ; _ .data:080063CA db 73h ; s .data:080063CB db 0Ch ; .data:080063CC db 33h ; 3 .data:080063CD db 0C0h ; .data:080063CE db 0CDh ; .data:080063CF db 13h ; .data:080063D0 db 4Fh ; O .data:080063D1 db 75h ; u .data:080063D2 db 0EDh ; .data:080063D3 db 0BEh ; .data:080063D4 db 0A3h ; .data:080063D5 db 6 ; .data:080063D6 db 0EBh ; .data:080063D7 db 0D3h ; .data:080063D8 db 0BEh ; .data:080063D9 db 0C2h ; .data:080063DA db 6 ; .data:080063DB db 0BFh ; .data:080063DC db 0FEh ; .data:080063DD db 7Dh ; } .data:080063DE db 81h ; .data:080063DF db 3Dh ; = .data:080063E0 db 55h ; U .data:080063E1 db 0AAh ; .data:080063E2 db 75h ; u .data:080063E3 db 0C7h ; .data:080063E4 db 8Bh ; .data:080063E5 db 0F5h ; .data:080063E6 db 0EAh ; .data:080063E7 db 0 ; .data:080063E8 db 7Ch ; | .data:080063E9 db 0 ; .data:080063EA db 0 ; .data:080063EB db 49h ; I .data:080063EC db 6Eh ; n .data:080063ED db 76h ; v .data:080063EE db 61h ; a .data:080063EF db 6Ch ; l .data:080063F0 db 69h ; i .data:080063F1 db 64h ; d .data:080063F2 db 20h ; .data:080063F3 db 70h ; p .data:080063F4 db 61h ; a .data:080063F5 db 72h ; r .data:080063F6 db 74h ; t .data:080063F7 db 69h ; i .data:080063F8 db 74h ; t .data:080063F9 db 69h ; i .data:080063FA db 6Fh ; o .data:080063FB db 6Eh ; n .data:080063FC db 20h ; .data:080063FD db 74h ; t .data:080063FE db 61h ; a .data:080063FF db 62h ; b .data:08006400 db 6Ch ; l .data:08006401 db 65h ; e .data:08006402 db 0 ; .data:08006403 db 45h ; E .data:08006404 db 72h ; r .data:08006405 db 72h ; r .data:08006406 db 6Fh ; o .data:08006407 db 72h ; r .data:08006408 db 20h ; .data:08006409 db 6Ch ; l .data:0800640A db 6Fh ; o .data:0800640B db 61h ; a .data:0800640C db 64h ; d .data:0800640D db 69h ; i .data:0800640E db 6Eh ; n .data:0800640F db 67h ; g .data:08006410 db 20h ; .data:08006411 db 6Fh ; o .data:08006412 db 70h ; p .data:08006413 db 65h ; e .data:08006414 db 72h ; r .data:08006415 db 61h ; a .data:08006416 db 74h ; t .data:08006417 db 69h ; i .data:08006418 db 6Eh ; n .data:08006419 db 67h ; g .data:0800641A db 20h ; .data:0800641B db 73h ; s .data:0800641C db 79h ; y .data:0800641D db 73h ; s .data:0800641E db 74h ; t .data:0800641F db 65h ; e .data:08006420 db 6Dh ; m .data:08006421 db 0 ; .data:08006422 db 4Dh ; M .data:08006423 db 69h ; i .data:08006424 db 73h ; s .data:08006425 db 73h ; s .data:08006426 db 69h ; i .data:08006427 db 6Eh ; n .data:08006428 db 67h ; g .data:08006429 db 20h ; .data:0800642A db 6Fh ; o .data:0800642B db 70h ; p .data:0800642C db 65h ; e .data:0800642D db 72h ; r .data:0800642E db 61h ; a .data:0800642F db 74h ; t .data:08006430 db 69h ; i .data:08006431 db 6Eh ; n .data:08006432 db 67h ; g .data:08006433 db 20h ; .data:08006434 db 73h ; s .data:08006435 db 79h ; y .data:08006436 db 73h ; s .data:08006437 db 74h ; t .data:08006438 db 65h ; e .data:08006439 db 6Dh ; m .data:0800643A db 0 ; .data:0800643B db 0 ; .data:0800643C* public noOfMTDs .data:0800643C*noOfMTDs dd 0 ; DATA XREF: flIdentifyFlash+53r .data:0800643C* ; flIdentifyFlash+70r ... .data:08006440* public noOfDrives .data:08006440*noOfDrives dd 0 ; DATA XREF: flRegisterDOCSOC+4r .data:08006440* ; flRegisterDOCSOC+24r ... .data:08006444*currentAddress_432 dd 0 ; DATA XREF: flDocWindowBaseAddress+1Er .data:08006444* ; flDocWindowBaseAddress+26w ... .data:08006448 anandMark_457 dw 5555h ; DATA XREF: writeOneSector+1EAo .data:0800644A align 4 .data:0800644C scacheTable dd 0FF551100h ; DATA XREF: getSectorFlagsFromCache+23r .data:08006450 public flMsecCounter .data:08006450 flMsecCounter dd 0 .data:08006454* public initDone .data:08006454*initDone dd 0 ; DATA XREF: bdCall+Cr .data:08006454* ; flInit+2r ... .data:08006458 mask_20 dw 0 ; DATA XREF: convert_to_byte_patterns+F0r .data:08006458 ; convert_to_byte_patterns+129r .data:0800645A db 1 ; .data:0800645B db 0 ; .data:0800645C db 3 ; .data:0800645D db 0 ; .data:0800645E db 7 ; .data:0800645F db 0 ; .data:08006460 db 0Fh ; .data:08006461 db 0 ; .data:08006462 db 1Fh ; .data:08006463 db 0 ; .data:08006464 db 3Fh ; ? .data:08006465 db 0 ; .data:08006466 db 7Fh ;  .data:08006467 db 0 ; .data:08006468 db 0FFh ; .data:08006469 db 0 ; .data:08006469 _data ends .data:08006469 .bss:0800646C ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 .bss:0800646C .bss:0800646C ; Segment type: Uninitialized .bss:0800646C ; Segment permissions: Read/Write .bss:0800646C _bss segment dword public 'BSS' use32 .bss:0800646C assume cs:_bss .bss:0800646C ;org 800646Ch .bss:0800646C assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing .bss:0800646C vols db 68h dup(?) ; DATA XREF: flSocketOf+Ao .bss:0800646C ; flInitSockets+4o .bss:080064D4*volBuffers dd ? ; DATA XREF: flBufferOf+Br .bss:080064D4* ; flInitSockets+40w ... .bss:080064D8 mtdVars db 2Ch dup(?) ; DATA XREF: getNFDC21Vars+Ao .bss:080064D8 ; doc2Identify+2Fo .bss:08006504 vols_0 db 94h dup(?) ; DATA XREF: getAnandRec+Ao .bss:08006504 ; formatNFTL+22o ... .bss:08006504 _bss ends .bss:08006504 common:8006598*; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 common:8006598* common:8006598*; Segment type: Communal definitions common:8006598*; common common:8006598* comm mtdTable:dword ; DATA XREF: flIdentifyFlash+60r common:8006598* ; flRegisterDOC2000+9w common:800659C* comm noOfTLs:dword ; DATA XREF: flMount+4Ar common:800659C* ; flMount+8Fr ... common:80065A0 comm tlTable:8 ; DATA XREF: flMount+52o common:80065A0 ; flMount+BDo ... common:80065A4 comm dataErrorObject:dword ; DATA XREF: mapSector+5Bo common:80065A4 ; absRead+36o ... common:80065A4 extern:8006920 ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 extern:8006920 extern:8006920 ; Segment type: Externs extern:8006920 ; extern extern:8006920 extrn flmemset:near ; CODE XREF: createMasterBootRecord+2Bp extern:8006920 ; createDOSbootSector+2Fp ... extern:8006924 extrn flmemcpy:near ; CODE XREF: createMasterBootRecord+3Bp extern:8006924 ; createDOSbootSector+46p ... extern:8006928 extrn flDelayMsecs:near ; CODE XREF: readFlashID+5Fp extern:8006928 ; readFlashID+BEp extern:800692C extrn flkfree:near ; CODE XREF: flExitSocket+31p extern:800692C ; dismountNFTL+Dp ... extern:8006930 extrn flprintk:near ; CODE XREF: isRAM+49p extern:8006930 ; flIdentifyFlash+9Dp ... extern:8006934 extrn flmemcmp:near ; CODE XREF: isErased+5Ep extern:8006934 ; formatNFTL+92p ... extern:8006938 extrn flkmalloc:near ; CODE XREF: flInitSockets+3Bp extern:8006938 ; initTables+Cp ... extern:8006938 extern:8006938 extern:8006938 end