Function at 0x4740c0
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0x10
push ebx
push esi
push 0x104
mov ebx, 0x7f
call fcn.004871ea
mov esi, eax
add esp, 4
test esi, esi
je 0x4743fb
mov eax, dword [str.syssave.dat]
push edi
push eax
push 0x4c2280
push 0x4a0be0
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
push esi
call fcn.00435e50
mov edi, eax
push esi
mov dword [esp + 0x30], edi
call fcn.0048726d
add esp, 0x18
test edi, edi
je 0x4742fe
push ebp
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
push esi
call fcn.004871ea
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x14], ebp
je 0x4742f6
push 0
lea ecx, [esp + 0x14]
push ecx
push esi
push ebp
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4742ed
push esi
call fcn.004871ea
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x18], ebp
je 0x4742e9
mov edx, dword [esp + 0x14]
push esi
push ebp
push edx
call fcn.0042c2e0
add esp, 0xc
test eax, eax
je 0x4742d8
mov edi, dword [ebp + 0x10]
sub edi, 0x40
lea esi, [ebp + 0x40]
je 0x4742d8
mov edi, edi
mov eax, dword [esi]
cmp eax, 0x40004
ja 0x474250
je 0x47422c
cmp eax, 0x10004
je 0x474204
cmp eax, 0x20004
je 0x4741e0
cmp eax, 0x30004
jne 0x474265
mov ebp, dword [esi + 4]
cmp edi, ebp
mov dword [esp + 0x10], ebp
jb 0x4742d8
push esi
call fcn.004724e0
add esp, 4
add esi, ebp
sub edi, ebp
and ebx, 0xfffffffb
jmp 0x4742d0
mov ebp, dword [esi + 4]
cmp edi, ebp
mov dword [esp + 0x10], ebp
jb 0x4742d8
push esi
call fcn.00472450
add esp, 4
add esi, ebp
sub edi, ebp
and ebx, 0xfffffffd
jmp 0x4742d0
mov eax, dword [esi + 4]
cmp edi, eax
mov dword [esp + 0x10], eax
jb 0x4742d8
push esi
call fcn.004740a0
mov eax, dword [esp + 0x14]
add esp, 4
add esi, eax
sub edi, eax
and ebx, 0xfffffffe
jmp 0x4742d0
mov ebp, dword [esi + 4]
cmp edi, ebp
mov dword [esp + 0x10], ebp
jb 0x4742d8
push esi
call fcn.00472570
add esp, 4
add esi, ebp
sub edi, ebp
and ebx, 0xfffffff7
jmp 0x4742d0
cmp eax, 0x50004
je 0x4742b5
cmp eax, 0x60004
je 0x474294
cmp eax, 0x70004
je 0x474277
movzx eax, al
mov dword [esp + 0x10], eax
mov eax, dword [esi + eax]
mov dword [esp + 0x10], eax
add esi, eax
jmp 0x4742d0
mov ebp, dword [esi + 4]
cmp edi, ebp
mov dword [esp + 0x10], ebp
jb 0x4742d8
push esi
call fcn.004726e0
add esp, 4
add esi, ebp
sub edi, ebp
and ebx, 0xffffffbf
jmp 0x4742d0
mov eax, dword [esi + 4]
cmp edi, eax
mov dword [esp + 0x10], eax
jb 0x4742d8
push esi
call fcn.004728a0
mov eax, dword [esp + 0x14]
add esp, 4
add esi, eax
sub edi, eax
and ebx, 0xffffffdf
jmp 0x4742d0
mov ebp, dword [esi + 4]
cmp edi, ebp
mov dword [esp + 0x10], ebp
jb 0x4742d8
push esi
call fcn.00472600
add esp, 4
add esi, ebp
sub edi, ebp
and ebx, 0xffffffef
test edi, edi
jne 0x474190
mov eax, dword [esp + 0x18]
push eax
call fcn.0048726d
mov edi, dword [esp + 0x20]
add esp, 4
mov ebp, dword [esp + 0x14]
push ebp
call fcn.0048726d
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ebp
test bl, 1
je 0x47430d
push 0
call fcn.004740a0
add esp, 4
test bl, 2
je 0x47431c
push 0
call fcn.00472450
add esp, 4
test bl, 4
je 0x47432b
push 0
call fcn.004724e0
add esp, 4
test bl, 8
je 0x47433a
push 0
call fcn.00472570
add esp, 4
test bl, 0x10
je 0x474344
call fcn.00471060
test bl, 0x40
je 0x474353
push 0
call fcn.004726e0
add esp, 4
test bl, 0x20
je 0x47435d
call fcn.00472770
push 0x104
call fcn.004871ea
mov esi, eax
xor ebx, ebx
add esp, 4
cmp esi, ebx
je 0x4743fa
mov ecx, dword [0x4ba628]
push ecx
push 0x4c2280
push 0x4a0be0
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push ebx
push 0x80
push 3
push ebx
push 1
push DirectSoundCreate
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push esi
mov edi, eax
call fcn.0048726d
add esp, 4
cmp edi, 0xffffffff
jne 0x4743ce
pop edi
mov dword [0x4c2398], ebx
or dword [0x4c2398], 0x40
pop esi
xor eax, eax
pop ebx
add esp, 0x10
ret
push ebx
lea edx, [esp + 0x10]
push edx
push 4
push 0x4c2398
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4743ec
mov dword [0x4c2398], ebx
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [0x4c2398], 0x40
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x10
ret