Function at 0x4752b0
Capabilities:
Check if file exists
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4f3dd9
mov eax, dword fs:[0]
push eax
sub esp, 0x68c
mov eax, dword [0x52b360]
xor eax, esp
mov dword [esp + 0x688], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x52b360]
xor eax, esp
push eax
lea eax, [esp + 0x6a0]
mov dword fs:[0], eax
lea esi, [esp + 0x1dc]
call fcn.00474210
xor ebx, ebx
mov dword [esp + 0x6a8], ebx
mov eax, dword [esp + 0x1e0]
mov ebp, 8
cmp dword [esp + 0x1f4], ebp
jae 0x47531c
lea eax, [esp + 0x1e0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x475341
cmp dword [esp + 0x1f4], ebp
jb 0x475ac8
mov eax, dword [esp + 0x1e0]
push eax
jmp 0x475ac0
lea ecx, [esp + 0xac]
push ecx
call fcn.004647b0
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x6ac], 1
call fcn.004647b0
mov byte [esp + 0x6a8], 2
mov eax, dword [0x532c30]
cmp eax, ebx
je 0x47538c
lea ecx, [esp + 0x284]
push ecx
call eax
cmp eax, ebx
je 0x47538c
cmp dword [esp + 0x289], ebx
jne 0x4755b8
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ebx
call fcn.00470770
test al, al
je 0x4755b8
mov dword [esp + 0x154], 0xf
mov dword [esp + 0x150], ebx
mov byte [esp + 0x140], bl
mov byte [esp + 0x6a8], 3
mov eax, dword [esp + 0x14]
add eax, 0x20
lea ecx, [esp + 0x188]
call fcn.004706c0
mov byte [esp + 0x6a8], 4
cmp dword [eax + 0x18], ebp
jb 0x4753e7
mov eax, dword [eax + 4]
jmp 0x4753ea
add eax, 4
lea edx, [esp + 0x13c]
push edx
push eax
call fcn.004854e0
add esp, 8
mov byte [esp + 0x6a8], 3
cmp dword [esp + 0x1a0], ebp
jb 0x47541c
mov eax, dword [esp + 0x18c]
push eax
call fcn.004c8f17
add esp, 4
lea esi, [esp + 0x214]
call fcn.004836b0
mov byte [esp + 0x6a8], 5
mov edx, dword [esp + 0x154]
mov eax, dword [esp + 0x140]
mov ecx, eax
cmp edx, 0x10
jae 0x47544e
lea ecx, [esp + 0x140]
mov eax, ecx
mov edx, dword [esp + 0x150]
mov dword [esp + 0x250], eax
mov dword [esp + 0x258], eax
add edx, ecx
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x218]
mov dword [esp + 0x258], edx
mov byte [esp + 0x284], 1
mov dword [esp + 0x260], ebx
mov dword [esp + 0x264], ebx
call fcn.00483760
mov eax, dword [0x532e08]
cmp eax, ebx
je 0x4754a6
mov ecx, dword [esp + 0x14]
push ecx
call eax
mov eax, 1
mov dword [esp + 0x160], ebx
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], ebx
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], ebx
mov byte [esp + 0x6a8], 6
mov ecx, 0x4feab8
lea edi, [esp + 0x178]
mov dword [esp + 0x158], 0x5f5e100
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
call fcn.004705a0
mov eax, dword [0x532dfc]
cmp eax, ebx
je 0x475533
lea edx, [esp + 0x158]
push edx
call eax
cmp al, bl
jne 0x475546
mov eax, dword [0x532e00]
cmp eax, ebx
je 0x475546
lea ecx, [esp + 0x158]
push ecx
call eax
mov eax, dword [esp + 0x184]
cmp eax, ebx
je 0x47555a
push eax
call fcn.004ca215
add esp, 4
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], ebx
cmp eax, ebx
je 0x47557c
push eax
call fcn.004ca215
add esp, 4
lea eax, [esp + 0x214]
mov dword [esp + 0x178], ebx
mov dword [esp + 0x17c], ebx
call fcn.00483700
mov byte [esp + 0x6a8], 2
cmp dword [esp + 0x154], 0x10
jb 0x4755b8
mov edx, dword [esp + 0x140]
push edx
call fcn.004c8f17
add esp, 4
lea esi, [esp + 0x1c0]
call fcn.004741f0
mov dword [esp + 0x1bc], 0xf
mov dword [esp + 0x1b8], ebx
mov byte [esp + 0x1a8], bl
mov byte [esp + 0x6a8], 8
mov eax, dword [esp + 0x1c4]
cmp dword [esp + 0x1d8], ebp
jae 0x4755fc
lea eax, [esp + 0x1c4]
push 0x5092e4
push eax
call fcn.004c97af
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x47595d
push 2
push ebx
push esi
call fcn.004cbfa2
add esp, 0xc
push esi
call fcn.004cbeaa
mov ecx, eax
imul ecx, ecx, 0x6e
mov eax, 0x51eb851f
imul ecx
add esp, 4
sar edx, 5
push ebx
mov eax, edx
shr eax, 0x1f
push ebx
push esi
lea edi, [edx + eax + 0xa]
call fcn.004cbfa2
lea ecx, [edi + 0x64]
add esp, 0xc
push ecx
call fcn.004c85fa
mov ebp, eax
add esp, 4
cmp ebp, ebx
je 0x47594f
push edi
push ebx
push ebp
call fcn.004d1df0
add esp, 0xc
push esi
push edi
push 1
push ebp
call fcn.004c9ab9
push esi
call fcn.004c9c66
add esp, 0x14
lea esi, [esp + 0x214]
call fcn.004836b0
lea edx, [esp + 0x13c]
push edx
mov byte [esp + 0x6ac], 9
call fcn.00470d40
mov byte [esp + 0x6a8], 0xa
lea ecx, [esp + 0x13c]
lea eax, [edi + ebp + 0x64]
push ecx
mov ecx, esi
mov dword [esp + 0x254], ebp
mov dword [esp + 0x258], eax
mov byte [esp + 0x284], 1
mov dword [esp + 0x25c], ebp
mov dword [esp + 0x260], ebx
mov dword [esp + 0x264], ebx
call fcn.00483760
push str.history
lea ecx, [esp + 0x18c]
call fcn.00404a80
push 0x509cc4
lea ecx, [esp + 0x15c]
mov byte [esp + 0x6ac], 0xb
call fcn.00404a80
lea edx, [esp + 0x188]
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x6ac], 0xc
call fcn.00464890
mov edi, eax
push 0x103
lea eax, [esp + 0x599]
push ebx
push eax
mov dword [esp + 0x20], edi
mov byte [esp + 0x5a0], bl
call fcn.004d1df0
mov eax, dword [esp + 0x15c]
sub eax, dword [esp + 0x158]
add esp, 0xc
sar eax, 2
xor esi, esi
cmp eax, ebx
jle 0x4758b6
jmp 0x475774
mov edi, dword [esp + 0x14]
cmp esi, eax
jb 0x47577d
call fcn.004c96d9
mov ecx, dword [esp + 0x14c]
mov eax, dword [ecx + esi*4]
cmp dword [eax + 0x18], ebx
je 0x47589c
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
mov edx, dword [eax]
mov edx, dword [edx + 4]
lea ecx, [esp + 0x158]
push ecx
mov ecx, eax
call edx
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x150]
mov edx, eax
sub edx, ecx
sar edx, 2
cmp esi, edx
jb 0x4757da
call fcn.004c96d9
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x14c]
sub eax, ecx
sar eax, 2
lea edi, [ecx + esi*4]
cmp esi, eax
jb 0x4757f2
call fcn.004c96d9
mov ecx, dword [esp + 0x14c]
mov eax, dword [edi]
mov edx, dword [eax + 0x64]
mov eax, dword [eax + 0x60]
mov ecx, dword [ecx + esi*4]
push ebx
push edx
mov edx, dword [ecx + 8]
push eax
push edx
push str._X__I64X__I64X
lea eax, [esp + 0x5a8]
push 0x104
push eax
call fcn.004cb44c
lea eax, [esp + 0x5b0]
add esp, 0x1c
mov dword [esp + 0x210], 0xf
mov dword [esp + 0x20c], ebx
mov byte [esp + 0x1fc], bl
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x475841
sub eax, edi
push eax
lea ecx, [esp + 0x598]
push ecx
lea ecx, [esp + 0x200]
call fcn.00404980
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x6a8], 0xd
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
lea eax, [esp + 0x1f8]
push eax
call edx
mov byte [esp + 0x6a8], 0xc
cmp dword [esp + 0x210], 0x10
jb 0x47589c
mov eax, dword [esp + 0x1fc]
push eax
call fcn.004c8f17
add esp, 4
mov eax, dword [esp + 0x150]
sub eax, dword [esp + 0x14c]
inc esi
sar eax, 2
cmp eax, esi
jg 0x475770
push ebp
call fcn.004ca215
mov edi, 0x10
add esp, 4
cmp dword [esp + 0x170], edi
jb 0x4758dd
mov ecx, dword [esp + 0x15c]
push ecx
call fcn.004c8f17
add esp, 4
mov esi, 0xf
mov dword [esp + 0x170], esi
mov dword [esp + 0x16c], ebx
mov byte [esp + 0x15c], bl
cmp dword [esp + 0x1a0], edi
jb 0x475910
mov edx, dword [esp + 0x18c]
push edx
call fcn.004c8f17
add esp, 4
lea ecx, [esp + 0x13c]
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x19c], ebx
mov byte [esp + 0x18c], bl
mov byte [esp + 0x6a8], 9
call fcn.00470da0
lea eax, [esp + 0x214]
mov byte [esp + 0x6a8], 8
call fcn.00483700
jmp 0x475958
push esi
call fcn.004c9c66
add esp, 4
mov ebp, 8
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.00470460
test byte [0x5341c8], 1
jne 0x47599c
or dword [0x5341c8], 1
push 0x4f9cf0
mov dword [0x534104], 0x509d74
mov dword [0x534108], ebx
call fcn.004c9e97
add esp, 4
lea edx, [esp + 0x188]
push edx
lea ecx, [esp + 0x20]
call fcn.00464d20
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x6b4], 0xe
call fcn.00404e00
mov esi, 0x10
mov byte [esp + 0x6a8], 8
cmp dword [esp + 0x1a0], esi
jb 0x4759eb
mov eax, dword [esp + 0x18c]
push eax
call fcn.004c8f17
add esp, 4
cmp dword [esp + 0x1b8], ebx
je 0x475a22
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x1c8]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push edx
mov byte [ecx + 4], bl
call fcn.00404e00
call fcn.00475cc0
add esp, 0x1c
cmp dword [esp + 0x1bc], esi
jb 0x475a3b
mov eax, dword [esp + 0x1a8]
push eax
call fcn.004c8f17
add esp, 4
mov dword [esp + 0x1bc], 0xf
mov dword [esp + 0x1b8], ebx
mov byte [esp + 0x1a8], bl
cmp dword [esp + 0x1d8], ebp
jb 0x475a6d
mov ecx, dword [esp + 0x1c4]
push ecx
call fcn.004c8f17
add esp, 4
lea eax, [esp + 0x1c]
xor edx, edx
push eax
mov dword [esp + 0x1dc], 7
mov dword [esp + 0x1d8], ebx
mov word [esp + 0x1c8], dx
mov byte [esp + 0x6ac], 1
call fcn.00464820
lea ecx, [esp + 0xac]
push ecx
mov byte [esp + 0x6ac], bl
call fcn.00464820
cmp dword [esp + 0x1f4], ebp
jb 0x475ac8
mov edx, dword [esp + 0x1e0]
push edx
call fcn.004c8f17
add esp, 4
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.004c8f08
add esp, 0x698
ret