Function at 0x4137d0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x470a2e
mov eax, dword fs:[0]
push eax
sub esp, 0x290
mov eax, dword [0x485c44]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x244], edx
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x1e4], 0
push 0
push 0
lea ecx, [ebp - 0x68]
call fcn.0040d8a0
mov eax, dword [0x4764d8]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x68]
call fcn.0040da60
mov dword [ebp - 4], 1
push str._S
mov edx, dword [ebp - 0x244]
push edx
lea eax, [ebp - 0xc8]
push eax
call fcn.00415a70
add esp, 0xc
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x248]
mov dword [ebp - 0x24c], ecx
mov byte [ebp - 4], 2
lea edx, [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x24c]
push eax
lea ecx, [ebp - 0xe4]
push ecx
call fcn.00415b80
add esp, 0xc
mov dword [ebp - 0x1e8], eax
mov edx, dword [ebp - 0x1e8]
cmp dword [edx + 0x18], 8
jb 0x4138a6
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x250], ecx
jmp 0x4138b5
mov edx, dword [ebp - 0x1e8]
add edx, 4
mov dword [ebp - 0x250], edx
mov eax, dword [ebp - 0x250]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
xor ecx, ecx
cmp eax, 0xffffffff
sete cl
mov byte [ebp - 0xa9], cl
push 0
push 1
lea ecx, [ebp - 0xe4]
call fcn.0040d8a0
mov byte [ebp - 4], 1
push 0
push 1
lea ecx, [ebp - 0xc8]
call fcn.0040d8a0
movzx edx, byte [ebp - 0xa9]
test edx, edx
je 0x41394d
push 0
push 0
mov ecx, dword [ebp - 0x240]
call fcn.0040d8a0
mov eax, dword [0x4764d8]
push eax
push 0
lea ecx, [ebp - 0x68]
push ecx
mov ecx, dword [ebp - 0x240]
call fcn.0040da60
mov edx, dword [ebp - 0x1e4]
or edx, 1
mov dword [ebp - 0x1e4], edx
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x68]
call fcn.0040d8a0
mov eax, dword [ebp - 0x240]
jmp 0x413f43
mov eax, dword [0x4764d8]
mov dword [ebp - 0x1f0], eax
mov ecx, 0x2e
mov word [ebp - 0x1ea], cx
push 1
mov edx, dword [ebp - 0x1f0]
push edx
lea eax, [ebp - 0x1ea]
push eax
mov ecx, dword [ebp + 8]
call fcn.00414c90
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [0x4764d8]
jne 0x413998
mov edx, dword [ebp + 8]
mov dword [ebp - 0x254], edx
jmp 0x413a9a
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 8
jb 0x4139af
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x258], edx
jmp 0x4139bb
mov eax, dword [ebp + 8]
add eax, 4
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x258]
push edx
lea ecx, [ebp - 0x10c]
call fcn.0040f1c0
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x108]
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], ecx
mov edx, dword [ebp - 0x4c]
push edx
lea ecx, [ebp - 0x1f8]
call fcn.00414ea0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x110], edx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 8
jb 0x413a20
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x25c], edx
jmp 0x413a2c
mov eax, dword [ebp + 8]
add eax, 4
mov dword [ebp - 0x25c], eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x25c]
push edx
lea ecx, [ebp - 0x11c]
call fcn.0040f1c0
mov eax, dword [ebp - 0x110]
push eax
mov ecx, dword [ebp - 0x114]
push ecx
mov edx, dword [ebp - 0x118]
push edx
mov eax, dword [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x104]
call fcn.00414920
mov dword [ebp - 0x260], eax
mov ecx, dword [ebp - 0x260]
mov dword [ebp - 0x264], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x1e4]
or edx, 2
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x254], eax
mov ecx, dword [ebp - 0x254]
mov dword [ebp - 0xe8], ecx
push 0
push 0
lea ecx, [ebp - 0x2c]
call fcn.0040d8a0
mov edx, dword [0x4764d8]
push edx
push 0
mov eax, dword [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040da60
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x1e4]
and ecx, 2
je 0x413af2
and dword [ebp - 0x1e4], 0xfffffffd
push 0
push 1
lea ecx, [ebp - 0x104]
call fcn.0040d8a0
mov edx, dword [ebp - 0x4c]
cmp edx, dword [0x4764d8]
jne 0x413b48
lea eax, [ebp - 0x20d]
mov dword [ebp - 0x20c], eax
push 0
push 0
lea ecx, [ebp - 0x13c]
call fcn.0040d8a0
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x268], ecx
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x1e4]
or edx, 4
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x26c], eax
jmp 0x413c56
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x18], 8
jb 0x413b5f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x270], eax
jmp 0x413b6b
mov ecx, dword [ebp + 8]
add ecx, 4
mov dword [ebp - 0x270], ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x270]
lea eax, [edx + ecx*2]
push eax
lea ecx, [ebp - 0x160]
call fcn.0040f1c0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x18], 8
jb 0x413ba1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x274], eax
jmp 0x413bad
mov ecx, dword [ebp + 8]
add ecx, 4
mov dword [ebp - 0x274], ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x274]
push eax
lea ecx, [ebp - 0x168]
call fcn.0040f1c0
mov ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x218], ecx
mov dword [ebp - 0x214], edx
mov eax, dword [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x218]
call fcn.00414ea0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x15c]
push eax
mov ecx, dword [ebp - 0x160]
push ecx
mov edx, dword [ebp - 0x16c]
push edx
mov eax, dword [ebp - 0x170]
push eax
lea ecx, [ebp - 0x158]
call fcn.00414920
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0x278]
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 4], 7
mov edx, dword [ebp - 0x1e4]
or edx, 8
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp - 0x27c]
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x120], ecx
push 0
push 0
lea ecx, [ebp - 0x48]
call fcn.0040d8a0
mov edx, dword [0x4764d8]
push edx
push 0
mov eax, dword [ebp - 0x120]
push eax
lea ecx, [ebp - 0x48]
call fcn.0040da60
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x1e4]
and ecx, 8
je 0x413cae
and dword [ebp - 0x1e4], 0xfffffff7
push 0
push 1
lea ecx, [ebp - 0x158]
call fcn.0040d8a0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x1e4]
and edx, 4
je 0x413cd3
and dword [ebp - 0x1e4], 0xfffffffb
push 0
push 1
lea ecx, [ebp - 0x13c]
call fcn.0040d8a0
mov dword [ebp - 0x6c], 1
jmp 0x413ce5
mov eax, dword [ebp - 0x6c]
add eax, 1
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0x3e8
jge 0x413ed8
xor ecx, ecx
mov word [ebp - 0x8c], cx
xor edx, edx
mov dword [ebp - 0x8a], edx
mov dword [ebp - 0x86], edx
mov dword [ebp - 0x82], edx
mov dword [ebp - 0x7e], edx
mov dword [ebp - 0x7a], edx
mov dword [ebp - 0x76], edx
mov dword [ebp - 0x72], edx
mov word [ebp - 0x6e], dx
push 0xa
push 0x10
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.0045a76f
add esp, 0x10
push 0x477388
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x18c]
push eax
call fcn.00415a70
add esp, 0xc
mov dword [ebp - 0x280], eax
mov ecx, dword [ebp - 0x280]
mov dword [ebp - 0x284], ecx
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x8c]
push edx
mov eax, dword [ebp - 0x284]
push eax
lea ecx, [ebp - 0x1a8]
push ecx
call fcn.00415a70
add esp, 0xc
mov dword [ebp - 0x288], eax
mov edx, dword [ebp - 0x288]
mov dword [ebp - 0x28c], edx
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x28c]
push ecx
lea edx, [ebp - 0x1c4]
push edx
call fcn.00415b80
add esp, 0xc
mov dword [ebp - 0x290], eax
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x228], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [0x4764d8]
push ecx
push 0
mov edx, dword [ebp - 0x228]
push edx
lea ecx, [ebp - 0x68]
call fcn.0040da60
mov byte [ebp - 4], 0xc
push 0
push 1
lea ecx, [ebp - 0x1c4]
call fcn.0040d8a0
mov byte [ebp - 4], 0xb
push 0
push 1
lea ecx, [ebp - 0x1a8]
call fcn.0040d8a0
mov byte [ebp - 4], 0xa
push 0
push 1
lea ecx, [ebp - 0x18c]
call fcn.0040d8a0
push 0x47738c
mov eax, dword [ebp - 0x244]
push eax
lea ecx, [ebp - 0x1e0]
push ecx
call fcn.00415a70
add esp, 0xc
mov dword [ebp - 0x294], eax
mov edx, dword [ebp - 0x294]
mov dword [ebp - 0x298], edx
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x298]
push ecx
lea edx, [ebp - 0xa8]
push edx
call fcn.00415b80
add esp, 0xc
mov byte [ebp - 4], 0x10
push 0
push 1
lea ecx, [ebp - 0x1e0]
call fcn.0040d8a0
cmp dword [ebp - 0x90], 8
jb 0x413e8d
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x29c], eax
jmp 0x413e99
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x29c], ecx
mov edx, dword [ebp - 0x29c]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x413ec0
mov byte [ebp - 4], 0xa
push 0
push 1
lea ecx, [ebp - 0xa8]
call fcn.0040d8a0
jmp 0x413ed8
mov byte [ebp - 4], 0xa
push 0
push 1
lea ecx, [ebp - 0xa8]
call fcn.0040d8a0
jmp 0x413cdc
push 0
push 0
mov ecx, dword [ebp - 0x240]
call fcn.0040d8a0
mov eax, dword [0x4764d8]
push eax
push 0
lea ecx, [ebp - 0x68]
push ecx
mov ecx, dword [ebp - 0x240]
call fcn.0040da60
mov edx, dword [ebp - 0x1e4]
or edx, 1
mov dword [ebp - 0x1e4], edx
mov byte [ebp - 4], 5
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.0040d8a0
mov byte [ebp - 4], 1
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.0040d8a0
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x68]
call fcn.0040d8a0
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00458357
mov esp, ebp
pop ebp
ret 4