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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5ad030
push eax
mov dword fs:[0], esp
sub esp, 0x1b8
mov edx, dword [esp + 0x1c8]
lea eax, [esp + 0x68]
push ebx
push ebp
push esi
xor ebp, ebp
push edi
push ebp
push ebp
push ebp
push ebp
push 0x100
lea ecx, [esp + 0x18c]
push eax
push ecx
push edx
call fcn.0056c790
add esp, 0x20
cmp eax, ebp
jne 0x414e0b
lea eax, [esp + 0x78]
push ebp
push eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x7c], ebp
mov word [esp + 0x78], bp
call fcn.004028e0
xor esi, esi
mov dword [esp + 0x1d0], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ebp
mov word [esp + 0x24], bp
mov edi, dword [esp + 0x6c]
mov byte [esp + 0x1d0], 1
cmp edi, ebp
jne 0x414615
lea edi, [esp + 0x70]
mov eax, dword [0x67a028]
cmp eax, ebp
jne 0x414623
mov eax, 0x67a02c
mov ecx, 0x651110
test ecx, ecx
je 0x41479f
cmp eax, ebp
je 0x41479f
mov edx, 0x650a6c
test edx, edx
je 0x41479f
cmp edi, ebp
je 0x41479f
push eax
lea ecx, [esp + 0x60]
call fcn.00403bb0
push 0x650a6c
lea ecx, [esp + 0x18]
mov byte [esp + 0x1d4], 2
call fcn.00403bb0
push edi
lea ecx, [esp + 0x54]
mov byte [esp + 0x1d4], 3
call fcn.00403bb0
mov bl, 4
lea ecx, [esp + 0x20]
mov byte [esp + 0x1d0], bl
call fcn.00401070
push 0x651110
lea ecx, [esp + 0x3c]
call fcn.00401f30
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x50]
mov byte [esp + 0x1d0], 5
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [esp + 0x14]
mov edi, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
mov ebp, eax
add esp, 4
lea ecx, [esp + 0x5c]
add ebp, esi
call fcn.00401fb0
push eax
call fcn.0057e90a
add ebp, edi
lea esi, [eax + ebp + 4]
lea ebp, [esi + esi]
push ebp
call fcn.005970d9
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x20], edi
je 0x414756
mov ecx, ebp
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [esp + 0x50]
call fcn.00401fb0
push eax
lea ecx, [esp + 0x18]
call fcn.00401fb0
push eax
lea ecx, [esp + 0x64]
call fcn.00401fb0
push eax
lea ecx, [esp + 0x44]
call fcn.00401fb0
push eax
mov eax, dword [esp + 0x30]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0057e90a
add esp, 0x1c
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], bl
call fcn.00401070
lea ecx, [esp + 0x50]
mov byte [esp + 0x1d0], 3
call fcn.00401070
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d0], 2
call fcn.00401070
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1d0], 1
call fcn.00401070
mov esi, dword [esp + 0x20]
xor ebp, ebp
cmp esi, ebp
je 0x4147c9
push esi
call fcn.0057e90a
lea eax, [esi + eax*2]
add esp, 4
cmp esi, eax
jae 0x4147c5
cmp word [esi], 0x2f
jne 0x4147be
mov word [esi], 0x5c
add esi, 2
cmp esi, eax
jb 0x4147b3
mov esi, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ecx
mov word [esp + 0x30], bp
cmp esi, ebp
mov byte [esp + 0x1d0], 6
mov eax, esi
jne 0x4147ea
lea eax, [esp + 0x24]
mov edx, 0x64efb0
test edx, edx
je 0x4148c7
cmp eax, ebp
je 0x4148c7
push eax
lea ecx, [esp + 0x3c]
call fcn.00403bb0
mov bl, 7
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1d0], bl
call fcn.00401070
push 0x64efb0
lea ecx, [esp + 0x60]
call fcn.00401f30
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 8
call fcn.00401fb0
push eax
call fcn.0057e90a
lea esi, [eax + esi + 2]
lea ebp, [esi + esi]
push ebp
call fcn.005970d9
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x2c], edi
je 0x4148a0
mov ecx, ebp
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [esp + 0x38]
call fcn.00401fb0
push eax
lea ecx, [esp + 0x60]
call fcn.00401fb0
push eax
mov eax, dword [esp + 0x34]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.0057e90a
add esp, 0x14
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1d0], bl
call fcn.00401070
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 6
call fcn.00401070
mov ecx, dword [esp + 0x2c]
xor ebp, ebp
cmp ecx, ebp
mov eax, ecx
jne 0x4148d1
lea eax, [esp + 0x30]
push 0x5c
push eax
call fcn.0057e85a
add esp, 8
cmp eax, ebp
je 0x4149ea
add eax, 2
mov word [eax], bp
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x4148f6
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4149ea
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x414912
lea eax, [esp + 0x30]
add eax, 6
push 0x5c
push eax
call fcn.0057ed7f
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4149ea
mov bl, 9
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x414938
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], ebp
mov word [esp + 0x1c], bp
call fcn.00401fc0
mov eax, dword [esp + 0x14]
mov byte [esp + 0x1d0], bl
cmp eax, ebp
mov ecx, eax
jne 0x414964
lea ecx, [esp + 0x18]
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x414970
lea eax, [esp + 0x30]
mov edx, esi
sub edx, eax
sar edx, 1
mov word [ecx + edx*2], bp
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x414986
lea eax, [esp + 0x18]
push ebp
push eax
call fcn.0046e090
add esp, 8
test eax, eax
jne 0x4149ae
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x4149a0
lea eax, [esp + 0x18]
push ebp
push eax
call fcn.0046e270
add esp, 8
test eax, eax
je 0x4149d9
add esi, 2
push 0x5c
push esi
call fcn.0057ed7f
add esp, 8
lea ecx, [esp + 0x14]
mov esi, eax
mov byte [esp + 0x1d0], 6
call fcn.00401070
cmp esi, ebp
jne 0x41492c
jmp 0x4149ea
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d0], 6
call fcn.00401070
push 0x2000
call fcn.0057f1b0
add esp, 4
cmp eax, ebp
mov dword [esp + 0x68], eax
jne 0x414a3f
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1d0], 1
call fcn.00401070
lea ecx, [esp + 0x20]
mov byte [esp + 0x1d0], 0
call fcn.00401070
lea ecx, [esp + 0x6c]
mov dword [esp + 0x1d0], 0xffffffff
call fcn.00401070
mov eax, 0xffffff98
jmp 0x414e0b
xor ebp, ebp
mov byte [esp + 0x13], 0
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4c], ebp
mov word [esp + 0x48], bp
mov eax, dword [esp + 0x1d8]
mov byte [esp + 0x1d0], 0xa
push eax
call fcn.0056cc40
mov ebx, eax
add esp, 4
cmp ebx, ebp
jne 0x414da8
mov eax, dword [esp + 0x20]
cmp eax, ebp
jne 0x414a81
lea eax, [esp + 0x24]
push 0x651108
push eax
call fcn.0057ff6f
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x414ba7
mov eax, dword [esp + 0x20]
cmp eax, ebp
jne 0x414aa5
lea eax, [esp + 0x24]
mov ecx, 0x651100
test ecx, ecx
je 0x414b7e
cmp eax, ebp
je 0x414b7e
push eax
lea ecx, [esp + 0x3c]
call fcn.00403bb0
lea ecx, [esp + 0x44]
mov byte [esp + 0x1d0], 0xb
call fcn.00401070
push 0x651100
lea ecx, [esp + 0x60]
call fcn.00401f30
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 0xc
call fcn.00401fb0
push eax
call fcn.0057e90a
lea esi, [eax + esi + 2]
lea ebp, [esi + esi]
push ebp
call fcn.005970d9
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x44], edi
je 0x414b5a
mov ecx, ebp
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [esp + 0x38]
call fcn.00401fb0
push eax
lea ecx, [esp + 0x60]
call fcn.00401fb0
push eax
mov eax, dword [esp + 0x4c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0057e90a
add esp, 0x14
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1d0], 0xb
call fcn.00401070
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 0xa
call fcn.00401070
xor ebp, ebp
mov eax, dword [esp + 0x44]
cmp eax, ebp
jne 0x414b8a
lea eax, [esp + 0x48]
push 0x651108
push eax
call fcn.0057ff6f
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x414da8
mov byte [esp + 0x13], 1
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x1d8]
push 0x2000
push edi
push edx
call fcn.0056cf80
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
jl 0x414bfc
jle 0x414bfc
push esi
push 1
push ebx
push edi
call fcn.0057fe05
add esp, 0x10
cmp eax, 1
jne 0x414bf9
mov eax, dword [esp + 0x1d8]
push 0x2000
push edi
push eax
call fcn.0056cf80
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
jge 0x414bc7
jmp 0x414bfc
or ebx, 0xffffffff
push esi
call fcn.0057fd88
lea ecx, [esp + 0x7c]
push 0x6510ec
push ecx
call fcn.0057ea00
add esp, 0xc
test eax, eax
jne 0x414c32
lea edx, [esp + 0x78]
push 0x6510d8
push edx
call fcn.0057ea00
add esp, 8
test eax, eax
je 0x414d82
mov al, byte [esp + 0x13]
test al, al
je 0x414c48
mov eax, dword [esp + 0x44]
cmp eax, ebp
jne 0x414c54
lea eax, [esp + 0x48]
jmp 0x414c54
mov eax, dword [esp + 0x20]
cmp eax, ebp
jne 0x414c54
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], ebp
mov word [esp + 0x58], bp
call fcn.00401fc0
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], ebp
mov word [esp + 0x18], bp
lea eax, [esp + 0x78]
push 0x6510ec
push eax
mov byte [esp + 0x1d8], 0xe
call fcn.0057ea00
add esp, 8
mov ecx, 0x6510b4
test eax, eax
jne 0x414ca0
mov ecx, 0x65108c
mov eax, dword [0x67a008]
cmp eax, ebp
jne 0x414cae
mov eax, 0x67a00c
push ecx
push eax
push 0x64f030
lea ecx, [esp + 0x20]
call fcn.00410280
mov eax, dword [esp + 0x14]
cmp eax, ebp
mov ecx, eax
jne 0x414ccc
lea ecx, [esp + 0x18]
mov eax, dword [esp + 0x50]
cmp eax, ebp
jne 0x414cd8
lea eax, [esp + 0x54]
push ebp
push ebp
push ecx
push eax
call fcn.0046dcf0
add esp, 0x10
test eax, eax
jne 0x414d60
lea ecx, [esp + 0x38]
call fcn.00414e30
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d0], 0xf
call fcn.00401fb0
push eax
push 0x651088
lea ecx, [esp + 0x40]
call fcn.00413230
push ebp
push ebp
lea ecx, [esp + 0x40]
call fcn.00401fb0
push eax
lea ecx, [esp + 0x5c]
call fcn.00401fb0
push eax
call fcn.0046dcf0
add esp, 0x10
test eax, eax
je 0x414d4f
lea ecx, [esp + 0x14]
call fcn.00401fb0
push eax
lea ecx, [esp + 0x3c]
call fcn.00401fb0
push eax
call fcn.00414560
add esp, 8
lea ecx, [esp + 0x38]
mov byte [esp + 0x1d0], 0xe
call fcn.00401070
lea ecx, [esp + 0x14]
mov byte [esp + 0x1d0], 0xd
call fcn.00401070
lea ecx, [esp + 0x50]
mov byte [esp + 0x1d0], 0xa
call fcn.00401070
mov al, byte [esp + 0x13]
test al, al
je 0x414dac
lea ecx, [esp + 0x20]
call fcn.00401fb0
push eax
lea ecx, [esp + 0x48]
call fcn.00401fb0
push eax
call fcn.00414560
add esp, 8
jmp 0x414dac
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x1d8]
push ecx
call fcn.0056d170
push edi
call fcn.0057eacf
add esp, 8
lea ecx, [esp + 0x44]
mov byte [esp + 0x1d0], 6
call fcn.00401070
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1d0], 1
call fcn.00401070
lea ecx, [esp + 0x20]
mov byte [esp + 0x1d0], 0
call fcn.00401070
lea ecx, [esp + 0x6c]
mov dword [esp + 0x1d0], 0xffffffff
call fcn.00401070
mov eax, ebx
mov ecx, dword [esp + 0x1c8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c4
ret