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

Disassembly:
push 0xffffffffffffffff
push 0x4865e6
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.00437090
test al, al
je 0x438601
xor al, al
jmp 0x438857
xor ebx, ebx
cmp byte [esi + 0xe4], bl
jne 0x4385fa
lea ebp, [esi + 0x78]
mov ecx, ebp
call fcn.0043ab30
cmp eax, 0xffffffff
je 0x4385fa
mov ecx, esi
call fcn.00437740
cmp eax, 0xffff
je 0x4385fa
cmp edi, ebx
je 0x438674
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.0043e249
test eax, eax
je 0x4385fa
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x38]
push edx
call fcn.0043a8d0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x24], eax
cmp eax, 0xffffffff
je 0x4385fa
lea ecx, [esi + 0x20]
call fcn.0043d3b0
mov edx, dword [esp + 0x1c]
lea edi, [esi + 0xe8]
push edx
mov ecx, edi
call fcn.0043ce60
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.004371e0
mov ecx, eax
call fcn.0043a9c0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x268], ebx
cmp dword [ecx - 0xc], ebx
jne 0x4386de
mov ecx, esi
call fcn.00437740
push eax
lea edx, [esp + 0x1c]
push str.file_i
push edx
call fcn.004135e0
mov eax, dword [esp + 0x24]
add esp, 0xc
push eax
mov ecx, esi
call fcn.004371e0
mov ecx, eax
call fcn.0043a3e0
mov al, byte [esi + 0x15c]
cmp al, byte [edi + 0x74]
jne 0x4386fd
mov edi, dword [edi + 0x28]
push 1
mov ecx, edi
call fcn.00413390
push ebx
mov ecx, edi
call fcn.0043a400
mov ecx, esi
call fcn.004371e0
mov ecx, dword [eax + 0x24]
push ecx
mov ecx, esi
call fcn.00437290
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.0043ab30
mov edi, dword [esp + 0x278]
cmp eax, 1
sete al
movzx ecx, al
push ecx
push edi
mov ecx, esi
call fcn.004371e0
mov ecx, eax
call fcn.0043a280
test al, al
jne 0x438754
push 0xffffffffffffff95
mov ecx, esi
call fcn.00437cc0
push ebp
mov ecx, esi
call fcn.004371e0
mov ecx, eax
call fcn.0043a120
cmp byte [esi + 0x15c], bl
je 0x43877e
mov edx, dword [esp + 0x18]
push edx
mov ecx, esi
call fcn.004371e0
mov ecx, eax
call fcn.0043a3e0
cmp byte [esp + 0x20], bl
je 0x4387cf
push ebx
push 0xc
lea ecx, [esp + 0x2c]
call fcn.0043bd20
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.00437be0
mov eax, dword [esp + 0x28]
push ebx
push 0xc
push eax
mov ecx, ebp
call fcn.0043b6a0
lea ecx, [esp + 0x24]
mov byte [esp + 0x268], bl
call fcn.0043bd50
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 0x438805
mov ecx, esi
call fcn.004371e0
cmp word [eax + 0xe], bx
je 0x438805
call fcn.004371e0
xor ecx, ecx
mov word [eax + 0xe], cx
mov ecx, esi
call fcn.004371e0
cmp word [eax + 0xe], 8
jne 0x438845
cmp byte [esi + 4], bl
je 0x438820
lea eax, [esi + 0xc8]
jmp 0x438822
xor eax, eax
push 0x38
push 0x493aa4
push ebx
push 8
push 0xfffffffffffffff1
push 8
push edi
lea edx, [esi + 0x28]
push edx
mov dword [esi + 0x50], eax
call fcn.0047cde0
push eax
mov ecx, esi
call fcn.00437d70
lea ecx, [esp + 0x18]
mov byte [esi + 0xe4], 1
call fcn.00411220
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.00460c80
add esp, 0x258
ret 0xc