Function at 0x410620
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x518065
mov eax, dword fs:[0]
push eax
sub esp, 0x68c
mov eax, dword [0x577690]
xor eax, esp
mov dword [esp + 0x688], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x577690]
xor eax, esp
push eax
lea eax, [esp + 0x6a0]
mov dword fs:[0], eax
lea esi, [esp + 0x280]
call fcn.00401d70
xor ebx, ebx
mov dword [esp + 0x6a8], ebx
mov esi, 0xf
mov dword [esp + 0x1d4], esi
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
mov dword [esp + 0x180], esi
mov dword [esp + 0x17c], ebx
mov byte [esp + 0x16c], bl
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x1dc], bl
mov dword [esp + 0x164], esi
mov dword [esp + 0x160], ebx
mov byte [esp + 0x150], bl
mov dword [esp + 0x19c], esi
mov dword [esp + 0x198], ebx
mov byte [esp + 0x188], bl
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x1b4], ebx
mov byte [esp + 0x1a4], bl
lea eax, [esp + 0xa4]
push eax
mov byte [esp + 0x6ac], 6
call fcn.00412b90
push str..iritech
push ecx
push 0x5618a8
push ecx
lea ecx, [esp + 0x290]
push ecx
lea edx, [esp + 0xc0]
push edx
mov byte [esp + 0x6c0], 7
call fcn.004139b0
add esp, 0xc
push eax
call fcn.00404570
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
lea ecx, [esp + 0x1f4]
lea eax, [esp + 0xa4]
call fcn.00412cc0
push str.serial.txt
push ecx
lea eax, [esp + 0xb4]
push 0x5618a8
push eax
mov byte [esp + 0x6b8], 8
call fcn.00404570
add esp, 0xc
push eax
call fcn.00404570
add esp, 8
lea ecx, [esp + 0x130]
lea eax, [esp + 0xa4]
call fcn.00412cc0
mov byte [esp + 0x6a8], 9
mov eax, dword [esp + 0x134]
mov edi, 0x10
cmp dword [esp + 0x148], edi
jae 0x4107bc
lea eax, [esp + 0x134]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x41098a
cmp dword [esp + 0x148], edi
jb 0x4107e4
mov ecx, dword [esp + 0x134]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x148], esi
mov dword [esp + 0x144], ebx
mov byte [esp + 0x134], bl
cmp dword [esp + 0x20c], edi
jb 0x410812
mov edx, dword [esp + 0x1f8]
push edx
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0xf8]
mov dword [esp + 0x20c], esi
mov dword [esp + 0x208], ebx
mov byte [esp + 0x1f8], bl
mov byte [esp + 0x6a8], 6
call fcn.00412c30
lea eax, [esp + 0xf8]
push eax
mov dword [esp + 0xfc], vtable.std::ios_base.0
call fcn.004f856e
add esp, 4
cmp dword [esp + 0x1b8], edi
jb 0x41086f
mov ecx, dword [esp + 0x1a4]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x1b4], ebx
mov byte [esp + 0x1a4], bl
cmp dword [esp + 0x19c], edi
jb 0x41089d
mov edx, dword [esp + 0x188]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x19c], esi
mov dword [esp + 0x198], ebx
mov byte [esp + 0x188], bl
cmp dword [esp + 0x164], edi
jb 0x4108cb
mov eax, dword [esp + 0x150]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x164], esi
mov dword [esp + 0x160], ebx
mov byte [esp + 0x150], bl
cmp dword [esp + 0x1f0], edi
jb 0x4108f9
mov ecx, dword [esp + 0x1dc]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x1dc], bl
cmp dword [esp + 0x180], edi
jb 0x410927
mov edx, dword [esp + 0x16c]
push edx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x180], esi
mov dword [esp + 0x17c], ebx
mov byte [esp + 0x16c], bl
cmp dword [esp + 0x1d4], edi
jb 0x410955
mov eax, dword [esp + 0x1c0]
push eax
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1d4], esi
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
cmp dword [esp + 0x298], edi
jb 0x410983
mov ecx, dword [esp + 0x284]
push ecx
call fcn.004f9a4f
add esp, 4
xor al, al
jmp 0x41115a
mov eax, dword [esp + 0x134]
cmp dword [esp + 0x148], edi
jae 0x4109a1
lea eax, [esp + 0x134]
push eax
lea edx, [esp + 0x18]
push edx
call fcn.004128e0
mov byte [esp + 0x6a8], 0xa
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
push 0xa
lea edx, [esp + ecx + 0x18]
push edx
call fcn.00404300
movzx eax, al
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x1c4]
call fcn.00413c30
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
add esp, 8
push 0xa
lea ecx, [esp + eax + 0x18]
push ecx
call fcn.00404300
movzx edx, al
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x1e0]
call fcn.00413c30
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
add esp, 8
push 0xa
lea eax, [esp + edx + 0x18]
push eax
call fcn.00404300
movzx ecx, al
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x170]
call fcn.00413c30
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
add esp, 8
push 0xa
lea edx, [esp + ecx + 0x18]
push edx
call fcn.00404300
movzx eax, al
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x154]
call fcn.00413c30
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
add esp, 8
push 0xa
lea ecx, [esp + eax + 0x18]
push ecx
call fcn.00404300
movzx edx, al
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18c]
call fcn.00413c30
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
add esp, 8
push 0xa
lea eax, [esp + edx + 0x18]
push eax
call fcn.00404300
movzx ecx, al
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x1a8]
call fcn.00413c30
mov ebp, dword [esp + 0x13c]
add esp, 8
cmp dword [esp + 0x148], edi
jae 0x410acd
lea ebp, [esp + 0x134]
push 0xff
lea eax, [esp + 0x3a1]
push ebx
push eax
mov byte [esp + 0x3a8], bl
call fcn.004fc930
add esp, 0xc
push 0xff
lea ecx, [esp + 0x2a1]
push ebx
push ecx
mov byte [esp + 0x2a8], bl
call fcn.004fc930
add esp, 0xc
lea edx, [esp + 0x29c]
push edx
lea eax, [esp + 0x3a0]
push eax
push ebp
call fcn.0040cf50
add esp, 0xc
test eax, eax
je 0x410b31
push str.Failed_getting_file_info._n
call fcn.004f9881
add esp, 4
lea ecx, [esp + 0x29c]
push ecx
lea edx, [esp + 0x3a0]
push edx
lea eax, [esp + 0x4a4]
push str._s__s
push eax
call fcn.004fa0f8
lea eax, [esp + 0x4ac]
add esp, 0x10
mov dword [esp + 0x244], esi
mov dword [esp + 0x240], ebx
mov byte [esp + 0x230], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x410b75
sub eax, edx
push eax
lea ecx, [esp + 0x4a0]
push ecx
lea ecx, [esp + 0x234]
call fcn.00403d20
lea edx, [esp + 0x210]
push edx
mov byte [esp + 0x6ac], 0xb
call fcn.0040e660
add esp, 4
lea eax, [esp + 0x264]
push eax
mov byte [esp + 0x6ac], 0xc
call fcn.0040e830
add esp, 4
lea ecx, [esp + 0x248]
push ecx
mov byte [esp + 0x6ac], 0xd
call fcn.0040ec70
add esp, 4
mov byte [esp + 0x6a8], 0xe
mov ecx, dword [esp + 0x150]
cmp dword [esp + 0x164], edi
jae 0x410bfa
lea ecx, [esp + 0x150]
mov ebp, dword [esp + 0x224]
mov eax, dword [esp + 0x160]
cmp ebp, eax
jae 0x410c0e
mov eax, ebp
mov edx, dword [esp + 0x214]
cmp dword [esp + 0x228], edi
jae 0x410c25
lea edx, [esp + 0x214]
call fcn.004052a0
cmp eax, ebx
jne 0x410c4a
mov eax, dword [esp + 0x160]
cmp ebp, eax
jb 0x410c4a
xor edx, edx
cmp ebp, eax
setne dl
mov eax, edx
cmp eax, ebx
je 0x410ee6
cmp dword [esp + 0x260], edi
jb 0x410c63
mov eax, dword [esp + 0x24c]
push eax
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x24c], bl
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x260], esi
cmp dword [esp + 0x27c], edi
jb 0x410c91
mov ecx, dword [esp + 0x268]
push ecx
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x268], bl
mov dword [esp + 0x278], ebx
mov dword [esp + 0x27c], esi
cmp dword [esp + 0x228], edi
jb 0x410cbf
mov edx, dword [esp + 0x214]
push edx
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x214], bl
mov dword [esp + 0x224], ebx
mov dword [esp + 0x228], esi
cmp dword [esp + 0x244], edi
jb 0x410ced
mov eax, dword [esp + 0x230]
push eax
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0x6c]
mov dword [esp + 0x244], esi
mov dword [esp + 0x240], ebx
mov byte [esp + 0x230], bl
mov byte [esp + 0x6a8], 9
call fcn.00412a00
lea ecx, [esp + 0x6c]
mov ebp, vtable.std::ios_base.0
push ecx
mov dword [esp + 0x70], ebp
call fcn.004f856e
add esp, 4
cmp dword [esp + 0x148], edi
jb 0x410d42
mov edx, dword [esp + 0x134]
push edx
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x134], bl
mov dword [esp + 0x144], ebx
mov dword [esp + 0x148], esi
cmp dword [esp + 0x20c], edi
jb 0x410d70
mov eax, dword [esp + 0x1f8]
push eax
call fcn.004f9a4f
add esp, 4
lea ecx, [esp + 0xf8]
mov dword [esp + 0x20c], esi
mov dword [esp + 0x208], ebx
mov byte [esp + 0x1f8], bl
mov byte [esp + 0x6a8], 6
call fcn.00412c30
lea ecx, [esp + 0xf8]
push ecx
mov dword [esp + 0xfc], ebp
call fcn.004f856e
add esp, 4
cmp dword [esp + 0x1b8], edi
jb 0x410dc9
mov edx, dword [esp + 0x1a4]
push edx
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x1a4], bl
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], esi
cmp dword [esp + 0x19c], edi
jb 0x410df7
mov eax, dword [esp + 0x188]
push eax
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x188], bl
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], esi
cmp dword [esp + 0x164], edi
jb 0x410e25
mov ecx, dword [esp + 0x150]
push ecx
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x150], bl
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], esi
cmp dword [esp + 0x1f0], edi
jb 0x410e53
mov edx, dword [esp + 0x1dc]
push edx
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x1dc], bl
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1f0], esi
cmp dword [esp + 0x180], edi
jb 0x410e81
mov eax, dword [esp + 0x16c]
push eax
call fcn.004f9a4f
add esp, 4
mov byte [esp + 0x16c], bl
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], esi
cmp dword [esp + 0x1d4], edi
jb 0x410eaf
mov ecx, dword [esp + 0x1c0]
push ecx
call fcn.004f9a4f
add esp, 4
mov dword [esp + 0x1d4], esi
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
cmp dword [esp + 0x298], edi
jb 0x411158
mov edx, dword [esp + 0x284]
push edx
call fcn.004f9a4f
add esp, 4
jmp 0x411158
lea eax, [esp + 0x184]
lea edx, [esp + 0x264]
call fcn.00405ec0
test eax, eax
jne 0x410c4a
lea eax, [esp + 0x1a0]
lea edx, [esp + 0x248]
call fcn.00405ec0
test eax, eax
je 0x410fbb
lea ecx, [esp + 0x248]
call fcn.00402180
lea ecx, [esp + 0x264]
call fcn.00402180
lea ecx, [esp + 0x210]
call fcn.00402180
lea ecx, [esp + 0x22c]
call fcn.00402180
lea ecx, [esp + 0x6c]
mov byte [esp + 0x6a8], 9
call fcn.00412a00
lea eax, [esp + 0x6c]
mov ebp, vtable.std::ios_base.0
push eax
mov dword [esp + 0x70], ebp
call fcn.004f856e
add esp, 4
lea ecx, [esp + 0x130]
call fcn.00402180
lea ecx, [esp + 0x1f4]
call fcn.00402180
lea ecx, [esp + 0xf8]
mov byte [esp + 0x6a8], 6
call fcn.00412c30
lea ecx, [esp + 0xf8]
push ecx
mov dword [esp + 0xfc], ebp
call fcn.004f856e
add esp, 4
jmp 0x411104
lea eax, [esp + 0x168]
lea edx, [esp + 0x22c]
call fcn.00405ec0
lea ecx, [esp + 0x248]
test eax, eax
jne 0x41109e
call fcn.00402180
lea ecx, [esp + 0x264]
call fcn.00402180
lea ecx, [esp + 0x210]
call fcn.00402180
lea ecx, [esp + 0x22c]
call fcn.00402180
lea eax, [esp + 0x14]
mov byte [esp + 0x6a8], 9
call fcn.0040ba20
lea ecx, [esp + 0x130]
call fcn.00402180
lea ecx, [esp + 0x1f4]
call fcn.00402180
lea eax, [esp + 0xa4]
mov byte [esp + 0x6a8], 6
call fcn.0040d8a0
lea ecx, [esp + 0x1a0]
call fcn.00402180
lea ecx, [esp + 0x184]
call fcn.00402180
lea ecx, [esp + 0x14c]
call fcn.00402180
lea ecx, [esp + 0x1d8]
call fcn.00402180
lea ecx, [esp + 0x168]
call fcn.00402180
lea ecx, [esp + 0x1bc]
call fcn.00402180
lea ecx, [esp + 0x280]
call fcn.00402180
xor al, al
jmp 0x41115a
call fcn.00402180
lea ecx, [esp + 0x264]
call fcn.00402180
lea ecx, [esp + 0x210]
call fcn.00402180
lea ecx, [esp + 0x22c]
call fcn.00402180
lea eax, [esp + 0x14]
mov byte [esp + 0x6a8], 9
call fcn.0040ba20
lea ecx, [esp + 0x130]
call fcn.00402180
lea ecx, [esp + 0x1f4]
call fcn.00402180
lea eax, [esp + 0xa4]
mov byte [esp + 0x6a8], 6
call fcn.0040d8a0
lea ecx, [esp + 0x1a0]
call fcn.00402180
lea ecx, [esp + 0x184]
call fcn.00402180
lea ecx, [esp + 0x14c]
call fcn.00402180
lea ecx, [esp + 0x1d8]
call fcn.00402180
lea ecx, [esp + 0x168]
call fcn.00402180
lea ecx, [esp + 0x1bc]
call fcn.00402180
lea ecx, [esp + 0x280]
call fcn.00402180
mov al, 1
mov ecx, dword [esp + 0x6a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x688]
xor ecx, esp
call fcn.004f8e7f
add esp, 0x698
ret