.text:00625DD0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ .text:00625DD0 .text:00625DD0 ; Attributes: bp-based frame .text:00625DD0 .text:00625DD0 ; int __stdcall sub_625DD0(int,int,int,int,int,UINT uExitCode) .text:00625DD0 sub_625DD0 proc near ; CODE XREF: sub_402060+46p .text:00625DD0 ; sub_402060+A6p ... .text:00625DD0 .text:00625DD0 SystemTime = _SYSTEMTIME ptr -0D74h .text:00625DD0 var_D64 = dword ptr -0D64h .text:00625DD0 ExitCode = dword ptr -0D60h .text:00625DD0 var_D5C = dword ptr -0D5Ch .text:00625DD0 var_D58 = dword ptr -0D58h .text:00625DD0 var_D54 = dword ptr -0D54h .text:00625DD0 var_D50 = dword ptr -0D50h .text:00625DD0 FindFileData = _WIN32_FIND_DATAA ptr -0D4Ch .text:00625DD0 var_C0C = dword ptr -0C0Ch .text:00625DD0 Text = byte ptr -0B0Ch .text:00625DD0 FileName = byte ptr -30Ch .text:00625DD0 Caption = byte ptr -208h .text:00625DD0 var_104 = dword ptr -104h .text:00625DD0 var_4 = dword ptr -4 .text:00625DD0 arg_0 = dword ptr 8 .text:00625DD0 arg_4 = dword ptr 0Ch .text:00625DD0 arg_8 = dword ptr 10h .text:00625DD0 arg_C = dword ptr 14h .text:00625DD0 arg_10 = dword ptr 18h .text:00625DD0 uExitCode = dword ptr 1Ch .text:00625DD0 .text:00625DD0 push ebp .text:00625DD1 mov ebp, esp .text:00625DD3 sub esp, 0D74h .text:00625DD9 mov eax, dword_8AE4E8 .text:00625DDE xor eax, ebp .text:00625DE0 mov [ebp+var_4], eax .text:00625DE3 cmp dword_CBF70C, 0 .text:00625DEA mov eax, [ebp+arg_C] .text:00625DED push edi .text:00625DEE mov edi, [ebp+arg_4] .text:00625DF1 mov [ebp+var_D58], eax .text:00625DF7 jz short loc_625E0C .text:00625DF9 .text:00625DF9 loc_625DF9: ; CODE XREF: sub_625DD0+84j .text:00625DF9 xor eax, eax .text:00625DFB pop edi .text:00625DFC mov ecx, [ebp+var_4] .text:00625DFF xor ecx, ebp .text:00625E01 call sub_4096EA .text:00625E06 mov esp, ebp .text:00625E08 pop ebp .text:00625E09 retn 18h .text:00625E0C ; --------------------------------------------------------------------------- .text:00625E0C .text:00625E0C loc_625E0C: ; CODE XREF: sub_625DD0+27j .text:00625E0C cmp dword_CBF9F4, 0 .text:00625E13 jz short loc_625E4D .text:00625E15 cmp edi, dword_CBF9AC .text:00625E1B jnz short loc_625E3E .text:00625E1D mov ecx, [ebp+arg_8] .text:00625E20 cmp ecx, dword_CBF9A8 .text:00625E26 jnz short loc_625E3E .text:00625E28 mov eax, 1 .text:00625E2D pop edi .text:00625E2E mov ecx, [ebp+var_4] .text:00625E31 xor ecx, ebp .text:00625E33 call sub_4096EA .text:00625E38 mov esp, ebp .text:00625E3A pop ebp .text:00625E3B retn 18h .text:00625E3E ; --------------------------------------------------------------------------- .text:00625E3E .text:00625E3E loc_625E3E: ; CODE XREF: sub_625DD0+4Bj .text:00625E3E ; sub_625DD0+56j .text:00625E3E mov edx, [ebp+arg_8] .text:00625E41 mov dword_CBF9AC, edi .text:00625E47 mov dword_CBF9A8, edx .text:00625E4D .text:00625E4D loc_625E4D: ; CODE XREF: sub_625DD0+43j .text:00625E4D cmp dword_CBF6DC, 0 .text:00625E54 jnz short loc_625DF9 .text:00625E56 push 104h ; nSize .text:00625E5B lea eax, [ebp+FileName] .text:00625E61 push eax ; lpFilename .text:00625E62 push 0 ; hModule .text:00625E64 mov dword_CBF6DC, 1 .text:00625E6E mov [ebp+FileName], 0 .text:00625E75 mov [ebp+Caption], 0 .text:00625E7C call ds:GetModuleFileNameA .text:00625E82 push 140h ; size_t .text:00625E87 lea ecx, [ebp+FindFileData] .text:00625E8D push 0 ; int .text:00625E8F push ecx ; void * .text:00625E90 call _memset .text:00625E95 add esp, 0Ch .text:00625E98 lea edx, [ebp+FindFileData] .text:00625E9E push edx ; lpFindFileData .text:00625E9F lea eax, [ebp+FileName] .text:00625EA5 push eax ; lpFileName .text:00625EA6 call ds:FindFirstFileA .text:00625EAC test eax, eax .text:00625EAE jz short loc_625EB7 .text:00625EB0 push eax ; hFindFile .text:00625EB1 call ds:FindClose .text:00625EB7 .text:00625EB7 loc_625EB7: ; CODE XREF: sub_625DD0+DEj .text:00625EB7 push 104h .text:00625EBC lea ecx, [ebp+FindFileData.cFileName] .text:00625EC2 push ecx .text:00625EC3 lea edx, [ebp+Caption] .text:00625EC9 push edx .text:00625ECA call sub_61B540 .text:00625ECF lea eax, [ebp+Caption] .text:00625ED5 push 2Eh .text:00625ED7 push eax .text:00625ED8 call sub_61B480 .text:00625EDD add esp, 8 .text:00625EE0 test eax, eax .text:00625EE2 jz short loc_625EF8 .text:00625EE4 lea ecx, [ebp+Caption] .text:00625EEA push 2Eh .text:00625EEC push ecx .text:00625EED call sub_61B480 .text:00625EF2 add esp, 8 .text:00625EF5 mov byte ptr [eax], 0 .text:00625EF8 .text:00625EF8 loc_625EF8: ; CODE XREF: sub_625DD0+112j .text:00625EF8 push esi .text:00625EF9 mov esi, [ebp+arg_0] .text:00625EFC push 100h ; nSize .text:00625F01 lea edx, [ebp+var_104] .text:00625F07 push edx ; int .text:00625F08 push esi ; int .text:00625F09 mov byte ptr [ebp+var_104], 0 .text:00625F10 call sub_625BC0 .text:00625F15 cmp byte ptr [ebp+var_104], 0 .text:00625F1C jnz short loc_625F47 .text:00625F1E mov ecx, esi .text:00625F20 call sub_6255D0 .text:00625F25 push eax .text:00625F26 movzx eax, si .text:00625F29 push esi .text:00625F2A push eax .text:00625F2B xor esi, esi .text:00625F2D call sub_625030 .text:00625F32 push eax .text:00625F33 lea ecx, [ebp+var_104] .text:00625F39 push 100h .text:00625F3E push ecx .text:00625F3F call sub_61B710 .text:00625F44 add esp, 18h .text:00625F47 .text:00625F47 loc_625F47: ; CODE XREF: sub_625DD0+14Cj .text:00625F47 test edi, edi .text:00625F49 push ebx .text:00625F4A mov [ebp+var_D64], edi .text:00625F50 jz short loc_625F86 .text:00625F52 cmp byte ptr [edi], 0 .text:00625F55 jz short loc_625F86 .text:00625F57 mov eax, [ebp+arg_8] .text:00625F5A cmp eax, 0FFFFFFFEh .text:00625F5D jz short loc_625F64 .text:00625F5F cmp eax, 0FFFFFFFDh .text:00625F62 jnz short loc_625F86 .text:00625F64 .text:00625F64 loc_625F64: ; CODE XREF: sub_625DD0+18Dj .text:00625F64 push edi .text:00625F65 mov ebx, 100h .text:00625F6A lea esi, [ebp+var_C0C] .text:00625F70 call sub_625B20 .text:00625F75 add esp, 4 .text:00625F78 test eax, eax .text:00625F7A jz short loc_625F86 .text:00625F7C mov edx, esi .text:00625F7E mov [ebp+var_D64], edx .text:00625F84 mov edi, edx .text:00625F86 .text:00625F86 loc_625F86: ; CODE XREF: sub_625DD0+180j .text:00625F86 ; sub_625DD0+185j ... .text:00625F86 test edi, edi .text:00625F88 lea esi, [ebp+Text] .text:00625F8E jz short loc_625FA5 .text:00625F90 push 800h .text:00625F95 push edi .text:00625F96 mov eax, esi .text:00625F98 push eax .text:00625F99 call sub_61B540 .text:00625F9E lea esi, [ebp+eax+Text] .text:00625FA5 .text:00625FA5 loc_625FA5: ; CODE XREF: sub_625DD0+1BEj .text:00625FA5 mov eax, [ebp+arg_8] .text:00625FA8 test eax, eax .text:00625FAA jle short loc_625FCC .text:00625FAC push eax .text:00625FAD lea ecx, [ebp+FileName] .text:00625FB3 push offset aU_0 ; "(%u)" .text:00625FB8 sub ecx, esi .text:00625FBA push ecx .text:00625FBB push esi .text:00625FBC call sub_61B710 .text:00625FC1 add esp, 10h .text:00625FC4 push esi .text:00625FC5 call sub_61B5C0 .text:00625FCA add esi, eax .text:00625FCC .text:00625FCC loc_625FCC: ; CODE XREF: sub_625DD0+1DAj .text:00625FCC movzx edx, word ptr [ebp+arg_0] .text:00625FD0 push edx .text:00625FD1 lea eax, [ebp+FileName] .text:00625FD7 push offset aErrorU ; " : error %u: " .text:00625FDC sub eax, esi .text:00625FDE push eax .text:00625FDF push esi .text:00625FE0 call sub_61B710 .text:00625FE5 add esp, 10h .text:00625FE8 push esi .text:00625FE9 call sub_61B5C0 .text:00625FEE add esi, eax .text:00625FF0 lea ecx, [ebp+FileName] .text:00625FF6 sub ecx, esi .text:00625FF8 push ecx .text:00625FF9 lea edx, [ebp+var_104] .text:00625FFF push edx .text:00626000 push esi .text:00626001 call sub_61B540 .text:00626006 lea eax, [ebp+Text] .text:0062600C push eax ; char .text:0062600D push offset aS_0 ; "%s\n" .text:00626012 call sub_62E610 .text:00626017 lea ecx, [ebp+var_104] .text:0062601D add esp, 8 .text:00626020 push ecx .text:00626021 mov esi, 1 .text:00626026 call sub_625030 .text:0062602B push eax .text:0062602C lea edx, [ebp+Text] .text:00626032 push 800h .text:00626037 push edx .text:00626038 call sub_61B710 .text:0062603D add esp, 10h .text:00626040 lea eax, [ebp+Text] .text:00626046 push eax .text:00626047 call sub_61B5C0 .text:0062604C lea ecx, [ebp+FileName] .text:00626052 push ecx .text:00626053 mov esi, 2 .text:00626058 lea ebx, [ebp+eax+Text] .text:0062605F call sub_625030 .text:00626064 .text:00626064 loc_626064: ; DATA XREF: .rdata:00890378o .text:00626064 push eax .text:00626065 lea edx, [ebp+FileName] .text:0062606B sub edx, ebx .text:0062606D push edx .text:0062606E push ebx .text:0062606F call sub_61B710 .text:00626074 add esp, 10h .text:00626077 push ebx .text:00626078 call sub_61B5C0 .text:0062607D add ebx, eax .text:0062607F test edi, edi .text:00626081 jz loc_62615A .text:00626087 cmp byte ptr [edi], 0 .text:0062608A jz loc_62615A .text:00626090 mov eax, [ebp+arg_8] .text:00626093 add eax, 5 ; switch 5 cases .text:00626096 cmp eax, 4 .text:00626099 ja loc_626130 ; default .text:0062609F jmp ds:off_626550[eax*4] ; switch jump .text:006260A6 .text:006260A6 loc_6260A6: ; DATA XREF: .text:off_626550o .text:006260A6 mov esi, 4 ; case -0x1 .text:006260AB .text:006260AB loc_6260AB: ; CODE XREF: sub_625DD0+33Ej .text:006260AB push edi .text:006260AC call sub_625030 .text:006260B1 push eax .text:006260B2 lea eax, [ebp+FileName] .text:006260B8 sub eax, ebx .text:006260BA push eax .text:006260BB push ebx .text:006260BC call sub_61B710 .text:006260C1 add esp, 10h .text:006260C4 jmp loc_626152 .text:006260C9 ; --------------------------------------------------------------------------- .text:006260C9 .text:006260C9 loc_6260C9: ; CODE XREF: sub_625DD0+2CFj .text:006260C9 ; DATA XREF: .text:off_626550o .text:006260C9 push edi ; case -0x2 .text:006260CA mov esi, 5 .text:006260CF call sub_625030 .text:006260D4 push eax .text:006260D5 lea ecx, [ebp+FileName] .text:006260DB sub ecx, ebx .text:006260DD push ecx .text:006260DE push ebx .text:006260DF call sub_61B710 .text:006260E4 add esp, 10h .text:006260E7 jmp short loc_626152 .text:006260E9 ; --------------------------------------------------------------------------- .text:006260E9 .text:006260E9 loc_6260E9: ; CODE XREF: sub_625DD0+2CFj .text:006260E9 ; DATA XREF: .text:off_626550o .text:006260E9 push edi ; case -0x3 .text:006260EA mov esi, 6 .text:006260EF call sub_625030 .text:006260F4 push eax .text:006260F5 lea edx, [ebp+FileName] .text:006260FB sub edx, ebx .text:006260FD push edx .text:006260FE push ebx .text:006260FF call sub_61B710 .text:00626104 add esp, 10h .text:00626107 jmp short loc_626152 .text:00626109 ; --------------------------------------------------------------------------- .text:00626109 .text:00626109 loc_626109: ; CODE XREF: sub_625DD0+2CFj .text:00626109 ; DATA XREF: .text:off_626550o .text:00626109 mov esi, 0Bh ; case -0x4 .text:0062610E jmp short loc_6260AB .text:00626110 ; --------------------------------------------------------------------------- .text:00626110 .text:00626110 loc_626110: ; CODE XREF: sub_625DD0+2CFj .text:00626110 ; DATA XREF: .text:off_626550o .text:00626110 push edi ; case -0x5 .text:00626111 mov esi, 0Eh .text:00626116 call sub_625030 .text:0062611B push eax .text:0062611C lea ecx, [ebp+FileName] .text:00626122 sub ecx, ebx .text:00626124 push ecx .text:00626125 push ebx .text:00626126 call sub_61B710 .text:0062612B add esp, 10h .text:0062612E jmp short loc_626152 .text:00626130 ; --------------------------------------------------------------------------- .text:00626130 .text:00626130 loc_626130: ; CODE XREF: sub_625DD0+2C9j .text:00626130 mov edx, [ebp+arg_8] ; default .text:00626133 push edx .text:00626134 push edi .text:00626135 mov esi, 3 .text:0062613A call sub_625030 .text:0062613F push eax .text:00626140 lea eax, [ebp+FileName] .text:00626146 sub eax, ebx .text:00626148 push eax .text:00626149 push ebx .text:0062614A call sub_61B710 .text:0062614F add esp, 14h .text:00626152 .text:00626152 loc_626152: ; CODE XREF: sub_625DD0+2F4j .text:00626152 ; sub_625DD0+317j ... .text:00626152 push ebx .text:00626153 call sub_61B5C0 .text:00626158 add ebx, eax .text:0062615A .text:0062615A loc_62615A: ; CODE XREF: sub_625DD0+2B1j .text:0062615A ; sub_625DD0+2BAj .text:0062615A cmp [ebp+arg_0], 85100000h .text:00626161 mov eax, [ebp+var_D58] .text:00626167 jnz short loc_626189 .text:00626169 test eax, eax .text:0062616B jnz short loc_626172 .text:0062616D mov eax, offset byte_834463 .text:00626172 .text:00626172 loc_626172: ; CODE XREF: sub_625DD0+39Bj .text:00626172 push eax .text:00626173 mov esi, 7 .text:00626178 call sub_625030 .text:0062617D lea ecx, [ebp+FileName] .text:00626183 push eax .text:00626184 sub ecx, ebx .text:00626186 push ecx .text:00626187 jmp short loc_6261A7 .text:00626189 ; --------------------------------------------------------------------------- .text:00626189 .text:00626189 loc_626189: ; CODE XREF: sub_625DD0+397j .text:00626189 test eax, eax .text:0062618B jnz short loc_626192 .text:0062618D mov eax, offset byte_834463 .text:00626192 .text:00626192 loc_626192: ; CODE XREF: sub_625DD0+3BBj .text:00626192 push eax .text:00626193 mov esi, 8 .text:00626198 call sub_625030 .text:0062619D lea edx, [ebp+FileName] .text:006261A3 push eax .text:006261A4 sub edx, ebx .text:006261A6 push edx .text:006261A7 .text:006261A7 loc_6261A7: ; CODE XREF: sub_625DD0+3B7j .text:006261A7 push ebx .text:006261A8 call sub_61B710 .text:006261AD add esp, 10h .text:006261B0 push ebx .text:006261B1 call sub_61B5C0 .text:006261B6 add ebx, eax .text:006261B8 cmp dword_CBF9E0, 0 .text:006261BF jnz loc_6262D1 .text:006261C5 call sub_632850 .text:006261CA push offset stru_CBF6C4 ; lpCriticalSection .text:006261CF call sub_625140 .text:006261D4 mov esi, dword_CBF6C0 .text:006261DA add esp, 4 .text:006261DD mov eax, offset stru_CBF6C4 .text:006261E2 mov [ebp+var_D50], esi .text:006261E8 mov dword_CBF6C0, 0 .text:006261F2 call sub_625190 .text:006261F7 test esi, esi .text:006261F9 jz short loc_626200 .text:006261FB mov esi, [esi+4] .text:006261FE jmp short loc_626202 .text:00626200 ; --------------------------------------------------------------------------- .text:00626200 .text:00626200 loc_626200: ; CODE XREF: sub_625DD0+429j .text:00626200 xor esi, esi .text:00626202 .text:00626202 loc_626202: ; CODE XREF: sub_625DD0+42Ej .text:00626202 lea eax, [ebp+SystemTime] .text:00626208 push eax ; lpSystemTime .text:00626209 call ds:GetLocalTime .text:0062620F test esi, esi .text:00626211 mov [ebp+var_D54], offset aCrash ; "Crash" .text:0062621B jnz short loc_626227 .text:0062621D mov [ebp+var_D54], offset aError_1 ; "Error" .text:00626227 .text:00626227 loc_626227: ; CODE XREF: sub_625DD0+44Bj .text:00626227 lea ecx, [ebp+SystemTime] .text:0062622D push ecx .text:0062622E mov ecx, [ebp+var_D54] .text:00626234 lea edx, [ebp+Text] .text:0062623A call sub_6254B0 .text:0062623F mov edi, eax .text:00626241 add esp, 4 .text:00626244 cmp edi, 0FFFFFFFFh .text:00626247 jz short loc_626265 .text:00626249 mov ecx, esi .text:0062624B neg ecx .text:0062624D sbb ecx, ecx .text:0062624F and ecx, 0FFFFFFFEh .text:00626252 add ecx, 2 .text:00626255 mov eax, esi .text:00626257 mov edx, edi .text:00626259 call sub_6255A0 .text:0062625E mov eax, edi .text:00626260 call sub_6255C0 .text:00626265 .text:00626265 loc_626265: ; CODE XREF: sub_625DD0+477j .text:00626265 call sub_632CA0 .text:0062626A test eax, eax .text:0062626C jz short loc_6262CC .text:0062626E cmp dword_CBF89C, 0 .text:00626275 jnz short loc_6262CC .text:00626277 mov ecx, [ebp+var_D54] .text:0062627D push 104h .text:00626282 push offset off_86FB2C .text:00626287 lea edi, [ebp+SystemTime] .text:0062628D lea edx, [ebp+FindFileData.cFileName+10h] .text:00626293 call sub_6253A0 .text:00626298 mov edi, eax .text:0062629A add esp, 8 .text:0062629D cmp edi, 0FFFFFFFFh .text:006262A0 jz short loc_6262CC .text:006262A2 mov eax, [ebp+var_D50] .text:006262A8 lea edx, [ebp+var_D5C] .text:006262AE push edx .text:006262AF push 1 .text:006262B1 push eax .text:006262B2 push edi .text:006262B3 mov [ebp+var_D5C], offset unk_CBF718 .text:006262BD call sub_632C00 .text:006262C2 add esp, 10h .text:006262C5 mov eax, edi .text:006262C7 call sub_6255C0 .text:006262CC .text:006262CC loc_6262CC: ; CODE XREF: sub_625DD0+49Cj .text:006262CC ; sub_625DD0+4A5j ... .text:006262CC call sub_632860 .text:006262D1 .text:006262D1 loc_6262D1: ; CODE XREF: sub_625DD0+3EFj .text:006262D1 cmp dword_CBF9F4, 0 .text:006262D8 jz short loc_6262FC .text:006262DA pop ebx .text:006262DB pop esi .text:006262DC mov dword_CBF6DC, 0 .text:006262E6 mov eax, 1 .text:006262EB pop edi .text:006262EC mov ecx, [ebp+var_4] .text:006262EF xor ecx, ebp .text:006262F1 call sub_4096EA .text:006262F6 mov esp, ebp .text:006262F8 pop ebp .text:006262F9 retn 18h .text:006262FC ; --------------------------------------------------------------------------- .text:006262FC .text:006262FC loc_6262FC: ; CODE XREF: sub_625DD0+508j .text:006262FC call sub_6251D0 .text:00626301 test eax, eax .text:00626303 jz short loc_626383 .text:00626305 cmp [ebp+arg_10], 0 .text:00626309 jz short loc_626349 .text:0062630B lea ecx, [ebp+FileName] .text:00626311 sub ecx, ebx .text:00626313 push ecx .text:00626314 mov esi, 0Dh .text:00626319 call sub_625030 .text:0062631E push eax .text:0062631F push ebx .text:00626320 call sub_61B540 .text:00626325 lea ebx, [esi+23h] .text:00626328 mov esi, 103h .text:0062632D lea edi, [ebx-29h] .text:00626330 mov [ebp+var_D50], 2 .text:0062633A mov [ebp+var_D54], 6 .text:00626344 jmp loc_6263F6 .text:00626349 ; --------------------------------------------------------------------------- .text:00626349 .text:00626349 loc_626349: ; CODE XREF: sub_625DD0+539j .text:00626349 lea edx, [ebp+FileName] .text:0062634F sub edx, ebx .text:00626351 push edx .text:00626352 mov esi, 0Ch .text:00626357 call sub_625030 .text:0062635C push eax .text:0062635D push ebx .text:0062635E call sub_61B540 .text:00626363 mov esi, 104h .text:00626368 mov edi, 7 .text:0062636D mov [ebp+var_D50], 0 .text:00626377 mov [ebp+var_D54], 6 .text:00626381 jmp short loc_6263F1 .text:00626383 ; --------------------------------------------------------------------------- .text:00626383 .text:00626383 loc_626383: ; CODE XREF: sub_625DD0+533j .text:00626383 cmp [ebp+arg_10], 0 .text:00626387 jz short loc_6263C4 .text:00626389 lea eax, [ebp+FileName] .text:0062638F sub eax, ebx .text:00626391 push eax .text:00626392 mov esi, 0Ah .text:00626397 call sub_625030 .text:0062639C push eax .text:0062639D push ebx .text:0062639E call sub_61B540 .text:006263A3 lea ebx, [esi+26h] .text:006263A6 mov esi, 101h .text:006263AB lea edi, [ebx-2Eh] .text:006263AE mov [ebp+var_D50], 1 .text:006263B8 mov [ebp+var_D54], 0 .text:006263C2 jmp short loc_6263F6 .text:006263C4 ; --------------------------------------------------------------------------- .text:006263C4 .text:006263C4 loc_6263C4: ; CODE XREF: sub_625DD0+5B7j .text:006263C4 lea ecx, [ebp+FileName] .text:006263CA sub ecx, ebx .text:006263CC push ecx .text:006263CD mov esi, 9 .text:006263D2 call sub_625030 .text:006263D7 push eax .text:006263D8 push ebx .text:006263D9 call sub_61B540 .text:006263DE xor esi, esi .text:006263E0 xor eax, eax .text:006263E2 lea edi, [esi+1] .text:006263E5 mov [ebp+var_D50], eax .text:006263EB mov [ebp+var_D54], eax .text:006263F1 .text:006263F1 loc_6263F1: ; CODE XREF: sub_625DD0+5B1j .text:006263F1 mov ebx, 10h .text:006263F6 .text:006263F6 loc_6263F6: ; CODE XREF: sub_625DD0+574j .text:006263F6 ; sub_625DD0+5F2j .text:006263F6 push offset stru_CBF6E0 ; lpCriticalSection .text:006263FB call sub_625140 .text:00626400 or esi, ebx .text:00626402 or esi, 52000h .text:00626408 add esp, 4 .text:0062640B cmp [ebp+var_D50], 0 .text:00626412 mov [ebp+ExitCode], esi .text:00626418 jz short loc_626428 .text:0062641A mov edx, [ebp+var_D50] .text:00626420 mov [ebp+var_D5C], edx .text:00626426 jmp short loc_62642E .text:00626428 ; --------------------------------------------------------------------------- .text:00626428 .text:00626428 loc_626428: ; CODE XREF: sub_625DD0+648j .text:00626428 mov [ebp+var_D5C], edi .text:0062642E .text:0062642E loc_62642E: ; CODE XREF: sub_625DD0+656j .text:0062642E mov ebx, dword_B42E20 .text:00626434 test bl, 1 .text:00626437 jnz short loc_62643D .text:00626439 test ebx, ebx .text:0062643B jnz short loc_62643F .text:0062643D .text:0062643D loc_62643D: ; CODE XREF: sub_625DD0+667j .text:0062643D xor ebx, ebx .text:0062643F .text:0062643F loc_62643F: ; CODE XREF: sub_625DD0+66Bj .text:0062643F mov edi, [ebp+var_D64] .text:00626445 mov esi, [ebp+arg_0] .text:00626448 .text:00626448 loc_626448: ; CODE XREF: sub_625DD0+6AAj .text:00626448 test bl, 1 .text:0062644B mov eax, [ebp+var_D58] .text:00626451 jnz short loc_62647C .text:00626453 test ebx, ebx .text:00626455 jz short loc_62647C .text:00626457 test eax, eax .text:00626459 jnz short loc_626460 .text:0062645B mov eax, offset byte_834463 .text:00626460 .text:00626460 loc_626460: ; CODE XREF: sub_625DD0+689j .text:00626460 mov edx, [ebx+8] .text:00626463 push eax .text:00626464 mov eax, [ebp+arg_8] .text:00626467 push eax .text:00626468 push edi .text:00626469 lea ecx, [ebp+var_104] .text:0062646F push ecx .text:00626470 push esi .text:00626471 call edx .text:00626473 test eax, eax .text:00626475 jz short loc_6264C1 .text:00626477 mov ebx, [ebx+4] .text:0062647A jmp short loc_626448 .text:0062647C ; --------------------------------------------------------------------------- .text:0062647C .text:0062647C loc_62647C: ; CODE XREF: sub_625DD0+681j .text:0062647C ; sub_625DD0+685j .text:0062647C call sub_632CD0 .text:00626481 mov edi, eax .text:00626483 xor ebx, ebx .text:00626485 cmp edi, ebx .text:00626487 jz short loc_6264A1 .text:00626489 push edi ; hWnd .text:0062648A call ds:IsWindow .text:00626490 test eax, eax .text:00626492 jz short loc_62649F .text:00626494 push edi ; hWnd .text:00626495 call ds:IsWindowVisible .text:0062649B test eax, eax .text:0062649D jnz short loc_6264A1 .text:0062649F .text:0062649F loc_62649F: ; CODE XREF: sub_625DD0+6C2j .text:0062649F xor edi, edi .text:006264A1 .text:006264A1 loc_6264A1: ; CODE XREF: sub_625DD0+6B7j .text:006264A1 ; sub_625DD0+6CDj .text:006264A1 mov eax, [ebp+ExitCode] .text:006264A7 push eax ; uType .text:006264A8 lea ecx, [ebp+Caption] .text:006264AE push ecx ; lpCaption .text:006264AF lea edx, [ebp+Text] .text:006264B5 push edx ; lpText .text:006264B6 push edi ; hWnd .text:006264B7 call ds:MessageBoxA .text:006264BD mov esi, eax .text:006264BF jmp short loc_6264C9 .text:006264C1 ; --------------------------------------------------------------------------- .text:006264C1 .text:006264C1 loc_6264C1: ; CODE XREF: sub_625DD0+6A5j .text:006264C1 mov esi, [ebp+var_D5C] .text:006264C7 xor ebx, ebx .text:006264C9 .text:006264C9 loc_6264C9: ; CODE XREF: sub_625DD0+6EFj .text:006264C9 mov eax, offset stru_CBF6E0 .text:006264CE call sub_625190 .text:006264D3 cmp esi, [ebp+var_D54] .text:006264D9 jnz short loc_6264E7 .text:006264DB call sub_6250E0 .text:006264E0 .text:006264E0 loc_6264E0: ; CODE XREF: sub_625DD0+71Dj .text:006264E0 mov eax, 1 .text:006264E5 jmp short loc_626535 .text:006264E7 ; --------------------------------------------------------------------------- .text:006264E7 .text:006264E7 loc_6264E7: ; CODE XREF: sub_625DD0+709j .text:006264E7 cmp esi, [ebp+var_D50] .text:006264ED jz short loc_6264E0 .text:006264EF push 1 .text:006264F1 call sub_625B00 .text:006264F6 call ds:GetVersion ; Get current version number of Windows .text:006264F6 ; and information about the operating system platform .text:006264FC test eax, eax .text:006264FE mov edi, ds:GetCurrentProcess .text:00626504 jns short loc_626526 .text:00626506 lea eax, [ebp+ExitCode] .text:0062650C push eax ; lpExitCode .text:0062650D call edi ; GetCurrentProcess .text:0062650F push eax ; hProcess .text:00626510 call ds:GetExitCodeProcess .text:00626516 test eax, eax .text:00626518 jz short loc_626526 .text:0062651A cmp [ebp+ExitCode], 103h .text:00626524 jnz short loc_626533 .text:00626526 .text:00626526 loc_626526: ; CODE XREF: sub_625DD0+734j .text:00626526 ; sub_625DD0+748j .text:00626526 mov ecx, [ebp+uExitCode] .text:00626529 push ecx ; uExitCode .text:0062652A call edi ; GetCurrentProcess .text:0062652C push eax ; hProcess .text:0062652D call ds:TerminateProcess .text:00626533 .text:00626533 loc_626533: ; CODE XREF: sub_625DD0+754j .text:00626533 xor eax, eax .text:00626535 .text:00626535 loc_626535: ; CODE XREF: sub_625DD0+715j .text:00626535 mov ecx, [ebp+var_4] .text:00626538 mov dword_CBF6DC, ebx .text:0062653E pop ebx .text:0062653F pop esi .text:00626540 xor ecx, ebp .text:00626542 pop edi .text:00626543 .text:00626543 loc_626543: ; DATA XREF: .rdata:off_836AA4o .text:00626543 ; .data:00B43418o .text:00626543 call sub_4096EA .text:00626548 mov esp, ebp .text:0062654A pop ebp .text:0062654B retn 18h .text:0062654B sub_625DD0 endp .text:0062654B .text:0062654B ; ---------------------------------------------------------------------------