Function at 0x4259f0
Capabilities:
Delete file

Disassembly:
sub esp, 0x6b8
push ebx
push ebp
push esi
push edi
push 5
xor ebp, ebp
push 0x12180101
push 0x12180107
mov dword [esp + 0x1c], ebp
call dword [0x472f68]
mov al, byte [esp + 0x6d8]
add esp, 0xc
test al, al
mov esi, 3
mov edi, 2
mov ebx, 0xcc
jne 0x425e2f
mov ebp, 1
push ebp
push 0x30006
push 0x12130005
call dword [0x472f68]
push ebp
push 0x30006
push 0x12130180
call dword [0x472f68]
push 0x12130181
call dword [0x472da8]
push 0x12130182
call dword [0x472dcc]
push 0x12130183
call dword [0x472dcc]
push 0
push 0
push 0
call dword [0x472e18]
movsx eax, ax
add esp, 0x30
test eax, eax
jge 0x425a9e
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x6b8
ret
sub eax, 0
je 0x425aae
dec eax
jne 0x425b0a
mov dword [0x472a24], ebp
jmp 0x425b13
mov dword [0x472a24], 0
push esi
push 0x30006
push 0x12130008
call dword [0x472f68]
add esp, 0xc
cmp ax, di
push esi
push 0x30006
jne 0x425c29
push 0x1213000a
call dword [0x472f68]
add esp, 0xc
cmp ax, di
jne 0x425bfc
mov dword [0x472a30], esi
mov dword [0x472a34], ebp
mov byte [0x4351c9], 2
jmp 0x425cd7
mov eax, dword [0x472a24]
test eax, eax
je 0x425ab8
push esi
push 0x30006
push 0x12130007
call dword [0x472f68]
add esp, 0xc
cmp ax, di
jne 0x425be0
push esi
push 0x30006
push 0x121301a0
call dword [0x472f68]
add esp, 0xc
cmp ax, di
push esi
push 0x30006
push 0x121301aa
jne 0x425b9a
call dword [0x472f68]
add esp, 0xc
cmp ax, di
jne 0x425b7e
mov dword [0x472a30], 4
mov dword [0x472a34], edi
mov byte [0x4351c9], 1
jmp 0x425cd7
mov dword [0x472a30], 0xb
mov dword [0x472a34], edi
mov byte [0x4351c9], 1
jmp 0x425cd7
call dword [0x472f68]
add esp, 0xc
cmp ax, di
jne 0x425bc4
mov dword [0x472a30], 6
mov dword [0x472a34], edi
mov byte [0x4351c9], 1
jmp 0x425cd7
mov dword [0x472a30], 0xd
mov dword [0x472a34], edi
mov byte [0x4351c9], 1
jmp 0x425cd7
mov dword [0x472a30], 5
mov dword [0x472a34], edi
mov byte [0x4351c9], 2
jmp 0x425cd7
push esi
push 0x30006
push 0x121300ab
call dword [0x472f68]
add esp, 0xc
cmp ax, di
jne 0x425c1d
mov dword [0x472a30], edi
jmp 0x425c5b
mov dword [0x472a30], 0xa
jmp 0x425c5b
push 0x12130191
call dword [0x472f68]
add esp, 0xc
cmp ax, di
push esi
push 0x30006
jne 0x425c7a
push 0x121301aa
call dword [0x472f68]
add esp, 0xc
cmp ax, di
jne 0x425c6e
mov dword [0x472a30], ebp
mov dword [0x472a34], 0
mov byte [0x4351c9], 1
jmp 0x425cd7
mov dword [0x472a30], 9
jmp 0x425c5b
push 0x1213019f
call dword [0x472f68]
add esp, 0xc
cmp ax, di
jne 0x425cc0
push esi
push 0x30006
push 0x121301a1
call dword [0x472f68]
add esp, 0xc
cmp ax, di
jne 0x425cb4
xor eax, eax
mov dword [0x472a30], eax
mov dword [0x472a34], eax
jmp 0x425cd0
mov dword [0x472a30], 8
jmp 0x425cca
mov dword [0x472a30], 7
mov dword [0x472a34], esi
mov byte [0x4351c9], 0
push 0x1d
call fcn.00426a80
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x48]
mov dword [0x472d64], 0x121d0001
rep stosd dword es:[edi], eax
lea eax, [esp + 0x48]
push eax
push 0x121d0001
call fcn.00402900
lea ecx, [esp + 0x50]
push ecx
call fcn.00402980
lea edx, [esp + 0x54]
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x54]
push edx
push 0x121d0106
rep stosd dword es:[edi], eax
mov dword [0x472d64], 0x121d0106
call fcn.00402900
lea eax, [esp + 0x5c]
push eax
call fcn.00402980
xor ecx, ecx
add esp, 0x1c
mov dword [0x435740], ecx
xor eax, eax
mov dword [0x435744], ecx
mov dword [0x435748], ecx
mov dword [0x43574c], ecx
mov dword [0x435750], ecx
mov cl, byte [eax + 0x472b64]
cmp cl, 0x20
mov byte [eax + 0x435740], cl
jb 0x425d79
cmp cl, 0x7e
jb 0x425d80
mov byte [eax + 0x435740], 0x20
inc eax
cmp eax, 0x11
jl 0x425d63
push ebx
call fcn.00426a80
lea edx, [esp + 0x48]
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x48]
push edx
push 0x12cc0001
rep stosd dword es:[edi], eax
mov dword [0x472d64], 0x12cc0001
call fcn.00402900
lea eax, [esp + 0x50]
push eax
call fcn.00402980
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x54]
mov dword [0x472d64], 0x12cc0105
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x54]
push ecx
push 0x12cc0105
call fcn.00402900
lea edx, [esp + 0x5c]
push edx
call fcn.00402980
add esp, 0x1c
mov ebp, eax
xor eax, eax
mov dword [0x4356c0], eax
mov dword [0x4356c4], eax
mov dword [0x4356c8], eax
mov dword [0x4356cc], eax
mov dword [0x4356d0], eax
mov cl, byte [eax + 0x472b64]
cmp cl, 0x20
mov byte [eax + 0x4356c0], cl
jb 0x425e22
cmp cl, 0x7e
jb 0x425e29
mov byte [eax + 0x4356c0], 0x20
inc eax
cmp eax, 0x11
jl 0x425e0c
call fcn.004252e0
mov eax, dword [0x472a24]
mov dword [esp + 0x1c], ebx
test eax, eax
je 0x425e84
mov dl, byte [0x4351c9]
xor ecx, ecx
test dl, dl
setne cl
add ecx, 0x1d
mov dword [esp + 0x20], 0xcd
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], 0xcf
mov dword [esp + 0x2c], 0x1c
mov dword [esp + 0x30], 0xce
mov dword [esp + 0x34], 0x18
mov esi, 7
jmp 0x425ebd
mov cl, byte [0x4351c9]
xor edx, edx
test cl, cl
setne dl
add edx, 0x1d
mov dword [esp + 0x24], 0xcf
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], 0x1c
mov dword [esp + 0x2c], 0xce
mov dword [esp + 0x30], 0x18
mov esi, 6
mov dword [esp + 0x14], esi
call fcn.0040d8e0
mov edi, dword [esp + 0x10]
mov ebx, 0xfbe0
call fcn.004269f0
cmp eax, 0xffffffff
je 0x426828
cmp eax, 9
ja case.default.0x425ee2
jmp dword [eax*4 + 0x426838]
push 0
lea eax, [esp + 0x20]
push esi
push eax
call fcn.00426860
mov ebx, eax
mov ecx, ebx
mov byte [0x472a2c], bl
and ecx, 0xff
push ecx
call fcn.0042ce90
push 0x472ac0
call fcn.0042e280
add esp, 0x14
cmp ebx, 0xffffffff
je 0x425eca
cmp ebx, 0x1b
jne 0x425f2c
call fcn.0042b600
mov ebp, eax
jmp case.0x425ee2.0
call fcn.00426ec0
mov ebp, eax
jmp case.0x425ee2.0
push 1
lea edx, [esp + 0x20]
push esi
push edx
call fcn.00426860
mov ebx, eax
and eax, 0xff
push eax
mov byte [0x472a2c], bl
call fcn.0042ce90
push 0x472ac0
call fcn.0042e280
add esp, 0x14
cmp ebx, 0xffffffff
je 0x425eca
cmp ebx, 0x12
jne 0x425ffa
mov bl, 1
push 0xffcc0012
call dword [0x472da8]
push 0xffcc00cc
call dword [0x472dcc]
mov eax, dword [0x472a24]
add esp, 8
test eax, eax
je 0x425fa6
push 0xffcc00cd
call dword [0x472dcc]
add esp, 4
push 0
push 0
push 0
call dword [0x472e18]
movsx ebp, ax
add esp, 0xc
test ebp, ebp
jge 0x425fc0
xor bl, bl
test ebp, ebp
jne 0x425fcb
mov byte [0x472a2c], 0x12
jmp 0x425fd7
cmp ebp, 1
jne 0x425ff1
mov byte [0x472a2c], 0x13
push 0
push 0
mov byte [0x4351ca], 1
call fcn.00427110
add esp, 8
mov byte [0x4351ca], 0
test bl, bl
jne 0x425f76
jmp case.0x425ee2.1
cmp ebx, 0x13
jne 0x4260bb
push 0xffcc0013
call dword [0x472da8]
push 0x1c121301
call dword [0x472dcc]
push 0x1c121302
call dword [0x472dcc]
push 0x1c121303
call dword [0x472dcc]
push 0x1c121304
call dword [0x472dcc]
push 0x1c121305
call dword [0x472dcc]
push 0x1c121306
call dword [0x472dcc]
push 0x1c121307
call dword [0x472dcc]
push 0x1c121308
call dword [0x472dcc]
push 0x1c121309
call dword [0x472dcc]
push 0x1c12130a
call dword [0x472dcc]
push 0
push 0
push 0
call dword [0x472e18]
movsx ebp, ax
add esp, 0x38
test ebp, ebp
jl case.0x425ee2.1
push ebp
push 1
mov byte [0x472a2c], 0x1c
mov byte [0x4351ca], 1
call fcn.00427110
add esp, 8
mov byte [0x4351ca], 0
jmp 0x426003
push 0
push 0
mov byte [0x4351ca], 1
call fcn.00427110
add esp, 8
mov ebp, eax
mov byte [0x4351ca], 0
jmp case.0x425ee2.1
push 2
lea ecx, [esp + 0x20]
push esi
push ecx
call fcn.00426860
add esp, 0xc
cmp eax, 0xffffffff
mov byte [0x472a2c], al
je case.default.0x425ee2
call fcn.00429a90
mov ebp, eax
jmp case.0x425ee2.2
push 0x12170004
call dword [0x472da8]
push 0x12170041
call dword [0x472dcc]
push 0xa0021
call dword [0x472dcc]
push 0x12170043
call dword [0x472dcc]
push 0x12130137
call dword [0x472dcc]
push 0
push 0
push 0
call dword [0x472e18]
movsx ebp, ax
add esp, 0x20
test ebp, ebp
jl 0x425ec6
jne 0x426176
push 3
lea edx, [esp + 0x20]
push esi
push edx
call fcn.00426860
add esp, 0xc
cmp eax, 0xffffffff
je case.0x425ee2.3
push eax
call fcn.0040f6a0
add esp, 4
jmp 0x426156
cmp ebp, 1
jne 0x42619f
push 4
lea eax, [esp + 0x20]
push esi
push eax
call fcn.00426860
add esp, 0xc
cmp eax, 0xffffffff
je case.0x425ee2.3
push eax
call fcn.0040f8c0
add esp, 4
jmp 0x42617b
cmp ebp, 2
jne 0x4261de
call fcn.00417560
push 0
push 0
push 0
push 0
mov edi, eax
call dword [0x472d8c]
add esp, 0x10
test edi, edi
jge case.0x425ee2.3
push 1
push 0x12180103
push 0x12180105
call dword [0x472f68]
add esp, 0xc
jmp case.0x425ee2.3
cmp ebp, 3
jne case.0x425ee2.3
mov edi, dword [esp + 0x10]
push 0x12130137
call dword [0x472da8]
push 0xffcc0018
call dword [0x472dcc]
mov eax, dword [0x472a30]
add esp, 8
cmp eax, 7
je 0x426221
cmp eax, 8
je 0x426221
push 0xffcc00ce
call dword [0x472dcc]
add esp, 4
push 0
push 0
push edi
call dword [0x472e18]
movsx edi, ax
add esp, 0xc
test edi, edi
jl 0x4262aa
jne 0x426243
call fcn.00422bb0
test eax, eax
jge 0x426280
jmp 0x42626b
cmp edi, 1
jne 0x426296
mov eax, dword [0x472a30]
cmp eax, 7
je 0x426262
cmp eax, 8
je 0x426262
call fcn.00422080
test eax, eax
jge 0x426280
jmp 0x42626b
call fcn.004173d0
test eax, eax
jge 0x426280
push 1
push 0x12180103
push 0x12180105
call dword [0x472f68]
add esp, 0xc
push 0
push 0
push 0
push 0
call dword [0x472d8c]
add esp, 0x10
jmp 0x4261eb
cmp edi, 2
jne 0x4261eb
call fcn.004173d0
test eax, eax
jge 0x426280
jmp 0x42626b
mov dword [esp + 0x10], edi
jmp case.0x425ee2.3
call fcn.0040d8e0
jmp case.default.0x425ee2
mov byte [0x4351ca], 1
call fcn.00404c90
mov byte [0x4351ca], 0
jmp case.default.0x425ee2
push 0x12170000
call dword [0x472da8]
push 0xffcc001e
call dword [0x472dcc]
push 0
push 0
push ebp
call dword [0x472e18]
movsx ebp, ax
add esp, 0x14
test ebp, ebp
jl case.default.0x425ee2
jne case.0x425ee2.6
push 0xffcc001e
call dword [0x472da8]
push 0x1213013d
call dword [0x472dcc]
mov ecx, dword [esp + 0x18]
push 0
push 0
push ecx
call dword [0x472e18]
movsx eax, ax
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jl 0x42639b
sub eax, 0
je 0x426384
dec eax
jne 0x426306
mov al, byte [0x4351c9]
test al, al
jne 0x426351
call fcn.0041fca0
jmp 0x426356
call fcn.004200a0
push 0
push 0
push 0
push 0
mov esi, eax
call dword [0x472d8c]
add esp, 0x10
test esi, esi
jge 0x426306
push 1
push 0x12180103
push 0x12180105
call dword [0x472f68]
add esp, 0xc
jmp 0x426306
mov al, byte [0x4351c9]
test al, al
jne 0x426394
call fcn.00420450
jmp 0x426356
call fcn.00420b70
jmp 0x426356
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebx, 0xfbe0
jmp case.0x425ee2.6
push 0x12170000
call dword [0x472da8]
push 0x12130142
call dword [0x472dcc]
push 0
push 0
push ebp
call dword [0x472e18]
movsx ebp, ax
add esp, 0x14
test ebp, ebp
jl case.default.0x425ee2
jne 0x4263fd
mov byte [0x472a2c], 0xce
call fcn.0042b190
push 0
push 0
push 0
push 0
call dword [0x472d8c]
add esp, 0x10
jmp case.0x425ee2.7
cmp ebp, 1
jne case.0x425ee2.7
mov byte [0x472a2c], 0x1e
call fcn.0041b3e0
jmp 0x4263ea
push 0x12170000
call dword [0x472da8]
push 0x12170012
call dword [0x472dcc]
push 0
push 0
push ebp
call dword [0x472e18]
movsx ebp, ax
add esp, 0x14
test ebp, ebp
jl case.default.0x425ee2
push 0x12170012
call dword [0x472da8]
push 0xffcc00cc
call dword [0x472dcc]
mov eax, dword [0x472a24]
add esp, 8
test eax, eax
je 0x42646f
push 0xffcc00cd
call dword [0x472dcc]
add esp, 4
push 0
push 0
push edi
call dword [0x472e18]
movsx edi, ax
add esp, 0xc
test edi, edi
jl 0x4264ed
jne 0x4264b8
mov byte [0x472a2c], 0xcc
mov dword [0x472b28], ebx
mov dword [0x472b24], 0xfd00
mov dword [0x4352a8], 0xfd
mov dword [0x4352ac], 0
call fcn.0042d030
jmp 0x42643f
mov byte [0x472a2c], 0xcd
mov dword [0x472b28], ebx
mov dword [0x472b24], 0xfd20
mov dword [0x4352a8], 0xfd
mov dword [0x4352ac], 0x20
call fcn.0042d030
jmp 0x42643f
mov dword [esp + 0x10], edi
jmp case.0x425ee2.8
push 9
lea edx, [esp + 0x20]
push esi
push edx
call fcn.00426860
add esp, 0xc
cmp eax, 0xffffffff
mov byte [0x472a2c], al
je case.default.0x425ee2
push eax
call fcn.0040ef90
mov ebp, eax
add esp, 4
cmp ebp, 0xff
je case.0x425ee2.9
xor eax, eax
mov ecx, dword [0x472a28]
test ebp, ebp
setg al
dec eax
mov ebp, eax
push ebp
push ecx
push 0x472940
push 0x4729c0
push 0x472b40
push 0x472800
call fcn.0042e400
mov ecx, 0x4a
xor eax, eax
lea edi, [esp + 0x39d]
mov byte [esp + 0x39c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x4c9]
mov byte [esp + 0x4c8], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x29d]
mov byte [esp + 0x29c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [0x472820]
add esp, 0x18
test al, al
je 0x4265d8
mov eax, 0x472820
lea esi, [esp + 0x384]
mov ecx, 0x472821
cmp byte [eax], 0x5c
jne 0x4265cc
cmp byte [ecx], 0x5c
jne 0x4265cc
inc ecx
inc eax
mov dl, byte [eax]
inc ecx
inc eax
mov byte [esi], dl
inc esi
cmp byte [eax], 0
jne 0x4265c0
or ecx, 0xffffffff
lea edi, [esp + 0x384]
xor eax, eax
lea edx, [esp + 0x4b0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x284]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x384]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x284]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x5b0]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x288]
push ecx
call dword [sym.imp.MSVCRT.dll__findfirst]
mov ebx, dword [sym.imp.MSVCRT.dll_remove]
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x85]
mov byte [esp + 0x84], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edi, [esp + 0x5c4]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x84]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x84]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 0x431d20
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4266f8
test cl, cl
je 0x4266f4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4266f8
add eax, 2
add esi, 2
test cl, cl
jne 0x4266d4
xor eax, eax
jmp 0x4266fd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4267ea
mov esi, 0x431d1c
lea eax, [esp + 0x84]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x426735
test cl, cl
je 0x426731
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x426735
add eax, 2
add esi, 2
test cl, cl
jne 0x426711
xor eax, eax
jmp 0x42673a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4267ea
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x184]
lea edx, [esp + 0x184]
rep stosd dword es:[edi], eax
or ecx, 0xffffffff
lea edi, [esp + 0x4b0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x184]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4321c0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x184]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x84]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x184]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call ebx
add esp, 4
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x5b0]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll__findnext]
add esp, 8
test eax, eax
je 0x426682
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.MSVCRT.dll__findclose]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
add esp, 4
mov ebx, 0xfbe0
jmp case.0x425ee2.9
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x6b8
ret