Function at 0x47f620
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 0x47f648
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.0048a035
push esi
push 4
lea eax, [esp + 0x54]
push 1
push eax
call fcn.0048a775
push 4
lea eax, [esp + 0x60]
mov byte [esp + 0x64], 0
push str.16SV
push eax
call fcn.0048f320
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.0048a035
push esi
call fcn.004901c4
add esp, 0x38
test eax, eax
je 0x47f6c8
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.00489d53
lea ecx, [edi - 0xc]
add esp, 4
cmp eax, ecx
jae 0x47f7f1
push esi
push 1
lea eax, [esp + 0x34]
push 4
push eax
call fcn.0048a775
push esi
call fcn.004901c4
add esp, 0x14
test eax, eax
jne 0x47f7f1
push esi
push 1
lea eax, [esp + 0x1c]
push 4
push eax
call fcn.0048a775
push esi
call fcn.004901c4
add esp, 0x14
test eax, eax
jne 0x47f7f1
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 0x47f7b3
cmp edi, 0x4e414d45
je 0x47f7a1
cmp edi, 0x56484452
jne 0x47f7ca
push esi
call fcn.00489d53
mov ebp, dword [esp + 0x18]
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
mov edx, ebp
jmp 0x47f7ce
push esi
call fcn.00489d53
mov ebx, dword [esp + 0x18]
mov edx, ebx
mov dword [esp + 0x40], eax
jmp 0x47f7c7
push esi
call fcn.00489d53
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.0048a035
push esi
call fcn.004901c4
add esp, 0x10
test eax, eax
je 0x47f6c4
jmp 0x47f7f5
mov edi, dword [esp + 0x10]
test edi, edi
je 0x47f6ac
cmp ebp, 0x14
jb 0x47f6ac
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x47f6ac
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.0048a035
push esi
push 1
lea eax, [esp + 0x2c]
push 4
push eax
call fcn.0048a775
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.0048a775
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.0048a035
push esi
push 1
lea eax, [esp + 0x68]
push 2
push eax
call fcn.0048a775
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.0048a035
push esi
call fcn.00490555
add esp, 0x10
test eax, eax
je 0x47f90e
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.0048a775
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 0x47f970
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.004370e0
add esp, 4
test al, al
jne 0x47f9b0
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.0048a035
mov cl, byte [esp + 0x2c]
push esi
push 1
shl edi, cl
push edi
push dword [0x54e67c]
call fcn.0048a775
add esp, 0x1c
cmp eax, 1
je 0x47f9ee
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 0x47fa10
or al, 1
mov byte [0x54e685], al
cmp byte [esp + 0x20], 0
je 0x47fa1e
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.00432870
mov eax, dword [esp + 0x40]
add esp, 4
test eax, eax
je 0x47fa85
test ebx, ebx
je 0x47fa85
push 0
push eax
push esi
call fcn.0048a035
mov eax, 0x16
cmp ebx, eax
push esi
cmova ebx, eax
push ebx
push 1
push 0x54e660
call fcn.0048a775
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