Function at 0x439ae0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cbede
mov eax, dword fs:[0]
push eax
sub esp, 0xc20
mov eax, dword [0x4f6cdc]
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, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
xor ebx, ebx
mov dword [ebp - 0xc18], ecx
mov dword [ebp - 0xc1c], eax
mov dword [ebp - 0xc2c], ebx
mov byte [ebp - 0xc11], 1
cmp esi, ebx
je 0x439e81
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x439b40
sub eax, edx
sar eax, 1
je 0x439e81
cmp edi, ebx
je 0x439e81
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x439b62
sub eax, edx
sar eax, 1
je 0x439e81
cmp dword [ebp - 0xc1c], ebx
je 0x439e81
push 0x400
lea ecx, [ebp - 0x410]
push ebx
push ecx
call fcn.0049eae0
push 0x400
lea edx, [ebp - 0xc10]
push ebx
push edx
call fcn.0049eae0
lea eax, [ebp - 0xc10]
push esi
push eax
call fcn.00433e90
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
add esp, 0x20
lea ecx, [ebp - 0xc10]
push ecx
lea edx, [ebp - 0x410]
push edx
call esi
push edi
lea eax, [ebp - 0x410]
push eax
call esi
mov edi, dword [ebp - 0xc18]
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x28]
add edi, 0x24
sub eax, ecx
sar eax, 2
xor esi, esi
cmp eax, ebx
jbe 0x439cbe
cmp eax, esi
jbe 0x439d15
cmp dword [ecx + esi*4], ebx
je 0x439c9f
mov ecx, dword [ecx + esi*4]
cmp dword [ecx], ebx
je 0x439c9f
push esi
mov ecx, edi
call fcn.00435b40
mov edx, dword [eax]
cmp dword [edx], ebx
je 0x439c9f
push esi
mov ecx, edi
call fcn.00435b40
mov eax, dword [eax]
mov eax, dword [eax]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x439c32
sub eax, edx
sar eax, 1
je 0x439c9f
push esi
mov ecx, edi
call fcn.00435b40
mov edx, dword [eax]
mov eax, dword [edx]
lea ecx, [ebp - 0x410]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x439c7b
cmp dx, bx
je 0x439c77
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x439c7b
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x439c55
xor eax, eax
jmp 0x439c80
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x439c9f
push esi
mov ecx, edi
call fcn.00435b40
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0xc1c]
mov dword [edx], ecx
mov byte [ebp - 0xc11], bl
mov ecx, dword [edi]
mov eax, dword [edi + 4]
sub eax, ecx
inc esi
sar eax, 2
cmp eax, esi
ja 0x439bfd
cmp byte [ebp - 0xc11], bl
je 0x439e5b
push 8
call fcn.0049eef7
mov esi, eax
push 0x400
mov dword [ebp - 0xc20], esi
call fcn.004a0979
add esp, 8
mov dword [esi], eax
lea ecx, [ebp - 0x410]
mov edx, eax
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
cmp ax, bx
jne 0x439ce4
push 0x3c
call fcn.0049eef7
add esp, 4
mov dword [ebp - 0xc24], eax
mov dword [ebp - 4], ebx
cmp eax, ebx
je 0x439d1f
mov ecx, eax
call fcn.004017f0
jmp 0x439d21
push str.invalid_vector_T__subscript
call fcn.004c8322
xor eax, eax
mov dword [esi + 4], eax
mov eax, dword [ebp - 0xc18]
mov dword [ebp - 4], 0xffffffff
cmp dword [eax + 0x5c], ebx
je 0x439da1
mov ecx, dword [eax + 0x5c]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
test al, al
je 0x439da1
lea eax, [ebp - 0xc28]
push eax
mov eax, dword [ebp - 0xc18]
lea ecx, [ebp - 0xc24]
push ecx
mov ecx, dword [eax + 0x5c]
lea edx, [ebp - 0x410]
push edx
mov dword [ebp - 0xc24], ebx
mov dword [ebp - 0xc28], ebx
call fcn.00431790
cmp eax, ebx
jne 0x439d92
mov ecx, dword [ebp - 0xc28]
mov edx, dword [ebp - 0xc24]
push ecx
mov ecx, dword [esi + 4]
push edx
call fcn.00402ed0
jmp 0x439e3d
cmp eax, 1
je 0x439da1
mov esi, 3
jmp 0x439e86
push 0x3fe
lea ecx, [ebp - 0x80e]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0x810], ax
call fcn.0049eae0
mov ecx, dword [ebp - 0xc18]
add esp, 0xc
lea edx, [ebp - 0x810]
push edx
call fcn.00433a40
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebp - 0x810]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x810]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x439e26
mov eax, dword [ebp - 0xc18]
cmp dword [eax + 0x5c], ebx
je 0x439e26
mov ecx, dword [eax + 0x5c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
lea edx, [ebp - 0x810]
push edx
call eax
lea ecx, [ebp - 0x410]
push ecx
lea edx, [ebp - 0x810]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x810]
push eax
call fcn.00402eb0
test al, al
je 0x439d97
cmp dword [esi + 4], ebx
je 0x439e5b
mov ecx, dword [esi + 4]
mov edx, dword [ebp - 0xc1c]
lea eax, [ebp - 0xc20]
mov dword [edx], ecx
push eax
mov ecx, edi
call fcn.00439130
mov esi, dword [ebp - 0xc2c]
mov eax, esi
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.0049f71b
mov esp, ebp
pop ebp
ret 0xc
mov esi, 0xa
mov ecx, dword [ebp - 0xc1c]
push ecx
mov ecx, dword [ebp - 0xc18]
push 0x332
call fcn.00438a40
jmp 0x439e61