Function at 0x47f310
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x38
push esi
push edi
mov edi, edx
mov esi, ecx
mov dword [esp + 0x2c], edi
cmp edi, 0xc
jae 0x47f338
push str.Error_loading_sample:_The_sample_is_not_supported_or_is_invalid_
call dword [0x54e480]
add esp, 4
xor al, al
pop edi
pop esi
add esp, 0x38
ret
push ebx
push ebp
push 0
push 8
push esi
call fcn.00489d25
push esi
push 4
lea eax, [esp + 0x54]
push 1
push eax
call fcn.0048a465
push 4
lea eax, [esp + 0x60]
mov byte [esp + 0x64], 0
push str.16SV
push eax
call fcn.0048f010
test eax, eax
sete byte [esp + 0x48]
xor ebx, ebx
xor eax, eax
xor ebp, ebp
push ebx
push 0xc
push esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
call fcn.00489d25
push esi
call fcn.0048feb4
add esp, 0x38
test eax, eax
je 0x47f3b8
push str.Error_loading_sample:_The_sample_is_not_supported_or_is_invalid_
call dword [0x54e480]
add esp, 4
xor al, al
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x38
ret
mov edi, dword [esp + 0x34]
push esi
call fcn.00489a43
lea ecx, [edi - 0xc]
add esp, 4
cmp eax, ecx
jae 0x47f4e1
push esi
push 1
lea eax, [esp + 0x34]
push 4
push eax
call fcn.0048a465
push esi
call fcn.0048feb4
add esp, 0x14
test eax, eax
jne 0x47f4e1
push esi
push 1
lea eax, [esp + 0x1c]
push 4
push eax
call fcn.0048a465
push esi
call fcn.0048feb4
add esp, 0x14
test eax, eax
jne 0x47f4e1
mov ecx, dword [esp + 0x2c]
mov edi, ecx
mov eax, ecx
and edi, 0xff0000
shr eax, 0x10
or edi, eax
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shr edi, 8
mov ecx, dword [esp + 0x14]
mov edx, ecx
shl eax, 8
and edx, 0xff0000
or edi, eax
mov eax, ecx
shr eax, 0x10
or edx, eax
mov dword [esp + 0x2c], edi
mov eax, ecx
shr edx, 8
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shl eax, 8
or edx, eax
mov dword [esp + 0x14], edx
cmp edi, 0x424f4459
je 0x47f4a3
cmp edi, 0x4e414d45
je 0x47f491
cmp edi, 0x56484452
jne 0x47f4ba
push esi
call fcn.00489a43
mov ebp, dword [esp + 0x18]
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
mov edx, ebp
jmp 0x47f4be
push esi
call fcn.00489a43
mov ebx, dword [esp + 0x18]
mov edx, ebx
mov dword [esp + 0x40], eax
jmp 0x47f4b7
push esi
call fcn.00489a43
mov edi, dword [esp + 0x18]
mov edx, edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], edi
add esp, 4
mov edi, dword [esp + 0x10]
mov ecx, edx
and ecx, 1
push 1
add ecx, edx
push ecx
push esi
call fcn.00489d25
push esi
call fcn.0048feb4
add esp, 0x10
test eax, eax
je 0x47f3b4
jmp 0x47f4e5
mov edi, dword [esp + 0x10]
test edi, edi
je 0x47f39c
cmp ebp, 0x14
jb 0x47f39c
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x47f39c
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
sub edi, ebp
test eax, eax
mov ecx, edi
push 0
cmovne ecx, eax
lea eax, [ecx + ebp]
cmp eax, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
push eax
push esi
cmovbe edi, ecx
call fcn.00489d25
push esi
push 1
lea eax, [esp + 0x2c]
push 4
push eax
call fcn.0048a465
mov ecx, dword [esp + 0x34]
mov edx, ecx
mov eax, ecx
and edx, 0xff0000
shr eax, 0x10
or edx, eax
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shr edx, 8
push esi
shl eax, 8
or edx, eax
lea eax, [esp + 0x3c]
push 1
push 4
push eax
mov dword [esp + 0x44], edx
call fcn.0048a465
mov ecx, dword [esp + 0x48]
mov edx, ecx
mov eax, ecx
and edx, 0xff0000
shr eax, 0x10
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
push 1
shl eax, 8
or edx, eax
push 4
push esi
mov dword [esp + 0x54], edx
call fcn.00489d25
push esi
push 1
lea eax, [esp + 0x68]
push 2
push eax
call fcn.0048a465
movzx ecx, word [esp + 0x70]
add esp, 0x48
movzx eax, cl
shl eax, 8
shr ecx, 8
push 1
or eax, ecx
push 1
push esi
mov dword [esp + 0x34], eax
call fcn.00489d25
push esi
call fcn.00490245
add esp, 0x10
test eax, eax
je 0x47f5fe
push str.Error_loading_sample:_The_sample_is_not_supported_
call dword [0x54e480]
add esp, 4
xor al, al
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x38
ret
push esi
push 1
lea eax, [esp + 0x2c]
push 4
push eax
call fcn.0048a465
mov ecx, dword [esp + 0x34]
add esp, 0x10
mov edx, ecx
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
shl eax, 8
or edx, eax
mov eax, 0xffff
cmp edx, eax
cmova edx, eax
lea eax, [edx + 0x200]
shr eax, 0xa
cmp byte [esp + 0x20], 0
mov dword [esp + 0x24], eax
je 0x47f660
shr dword [esp + 0x18], 1
shr edi, 1
shr dword [esp + 0x1c], 1
push dword [esp + 0x20]
mov ecx, 0x3fffffff
mov eax, edi
cmp edi, ecx
mov edx, edi
cmovg eax, ecx
mov ecx, 0x54e660
mov dword [0x54e688], eax
call fcn.00436eb0
add esp, 4
test al, al
jne 0x47f6a0
push str.Not_enough_memory_
call dword [0x54e480]
add esp, 4
xor al, al
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x38
ret
push 0
push ebp
push esi
call fcn.00489d25
mov cl, byte [esp + 0x2c]
push esi
push 1
shl edi, cl
push edi
push dword [0x54e67c]
call fcn.0048a465
add esp, 0x1c
cmp eax, 1
je 0x47f6de
push str.General_I_O_error_during_loading__Is_the_file_in_use_
call dword [0x54e480]
add esp, 4
xor al, al
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x38
ret
mov eax, dword [esp + 0x18]
mov dword [0x54e68c], eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [0x54e690], eax
mov al, byte [0x54e685]
jle 0x47f700
or al, 1
mov byte [0x54e685], al
cmp byte [esp + 0x20], 0
je 0x47f70e
or al, 0x10
mov byte [0x54e685], al
mov al, byte [esp + 0x24]
mov ecx, 0x54e660
mov edx, dword [esp + 0x28]
mov byte [0x54e684], al
movzx eax, byte [0x789f67]
push eax
mov byte [0x54e686], 0x80
call fcn.00432690
mov eax, dword [esp + 0x40]
add esp, 4
test eax, eax
je 0x47f775
test ebx, ebx
je 0x47f775
push 0
push eax
push esi
call fcn.00489d25
mov eax, 0x16
cmp ebx, eax
push esi
cmova ebx, eax
push ebx
push 1
push 0x54e660
call fcn.0048a465
add esp, 0x1c
mov byte [0x54e676], 0
mov byte [0x54e65d], 1
pop ebp
pop ebx
pop edi
mov al, 1
pop esi
add esp, 0x38
ret