All pastes #732901 Raw Edit

Relevant Subroutine #1

public text v1 · immutable
·published 2007-10-11 11:28 UTC
rendered paste body
.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 ; ---------------------------------------------------------------------------