Function at 0x403220
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4513ce
mov eax, dword fs:[0]
push eax
mov eax, 0x1b24
call fcn.00442260
mov eax, dword [0x467e60]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x1b28], eax
xor eax, eax
push 0x63e
push eax
mov word [ebp - 0x858], ax
lea eax, [ebp - 0x856]
push eax
call fcn.0043f3e0
add esp, 0xc
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.0043f3e0
add esp, 0xc
test ebx, ebx
jne 0x4032ab
lea eax, [ebx + 1]
jmp 0x403611
mov edx, esi
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4032b0
sub edx, ecx
sar edx, 1
mov ecx, esi
call fcn.00401e90
test eax, eax
jne 0x4032d4
mov eax, 2
jmp 0x403611
mov ecx, edi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4032e0
sub ecx, edx
sar ecx, 1
test edi, edi
je 0x40360c
test ecx, ecx
jle 0x40360c
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x403319
mov ecx, edi
call fcn.00401fc0
test eax, eax
je 0x40360c
xor eax, eax
push 0x63e
push eax
mov word [ebp - 0xe98], ax
lea eax, [ebp - 0xe96]
push eax
call fcn.0043f3e0
mov edx, esi
add esp, 0xc
lea ecx, [edx + 2]
lea esp, [esp]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x403340
sub edx, ecx
push ecx
lea eax, [ebp - 0xe98]
sar edx, 1
push eax
mov ecx, esi
call fcn.00402110
add esp, 8
test eax, eax
jne 0x40336f
mov eax, 4
jmp 0x403611
push 0xc88
lea eax, [ebp - 0x1b20]
push 0
push eax
call fcn.0043f3e0
add esp, 0xc
lea eax, [ebp - 0x218]
push ebx
push edi
push str._s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov edx, esi
add esp, 0x10
mov dword [ebp - 0xea0], 0
mov dword [ebp - 0xe9c], 0
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4033b5
push ecx
lea eax, [ebp - 0xe98]
push eax
sub edx, ecx
push ecx
lea eax, [ebp - 0x858]
sar edx, 1
push eax
mov ecx, esi
call fcn.004027e0
add esp, 0x10
test eax, eax
je 0x403441
lea ecx, [ebp - 0x858]
lea edx, [ecx + 2]
jmp 0x4033f0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4033f0
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x1b20]
push eax
call fcn.0043fb10
add esp, 0xc
lea eax, [ebp - 0x858]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, eax
lea ecx, [ebp - 0x858]
call fcn.00401e90
test eax, eax
jne 0x403469
mov eax, 5
jmp 0x403611
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403446
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x1b20]
push esi
push eax
call fcn.0043fb10
add esp, 0xc
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403472
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x14e0]
push eax
call fcn.0043fb10
add esp, 0xc
push 0x30
call fcn.0043d708
add esp, 4
mov dword [ebp - 0x1b2c], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x4034c8
lea ecx, [ebp - 0x1b20]
push ecx
mov ecx, eax
call fcn.004047e0
mov edi, eax
jmp 0x4034ca
xor edi, edi
mov ecx, dword [ebp - 0x1b28]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x46ac00]
mov esi, dword [0x46abfc]
mov dword [edi + 4], eax
mov dword [ecx], eax
dec eax
mov dword [ebp - 0x1b24], edi
mov dword [0x46ac00], eax
test esi, esi
jne 0x403525
push 0xc
call fcn.0043d708
mov esi, eax
add esp, 4
test esi, esi
je 0x40351d
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
jmp 0x40351f
xor esi, esi
mov dword [0x46abfc], esi
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x1b24]
cmp eax, ecx
jae 0x4035a8
mov ebx, dword [esi]
cmp ebx, eax
ja 0x4035a8
mov edx, dword [esi + 8]
mov edi, eax
sub edi, ebx
sar edi, 2
cmp ecx, edx
jne 0x403592
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x403592
sub ecx, ebx
mov ebx, 0x3fffffff
sar ecx, 2
mov eax, ebx
sub eax, ecx
cmp eax, 1
jae 0x40356f
push str.vector_T__too_long
call fcn.0043cdb7
sub edx, dword [esi]
inc ecx
sar edx, 2
mov eax, edx
shr eax, 1
sub ebx, eax
cmp ebx, edx
jae 0x403583
xor edx, edx
jmp 0x403585
add edx, eax
cmp edx, ecx
cmovb edx, ecx
push edx
mov ecx, esi
call fcn.00403730
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x403604
mov eax, dword [esi]
mov eax, dword [eax + edi*4]
mov dword [ecx], eax
add dword [esi + 4], 4
xor eax, eax
jmp 0x403611
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x4035fb
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x4035fb
sub ecx, dword [esi]
mov ebx, 0x3fffffff
sar ecx, 2
mov eax, ebx
sub eax, ecx
cmp eax, 1
jae 0x4035d8
push str.vector_T__too_long
call fcn.0043cdb7
sub edx, dword [esi]
inc ecx
sar edx, 2
mov eax, edx
shr eax, 1
sub ebx, eax
cmp ebx, edx
jae 0x4035ec
xor edx, edx
jmp 0x4035ee
add edx, eax
cmp edx, ecx
cmovb edx, ecx
push edx
mov ecx, esi
call fcn.00403730
mov eax, dword [esi + 4]
test eax, eax
je 0x403604
mov dword [eax], edi
add dword [esi + 4], 4
xor eax, eax
jmp 0x403611
mov eax, 3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043cefb
mov esp, ebp
pop ebp
ret