Function at 0x473ac0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa58
push ebx
push esi
push edi
mov ebx, 1
mov dword [ebp - 8], 0
xor eax, eax
lea ebx, [ebx]
mov cl, byte [eax + 0x1545ea0]
mov byte [ebp + eax - 0x54c], cl
inc eax
test cl, cl
jne 0x473ae0
push 3
push 0
push str.GAMESAVE.DAT
lea edi, [ebp - 0xa58]
call fcn.00472860
add esp, 0xc
test eax, eax
je 0x473c36
push dword [0x1545e98]
mov edi, dword [ebp - 0xa58]
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea eax, [ebp - 4]
push eax
push 0x1ac8
push 0x14ca8d8
push edi
call esi
mov ecx, dword [0x4d21a0]
shl ecx, 1
push ecx
push 0
lea ecx, [ebp - 4]
push ecx
push 0x14
lea edx, [ebp - 0x1c]
push edx
push edi
call esi
push dword [0x4d219c]
push 0
push edi
call dword [section..xqrf]
mov esi, eax
sub esi, 0x1adc
neg esi
sbb esi, esi
inc esi
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 8
test esi, esi
je 0x473b88
cmp byte [0x14cc399], 7
je 0x473c3b
mov dx, word [0x14c7700]
cmp dx, 0x1d9
mov ecx, dword [0x14d1bc8]
mov eax, str.UNDEFINED
jbe 0x473ba7
mov eax, dword [ecx + 0x764]
cmp dx, 0x1d8
ja 0x473bb5
mov ecx, str.UNDEFINED
jmp 0x473bbb
mov ecx, dword [ecx + 0x760]
push 0
call fcn.004749f0
add esp, 4
push 0
push 0
or eax, 0xffffffff
call fcn.004772f0
mov al, byte [0x1545fe0]
add esp, 8
test al, 0x60
je 0x473bc5
call fcn.00473560
mov eax, dword [0x1545fe0]
test al, 0x20
jne 0x473c2a
test ah, 1
jne 0x473c2a
cmp word [0x14c7700], 0x1ca
mov dword [0x14c75e0], 0
ja 0x473c0c
mov ecx, str.UNDEFINED
jmp 0x473c17
mov eax, dword [0x14d1bc8]
mov ecx, dword [eax + 0x728]
push 0
xor eax, eax
call fcn.004749f0
add esp, 4
call fcn.00473160
jmp 0x473c3b
mov dword [0x14c75e0], 1
jmp 0x473c3b
call fcn.00473560
xor eax, eax
mov ecx, 0x2d0
mov edi, 0x14ca8d8
rep stosd dword es:[edi], eax
push 0x4c12b0
lea eax, [ebp - 0x44c]
call fcn.00476540
add esp, 4
cmp eax, 0xffffffff
mov dword [ebp - 4], eax
je 0x474027
test ebx, ebx
je 0x47401d
lea esi, [ebp - 0x30c]
lea eax, [ebp - 0x54c]
lea esp, [esp]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x473ca8
test cl, cl
je 0x473ca4
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x473ca8
add eax, 2
add esi, 2
test cl, cl
jne 0x473c80
xor eax, eax
jmp 0x473cad
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x474004
xor eax, eax
jmp 0x473cc0
mov cl, byte [ebp + eax - 0x30c]
mov byte [eax + 0x1545ea0], cl
inc eax
test cl, cl
jne 0x473cc0
push 3
push 0
push str.SAVEDGAME.DAT
lea edi, [ebp - 0xa58]
call fcn.00472860
mov esi, dword [ebp - 0xa58]
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
add esp, 0xc
push 0
lea eax, [ebp - 0x68]
push eax
push 0x120
lea ecx, [ebp - 0x188]
push ecx
push esi
call edi
push 0
lea edx, [ebp - 0x64]
push edx
push 0x14
lea eax, [ebp - 0x1c]
push eax
push esi
call edi
push 0
push esi
call dword [section..xqrf]
mov edi, eax
sub edi, 0x134
neg edi
sbb edi, edi
push esi
inc edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
mov dword [ebp - 0x6c], 0
jne 0x473df4
mov cx, word [0x14c7700]
cmp cx, 0x1d6
mov edx, dword [0x14d1bc8]
mov dword [ebp - 0x6c], 1
mov eax, str.UNDEFINED
jbe 0x473d6b
mov eax, dword [edx + 0x758]
cmp cx, 0x1d4
mov ecx, str.UNDEFINED
jbe 0x473d7d
mov ecx, dword [edx + 0x750]
push 0
call fcn.004749f0
add esp, 4
push 0
push 0
or eax, 0xffffffff
call fcn.004772f0
mov eax, dword [0x1545fe0]
add esp, 8
test al, 0x60
jne 0x473da4
test ah, 8
je 0x473d87
test al, 0x20
jne 0x474004
test ah, 1
jne 0x474004
cmp word [0x14c7700], 0x1ca
ja 0x473dc7
mov ecx, str.UNDEFINED
jmp 0x473dd3
mov ecx, dword [0x14d1bc8]
mov ecx, dword [ecx + 0x728]
push 0
xor eax, eax
call fcn.004749f0
push 0x4c12b0
lea ebx, [ebp - 0x208]
call fcn.00476790
add esp, 8
jmp 0x474004
xor eax, eax
jmp 0x473e00
mov cl, byte [ebp + eax - 0x30c]
mov byte [ebp + eax - 0x170], cl
inc eax
test cl, cl
jne 0x473e00
movsx edi, byte [ebp - 0x208]
mov eax, dword [ebp - 0x70]
sub edi, 0x30
test eax, eax
mov al, byte [ebp - 0x207]
je 0x473f10
cmp al, 0x2d
jne 0x473ffd
test edi, edi
jl 0x473ffd
cmp edi, 5
jge 0x473ffd
lea edx, [ebp - 0x206]
push edx
lea eax, [ebp - 0x60]
push 0x4c23e0
push eax
call fcn.0049abb1
lea eax, [ebp - 0x60]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x473e65
sub eax, edx
mov byte [ebp + eax - 0x67], cl
xor eax, eax
mov cl, byte [ebp + eax - 0x60]
mov byte [ebp + eax - 0x180], cl
inc eax
test cl, cl
jne 0x473e74
lea eax, [ebp - 0x180]
xor esi, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x473e90
sub eax, edx
mov dword [ebp - 0x20], eax
je 0x473ef2
mov edi, edi
mov al, byte [ebp + esi - 0x180]
cmp al, 0x20
je 0x473eb7
movsx ecx, al
cmp byte [ecx + 0x15184b4], 0x7a
ja 0x473ed3
cmp al, 0xa5
je 0x473ed3
cmp al, 0xa3
je 0x473ed3
cmp al, 0xfd
je 0x473ed3
cmp al, 0xff
je 0x473ed3
cmp al, 0xc6
je 0x473ed3
cmp al, 0xe6
je 0x473ed3
cmp al, 0xdd
jne 0x473edb
mov byte [ebp + esi - 0x180], 0x2b
lea eax, [ebp - 0x180]
inc esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x473ee5
sub eax, edx
cmp esi, eax
jb 0x473ea0
lea edi, [edi + edi*8]
shl edi, 5
add edi, 0x14cae78
lea esi, [ebp - 0x188]
mov ecx, 0x48
rep movsd dword es:[edi], dword [esi]
jmp 0x474004
cmp al, 0x2d
jne 0x473ffd
test edi, edi
jl 0x473ffd
cmp edi, 5
jge 0x473ffd
lea edx, [ebp - 0x206]
push edx
lea eax, [ebp - 0x60]
push 0x4c23e0
push eax
call fcn.0049abb1
lea eax, [ebp - 0x60]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x473f47
sub eax, edx
mov byte [ebp + eax - 0x6c], cl
xor eax, eax
jmp 0x473f60
mov cl, byte [ebp + eax - 0x60]
mov byte [ebp + eax - 0x180], cl
inc eax
test cl, cl
jne 0x473f60
lea eax, [ebp - 0x180]
xor esi, esi
lea edx, [eax + 1]
jmp 0x473f80
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x473f80
sub eax, edx
mov dword [ebp - 0x20], eax
je 0x473fe2
mov edi, edi
mov al, byte [ebp + esi - 0x180]
cmp al, 0x20
je 0x473fa7
movsx ecx, al
cmp byte [ecx + 0x15184b4], 0x7a
ja 0x473fc3
cmp al, 0xa5
je 0x473fc3
cmp al, 0xa3
je 0x473fc3
cmp al, 0xfd
je 0x473fc3
cmp al, 0xff
je 0x473fc3
cmp al, 0xc6
je 0x473fc3
cmp al, 0xe6
je 0x473fc3
cmp al, 0xdd
jne 0x473fcb
mov byte [ebp + esi - 0x180], 0x20
lea eax, [ebp - 0x180]
inc esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x473fd5
sub eax, edx
cmp esi, eax
jb 0x473f90
lea edi, [edi + edi*8]
shl edi, 5
add edi, 0x14ca8d8
lea esi, [ebp - 0x188]
mov ecx, 0x48
rep movsd dword es:[edi], dword [esi]
jmp 0x474004
mov dword [ebp - 8], 1
mov edx, dword [ebp - 4]
push edx
lea eax, [ebp - 0x44c]
call fcn.00476610
add esp, 4
mov ebx, eax
jmp 0x473c68
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
lea esp, [esp]
mov cl, byte [ebp + eax - 0x54c]
mov byte [eax + 0x1545ea0], cl
inc eax
test cl, cl
jne 0x474030
mov eax, dword [ebp - 8]
test eax, eax
je 0x4740a3
mov dx, word [0x14c7700]
cmp dx, 0x177
mov ecx, dword [0x14d1bc8]
mov eax, str.UNDEFINED
jbe 0x474068
mov eax, dword [ecx + 0x5dc]
cmp dx, 0x1ce
ja 0x474076
mov ecx, str.UNDEFINED
jmp 0x47407c
mov ecx, dword [ecx + 0x738]
push 0
call fcn.004749f0
add esp, 4
push 0
push 0
or eax, 0xffffffff
call fcn.004772f0
mov eax, dword [0x1545fe0]
add esp, 8
test al, 0x40
jne 0x4740a3
test ah, 8
je 0x474086
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret