Function at 0x438830
Capabilities:
Check if file exists
Get file attributes
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x486976
mov eax, dword fs:[0]
push eax
sub esp, 0x24c
mov eax, dword [0x4b7b70]
xor eax, esp
mov dword [esp + 0x248], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4b7b70]
xor eax, esp
push eax
lea eax, [esp + 0x260]
mov dword fs:[0], eax
mov eax, dword [esp + 0x270]
mov edi, dword [esp + 0x278]
push 1
mov esi, ecx
mov dword [esp + 0x20], eax
call fcn.00437320
test al, al
je 0x438891
xor al, al
jmp 0x438ae7
xor ebx, ebx
cmp byte [esi + 0xe4], bl
jne 0x43888a
lea ebp, [esi + 0x78]
mov ecx, ebp
call fcn.0043adc0
cmp eax, 0xffffffff
je 0x43888a
mov ecx, esi
call fcn.004379d0
cmp eax, 0xffff
je 0x43888a
cmp edi, ebx
je 0x438904
lea ecx, [esp + 0x30]
push ecx
push edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
call fcn.0043e4d9
test eax, eax
je 0x43888a
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x38]
push edx
call fcn.0043ab60
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x24], eax
cmp eax, 0xffffffff
je 0x43888a
lea ecx, [esi + 0x20]
call fcn.0043d640
mov edx, dword [esp + 0x1c]
lea edi, [esi + 0xe8]
push edx
mov ecx, edi
call fcn.0043d0f0
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.00437470
mov ecx, eax
call fcn.0043ac50
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x268], ebx
cmp dword [ecx - 0xc], ebx
jne 0x43896e
mov ecx, esi
call fcn.004379d0
push eax
lea edx, [esp + 0x1c]
push str.file_i
push edx
call fcn.00413570
mov eax, dword [esp + 0x24]
add esp, 0xc
push eax
mov ecx, esi
call fcn.00437470
mov ecx, eax
call fcn.0043a670
mov al, byte [esi + 0x15c]
cmp al, byte [edi + 0x74]
jne 0x43898d
mov edi, dword [edi + 0x28]
push 1
mov ecx, edi
call fcn.00410b30
push ebx
mov ecx, edi
call fcn.0043a690
mov ecx, esi
call fcn.00437470
mov ecx, dword [eax + 0x24]
push ecx
mov ecx, esi
call fcn.00437520
cmp dword [esi + 0x10], ebx
mov ecx, ebp
setne byte [esp + 0x20]
mov edx, dword [esp + 0x20]
push edx
mov byte [esp + 0x1b], al
call fcn.0043adc0
mov edi, dword [esp + 0x278]
cmp eax, 1
sete al
movzx ecx, al
push ecx
push edi
mov ecx, esi
call fcn.00437470
mov ecx, eax
call fcn.0043a510
test al, al
jne 0x4389e4
push 0xffffffffffffff95
mov ecx, esi
call fcn.00437f50
push ebp
mov ecx, esi
call fcn.00437470
mov ecx, eax
call fcn.0043a3b0
cmp byte [esi + 0x15c], bl
je 0x438a0e
mov edx, dword [esp + 0x18]
push edx
mov ecx, esi
call fcn.00437470
mov ecx, eax
call fcn.0043a670
cmp byte [esp + 0x20], bl
je 0x438a5f
push ebx
push 0xc
lea ecx, [esp + 0x2c]
call fcn.0043bfb0
mov ecx, dword [esp + 0x1c]
movzx edx, word [ecx + 0x10]
lea eax, [esp + 0x24]
push eax
shl edx, 0x10
push edx
mov ecx, esi
mov byte [esp + 0x270], 1
call fcn.00437e70
mov eax, dword [esp + 0x28]
push ebx
push 0xc
push eax
mov ecx, ebp
call fcn.0043b930
lea ecx, [esp + 0x24]
mov byte [esp + 0x268], bl
call fcn.0043bfe0
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x70]
mov dword [esi + 0x64], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x34], edx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x3c], ebx
cmp byte [esp + 0x17], bl
je 0x438a95
mov ecx, esi
call fcn.00437470
cmp word [eax + 0xe], bx
je 0x438a95
call fcn.00437470
xor ecx, ecx
mov word [eax + 0xe], cx
mov ecx, esi
call fcn.00437470
cmp word [eax + 0xe], 8
jne 0x438ad5
cmp byte [esi + 4], bl
je 0x438ab0
lea eax, [esi + 0xc8]
jmp 0x438ab2
xor eax, eax
push 0x38
push 0x493b1c
push ebx
push 8
push 0xfffffffffffffff1
push 8
push edi
lea edx, [esi + 0x28]
push edx
mov dword [esi + 0x50], eax
call fcn.0047d070
push eax
mov ecx, esi
call fcn.00438000
lea ecx, [esp + 0x18]
mov byte [esi + 0xe4], 1
call fcn.0042a9f0
mov al, 1
mov ecx, dword [esp + 0x260]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x248]
xor ecx, esp
call fcn.00460f10
add esp, 0x258
ret 0xc