Function at 0x47f4f0
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 0x47f518
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.00489f05
push esi
push 4
lea eax, [esp + 0x54]
push 1
push eax
call fcn.0048a645
push 4
lea eax, [esp + 0x60]
mov byte [esp + 0x64], 0
push str.16SV
push eax
call fcn.0048f1f0
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.00489f05
push esi
call fcn.00490094
add esp, 0x38
test eax, eax
je 0x47f598
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.00489c23
lea ecx, [edi - 0xc]
add esp, 4
cmp eax, ecx
jae 0x47f6c1
push esi
push 1
lea eax, [esp + 0x34]
push 4
push eax
call fcn.0048a645
push esi
call fcn.00490094
add esp, 0x14
test eax, eax
jne 0x47f6c1
push esi
push 1
lea eax, [esp + 0x1c]
push 4
push eax
call fcn.0048a645
push esi
call fcn.00490094
add esp, 0x14
test eax, eax
jne 0x47f6c1
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 0x47f683
cmp edi, 0x4e414d45
je 0x47f671
cmp edi, 0x56484452
jne 0x47f69a
push esi
call fcn.00489c23
mov ebp, dword [esp + 0x18]
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
mov edx, ebp
jmp 0x47f69e
push esi
call fcn.00489c23
mov ebx, dword [esp + 0x18]
mov edx, ebx
mov dword [esp + 0x40], eax
jmp 0x47f697
push esi
call fcn.00489c23
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.00489f05
push esi
call fcn.00490094
add esp, 0x10
test eax, eax
je 0x47f594
jmp 0x47f6c5
mov edi, dword [esp + 0x10]
test edi, edi
je 0x47f57c
cmp ebp, 0x14
jb 0x47f57c
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x47f57c
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.00489f05
push esi
push 1
lea eax, [esp + 0x2c]
push 4
push eax
call fcn.0048a645
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.0048a645
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.00489f05
push esi
push 1
lea eax, [esp + 0x68]
push 2
push eax
call fcn.0048a645
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.00489f05
push esi
call fcn.00490425
add esp, 0x10
test eax, eax
je 0x47f7de
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.0048a645
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 0x47f840
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.00437030
add esp, 4
test al, al
jne 0x47f880
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.00489f05
mov cl, byte [esp + 0x2c]
push esi
push 1
shl edi, cl
push edi
push dword [0x54e67c]
call fcn.0048a645
add esp, 0x1c
cmp eax, 1
je 0x47f8be
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 0x47f8e0
or al, 1
mov byte [0x54e685], al
cmp byte [esp + 0x20], 0
je 0x47f8ee
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.004327e0
mov eax, dword [esp + 0x40]
add esp, 4
test eax, eax
je 0x47f955
test ebx, ebx
je 0x47f955
push 0
push eax
push esi
call fcn.00489f05
mov eax, 0x16
cmp ebx, eax
push esi
cmova ebx, eax
push ebx
push 1
push 0x54e660
call fcn.0048a645
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