Function at 0x40d8c0
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x517e06
mov eax, dword fs:[0]
push eax
sub esp, 0x33c
mov eax, dword [0x577690]
xor eax, esp
mov dword [esp + 0x338], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x577690]
xor eax, esp
push eax
lea eax, [esp + 0x350]
mov dword fs:[0], eax
xor ebx, ebx
mov ebp, 0xf
mov esi, ecx
mov dword [esp + 0x298], ebp
mov dword [esp + 0x294], ebx
mov byte [esp + 0x284], bl
mov dword [esp + 0x358], ebx
mov dword [esp + 0x1f0], ebp
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x1dc], bl
mov dword [esp + 0x19c], ebp
mov dword [esp + 0x198], ebx
mov byte [esp + 0x188], bl
mov dword [esp + 0x180], ebp
mov dword [esp + 0x17c], ebx
mov byte [esp + 0x16c], bl
mov dword [esp + 0x20c], ebp
mov dword [esp + 0x208], ebx
mov byte [esp + 0x1f8], bl
mov dword [esp + 0x1d4], ebp
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
mov dword [esp + 0x1b8], ebp
mov dword [esp + 0x1b4], ebx
mov byte [esp + 0x1a4], bl
mov dword [esp + 0x164], ebp
mov dword [esp + 0x160], ebx
mov byte [esp + 0x150], bl
mov byte [esp + 0x358], 7
cmp dword [esi + 0x18], 0x10
lea edi, [esi + 4]
jb 0x40d9c8
mov eax, dword [edi]
jmp 0x40d9ca
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x40db3a
mov esi, 0x10
cmp dword [esp + 0x164], esi
jb 0x40d9f7
mov eax, dword [esp + 0x150]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x164], ebp
mov dword [esp + 0x160], ebx
mov byte [esp + 0x150], bl
cmp dword [esp + 0x1b8], esi
jb 0x40da25
mov ecx, dword [esp + 0x1a4]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1b8], ebp
mov dword [esp + 0x1b4], ebx
mov byte [esp + 0x1a4], bl
cmp dword [esp + 0x1d4], esi
jb 0x40da53
mov edx, dword [esp + 0x1c0]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1d4], ebp
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
cmp dword [esp + 0x20c], esi
jb 0x40da81
mov eax, dword [esp + 0x1f8]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x20c], ebp
mov dword [esp + 0x208], ebx
mov byte [esp + 0x1f8], bl
cmp dword [esp + 0x180], esi
jb 0x40daaf
mov ecx, dword [esp + 0x16c]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x180], ebp
mov dword [esp + 0x17c], ebx
mov byte [esp + 0x16c], bl
cmp dword [esp + 0x19c], esi
jb 0x40dadd
mov edx, dword [esp + 0x188]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x19c], ebp
mov dword [esp + 0x198], ebx
mov byte [esp + 0x188], bl
cmp dword [esp + 0x1f0], esi
jb 0x40db0b
mov eax, dword [esp + 0x1dc]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1f0], ebp
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x1dc], bl
cmp dword [esp + 0x298], esi
jb 0x40e62e
mov ecx, dword [esp + 0x284]
push ecx
jmp 0x40e626
cmp dword [esi + 0x18], 0x10
jb 0x40db42
mov edi, dword [edi]
push edi
lea edx, [esp + 0x38]
push edx
call fcn.004128e0
mov byte [esp + 0x358], 8
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
push 0xa
lea edx, [esp + ecx + 0x38]
push edx
call fcn.00404300
movzx eax, al
push eax
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x288]
call fcn.00413c30
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
add esp, 8
push 0xa
lea ecx, [esp + eax + 0x38]
push ecx
call fcn.00404300
movzx edx, al
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x1e0]
call fcn.00413c30
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 4]
add esp, 8
push 0xa
lea eax, [esp + edx + 0x38]
push eax
call fcn.00404300
movzx ecx, al
push ecx
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x18c]
call fcn.00413c30
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 4]
add esp, 8
push 0xa
lea edx, [esp + ecx + 0x38]
push edx
call fcn.00404300
movzx eax, al
push eax
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x170]
call fcn.00413c30
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
add esp, 8
push 0xa
lea ecx, [esp + eax + 0x38]
push ecx
call fcn.00404300
movzx edx, al
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x1fc]
call fcn.00413c30
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 4]
add esp, 8
push 0xa
lea eax, [esp + edx + 0x38]
push eax
call fcn.00404300
movzx ecx, al
push ecx
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x1c4]
call fcn.00413c30
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 4]
add esp, 8
push 0xa
lea edx, [esp + ecx + 0x38]
push edx
call fcn.00404300
movzx eax, al
push eax
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x1a8]
call fcn.00413c30
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
add esp, 8
push 0xa
lea ecx, [esp + eax + 0x38]
push ecx
call fcn.00404300
movzx edx, al
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x154]
call fcn.00413c30
add esp, 8
lea ecx, [esp + 0xc4]
push ecx
call fcn.00412b90
push 0x5684d0
push ecx
lea edx, [esp + 0x288]
push edx
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x368], 9
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
push 0x5684d0
push ecx
lea ecx, [esp + 0x1e0]
push ecx
lea edx, [esp + 0xd8]
push edx
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
push 0x5684d0
push ecx
lea eax, [esp + 0x18c]
push eax
lea ecx, [esp + 0xd8]
push ecx
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
push 0x5684d0
push ecx
lea edx, [esp + 0x170]
push edx
lea eax, [esp + 0xd8]
push eax
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
push 0x5684d0
push ecx
lea ecx, [esp + 0x1fc]
push ecx
lea edx, [esp + 0xd8]
push edx
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
push 0x5684d0
push ecx
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0xd8]
push ecx
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
push 0x5684d0
push ecx
lea edx, [esp + 0x1a8]
push edx
lea eax, [esp + 0xd8]
push eax
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
lea ecx, [esp + 0x264]
lea eax, [esp + 0xc4]
call fcn.00412cc0
push 0x40
lea ecx, [esp + 0x2c1]
push ebx
mov byte [esp + 0x360], 0xa
push ecx
mov byte [esp + 0x2c8], bl
call fcn.004fc930
mov edi, dword [esp + 0x274]
add esp, 0xc
cmp dword [esp + 0x27c], 0x10
jae 0x40de20
lea edi, [esp + 0x268]
mov ecx, dword [esp + 0x278]
push ebx
lea edx, [esp + 0x2a0]
mov dword [esp + 0x18], 0x41
call fcn.004185b0
lea edx, [esp + 0x2a0]
add esp, 4
push edx
lea edi, [esp + 0x18]
lea eax, [esp + 0x2c0]
call fcn.00418630
add esp, 4
push ebx
push 0x5616e2
lea ecx, [esp + 0x234]
mov esi, eax
mov dword [esp + 0x24c], ebp
mov dword [esp + 0x248], ebx
mov byte [esp + 0x238], bl
call fcn.00403d20
mov byte [esp + 0x358], 0xb
cmp esi, ebx
jne 0x40df4d
lea eax, [esp + 0x2bc]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40deb0
sub eax, edx
push eax
lea eax, [esp + 0x2c0]
push eax
lea ecx, [esp + 0x20]
call fcn.00403d20
push 0x20
xor ecx, ecx
lea esi, [esp + 0x2a0]
lea edx, [esp + 0x1c]
mov byte [esp + 0x35c], 0xc
call fcn.00405e90
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x238]
mov byte [esp + 0x364], 0xd
call fcn.004032e0
mov esi, 0x10
cmp dword [esp + 0x2b4], esi
jb 0x40df1d
mov ecx, dword [esp + 0x2a0]
push ecx
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x358], 0xb
mov dword [esp + 0x2b4], ebp
mov dword [esp + 0x2b0], ebx
mov byte [esp + 0x2a0], bl
cmp dword [esp + 0x30], esi
jb 0x40df4d
mov edx, dword [esp + 0x1c]
push edx
call fcn.004f9a4f
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x250]
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.004032e0
lea esi, [esp + 0x264]
call fcn.0040d000
add esp, 0x1c
push 0x40
lea ecx, [esp + 0x309]
push ebx
mov byte [esp + 0x360], 0xe
push ecx
mov byte [esp + 0x310], bl
call fcn.004fc930
mov edi, dword [esp + 0x258]
add esp, 0xc
cmp dword [esp + 0x260], 0x10
jae 0x40dfb8
lea edi, [esp + 0x24c]
mov ecx, dword [esp + 0x25c]
push ebx
lea edx, [esp + 0x2a0]
mov dword [esp + 0x18], 0x41
call fcn.004185b0
lea edx, [esp + 0x2a0]
add esp, 4
push edx
lea edi, [esp + 0x18]
lea eax, [esp + 0x308]
call fcn.00418630
add esp, 4
push ebx
push 0x5616e2
lea ecx, [esp + 0x218]
mov esi, eax
mov dword [esp + 0x230], ebp
mov dword [esp + 0x22c], ebx
mov byte [esp + 0x21c], bl
call fcn.00403d20
mov byte [esp + 0x358], 0xf
cmp esi, ebx
jne 0x40e0d6
lea eax, [esp + 0x304]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e041
sub eax, edx
push eax
lea eax, [esp + 0x308]
push eax
lea ecx, [esp + 0x20]
call fcn.00403d20
push 0x20
xor ecx, ecx
lea esi, [esp + 0x2a0]
lea edx, [esp + 0x1c]
mov byte [esp + 0x35c], 0x10
call fcn.00405e90
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x21c]
mov byte [esp + 0x364], 0x11
call fcn.004032e0
mov esi, 0x10
cmp dword [esp + 0x2b4], esi
jb 0x40e0ae
mov ecx, dword [esp + 0x2a0]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x2b4], ebp
mov dword [esp + 0x2b0], ebx
mov byte [esp + 0x2a0], bl
cmp dword [esp + 0x30], esi
jb 0x40e0d6
mov edx, dword [esp + 0x1c]
push edx
call fcn.004f9a4f
add esp, 4
mov ecx, dword [esp + 0x150]
mov esi, 0x10
cmp dword [esp + 0x164], esi
jae 0x40e0f2
lea ecx, [esp + 0x150]
mov edi, dword [esp + 0x224]
mov eax, dword [esp + 0x160]
cmp edi, eax
jae 0x40e106
mov eax, edi
mov edx, dword [esp + 0x214]
cmp dword [esp + 0x228], esi
jae 0x40e11d
lea edx, [esp + 0x214]
call fcn.004052a0
cmp eax, ebx
jne 0x40e3c0
cmp edi, dword [esp + 0x160]
jb 0x40e3c0
xor eax, eax
cmp edi, dword [esp + 0x160]
setne al
cmp eax, ebx
jne 0x40e3c0
cmp dword [esp + 0x228], esi
jb 0x40e164
mov eax, dword [esp + 0x214]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x228], ebp
mov dword [esp + 0x224], ebx
mov byte [esp + 0x214], bl
cmp dword [esp + 0x260], esi
jb 0x40e192
mov ecx, dword [esp + 0x24c]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x260], ebp
mov dword [esp + 0x25c], ebx
mov byte [esp + 0x24c], bl
cmp dword [esp + 0x244], esi
jb 0x40e1c0
mov edx, dword [esp + 0x230]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x244], ebp
mov dword [esp + 0x240], ebx
mov byte [esp + 0x230], bl
cmp dword [esp + 0x27c], esi
jb 0x40e1ee
mov eax, dword [esp + 0x268]
push eax
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0x118]
mov dword [esp + 0x27c], ebp
mov dword [esp + 0x278], ebx
mov byte [esp + 0x268], bl
mov byte [esp + 0x358], 8
call fcn.00412c30
lea ecx, [esp + 0x118]
mov edi, vtable.std::ios_base.0
push ecx
mov dword [esp + 0x11c], edi
call fcn.004f856e
add esp, 4
lea ecx, [esp + 0x8c]
mov byte [esp + 0x358], 7
call fcn.00412a00
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x90], edi
call fcn.004f856e
add esp, 4
cmp dword [esp + 0x164], esi
jb 0x40e277
mov eax, dword [esp + 0x150]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x164], ebp
mov dword [esp + 0x160], ebx
mov byte [esp + 0x150], bl
cmp dword [esp + 0x1b8], esi
jb 0x40e2a5
mov ecx, dword [esp + 0x1a4]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1b8], ebp
mov dword [esp + 0x1b4], ebx
mov byte [esp + 0x1a4], bl
cmp dword [esp + 0x1d4], esi
jb 0x40e2d3
mov edx, dword [esp + 0x1c0]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1d4], ebp
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
cmp dword [esp + 0x20c], esi
jb 0x40e301
mov eax, dword [esp + 0x1f8]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x20c], ebp
mov dword [esp + 0x208], ebx
mov byte [esp + 0x1f8], bl
cmp dword [esp + 0x180], esi
jb 0x40e32f
mov ecx, dword [esp + 0x16c]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x180], ebp
mov dword [esp + 0x17c], ebx
mov byte [esp + 0x16c], bl
cmp dword [esp + 0x19c], esi
jb 0x40e35d
mov edx, dword [esp + 0x188]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x19c], ebp
mov dword [esp + 0x198], ebx
mov byte [esp + 0x188], bl
cmp dword [esp + 0x1f0], esi
jb 0x40e38b
mov eax, dword [esp + 0x1dc]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1f0], ebp
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x1dc], bl
cmp dword [esp + 0x298], esi
jb 0x40e3b9
mov ecx, dword [esp + 0x284]
push ecx
call fcn.004f9a4f
add esp, 4
mov al, 1
jmp 0x40e630
cmp dword [esp + 0x228], esi
jb 0x40e3d9
mov edx, dword [esp + 0x214]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x228], ebp
mov dword [esp + 0x224], ebx
mov byte [esp + 0x214], bl
cmp dword [esp + 0x260], esi
jb 0x40e407
mov eax, dword [esp + 0x24c]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x260], ebp
mov dword [esp + 0x25c], ebx
mov byte [esp + 0x24c], bl
cmp dword [esp + 0x244], esi
jb 0x40e435
mov ecx, dword [esp + 0x230]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x244], ebp
mov dword [esp + 0x240], ebx
mov byte [esp + 0x230], bl
cmp dword [esp + 0x27c], esi
jb 0x40e463
mov edx, dword [esp + 0x268]
push edx
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0x118]
mov dword [esp + 0x27c], ebp
mov dword [esp + 0x278], ebx
mov byte [esp + 0x268], bl
mov byte [esp + 0x358], 8
call fcn.00412c30
lea eax, [esp + 0x118]
mov edi, vtable.std::ios_base.0
push eax
mov dword [esp + 0x11c], edi
call fcn.004f856e
add esp, 4
lea ecx, [esp + 0x8c]
mov byte [esp + 0x358], 7
call fcn.00412a00
lea ecx, [esp + 0x8c]
push ecx
mov dword [esp + 0x90], edi
call fcn.004f856e
add esp, 4
cmp dword [esp + 0x164], esi
jb 0x40e4ec
mov edx, dword [esp + 0x150]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x164], ebp
mov dword [esp + 0x160], ebx
mov byte [esp + 0x150], bl
cmp dword [esp + 0x1b8], esi
jb 0x40e51a
mov eax, dword [esp + 0x1a4]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1b8], ebp
mov dword [esp + 0x1b4], ebx
mov byte [esp + 0x1a4], bl
cmp dword [esp + 0x1d4], esi
jb 0x40e548
mov ecx, dword [esp + 0x1c0]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1d4], ebp
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
cmp dword [esp + 0x20c], esi
jb 0x40e576
mov edx, dword [esp + 0x1f8]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x20c], ebp
mov dword [esp + 0x208], ebx
mov byte [esp + 0x1f8], bl
cmp dword [esp + 0x180], esi
jb 0x40e5a4
mov eax, dword [esp + 0x16c]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x180], ebp
mov dword [esp + 0x17c], ebx
mov byte [esp + 0x16c], bl
cmp dword [esp + 0x19c], esi
jb 0x40e5d2
mov ecx, dword [esp + 0x188]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x19c], ebp
mov dword [esp + 0x198], ebx
mov byte [esp + 0x188], bl
cmp dword [esp + 0x1f0], esi
jb 0x40e600
mov edx, dword [esp + 0x1dc]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1f0], ebp
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x1dc], bl
cmp dword [esp + 0x298], esi
jb 0x40e62e
mov eax, dword [esp + 0x284]
push eax
call fcn.004f9a4f
add esp, 4
xor al, al
mov ecx, dword [esp + 0x350]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x338]
xor ecx, esp
call fcn.004f8e7f
add esp, 0x348
ret