Function at 0x49a44a
Capabilities:
Read file on windows

Disassembly:
push 0x434
push 0x4d56a8
call fcn.004a2b10
mov esi, ecx
mov dword [ebp - 0x444], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x440], eax
xor edi, edi
mov dword [ebp - 0x438], edi
mov byte [ebp - 0x234], 0
mov ebx, 0x103
push ebx
push edi
lea eax, [ebp - 0x233]
push eax
call fcn.00401f80
add esp, 0xc
mov byte [ebp - 0x12c], 0
push ebx
push edi
lea eax, [ebp - 0x12b]
push eax
call fcn.00401f80
add esp, 0xc
mov edi, 0x1e8
call fcn.004995b3
test eax, eax
je 0x49a7ca
mov edx, dword [ebp - 0x440]
call fcn.00439c56
test eax, eax
lea eax, [ebp - 0x12c]
jne 0x49a4df
push dword [ebp - 0x440]
lea ecx, [ebx + 1]
call fcn.00438b01
pop ecx
jmp 0x49a4e4
call fcn.00438b7b
and dword [ebp - 0x440], 0
lea edx, [ebp - 0x12c]
call fcn.00439c56
test eax, eax
jne 0x49a58a
lea edi, [ebp - 0x12c]
call fcn.0048c243
test eax, eax
jne 0x49a56f
mov edi, 0x5e0470
mov edx, edi
call fcn.00439c56
test eax, eax
jne 0x49a7ca
push edi
call fcn.00401a80
pop ecx
mov ecx, ebx
sub ecx, eax
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x234]
call fcn.00438b01
pop ecx
mov edx, edi
mov ecx, eax
call fcn.0043aa27
lea edi, [ebp - 0x234]
call fcn.0048c243
test eax, eax
je 0x49a7ca
mov eax, edi
push eax
mov ecx, 0x104
lea eax, [ebp - 0x12c]
call fcn.00438b01
pop ecx
xor edx, edx
lea ecx, [ebp - 0x12c]
call fcn.0048c9ae
mov dword [ebp - 0x440], eax
test eax, eax
je 0x49a7ca
cmp dword [ebp - 0x440], 0
jne 0x49a5ce
mov edi, 0x21a
call fcn.004995b3
test eax, eax
je 0x49a5c6
mov eax, esi
call fcn.004992cc
test eax, eax
je 0x49a5c6
mov ecx, esi
call fcn.004992e5
and dword [esi + 0x104], 0
mov eax, esi
call fcn.00438b7b
call fcn.004992bd
xor eax, eax
inc eax
jmp 0x49a7cc
push 0x228
push str.Sound.c
mov edx, 0x4a829c
lea ecx, [ebp - 0x12c]
call fcn.0048ae1a
pop ecx
pop ecx
mov edi, eax
test edi, edi
je 0x49a7ca
and dword [ebp - 0x43c], 0
push edi
call fcn.00401e7e
pop ecx
call fcn.00438be3
cmp eax, 0x52
jne 0x49a63f
push edi
call fcn.00401e7e
pop ecx
call fcn.00438be3
cmp eax, 0x49
jne 0x49a63f
push edi
call fcn.00401e7e
pop ecx
call fcn.00438be3
cmp eax, 0x46
jne 0x49a63f
push edi
call fcn.00401e7e
pop ecx
call fcn.00438be3
cmp eax, 0x46
je 0x49a64a
xor ebx, ebx
inc ebx
mov dword [ebp - 0x43c], ebx
jmp 0x49a64d
xor ebx, ebx
inc ebx
push edi
call fcn.00401e7e
pop ecx
push edi
call fcn.00401e7e
pop ecx
push edi
call fcn.00401e7e
pop ecx
push edi
call fcn.00401e7e
pop ecx
push edi
call fcn.00401e7e
pop ecx
call fcn.00438be3
cmp eax, 0x57
jne 0x49a6ad
push edi
call fcn.00401e7e
pop ecx
call fcn.00438be3
cmp eax, 0x41
jne 0x49a6ad
push edi
call fcn.00401e7e
pop ecx
call fcn.00438be3
cmp eax, 0x56
jne 0x49a6ad
push edi
call fcn.00401e7e
pop ecx
call fcn.00438be3
cmp eax, 0x45
je 0x49a6b3
mov dword [ebp - 0x43c], ebx
cmp dword [ebp - 0x43c], 0
jne 0x49a7c3
push edi
mov eax, str.fmt
call fcn.0048a165
pop ecx
test eax, eax
je 0x49a7c3
and dword [ebp - 0x438], 0
push edi
push ebx
push 4
lea eax, [ebp - 0x438]
push eax
call fcn.00402244
add esp, 0x10
cmp eax, ebx
jne 0x49a7c3
cmp dword [ebp - 0x438], 0x10
jb 0x49a7c3
push dword [ebp - 0x438]
push ebx
call fcn.00401a3a
pop ecx
pop ecx
mov dword [ebp - 0x43c], eax
test eax, eax
je 0x49a7c3
push edi
push dword [ebp - 0x438]
push ebx
push eax
call fcn.00402244
add esp, 0x10
cmp eax, dword [ebp - 0x438]
je 0x49a74d
mov ecx, edi
call fcn.0048d8ca
push dword [ebp - 0x43c]
call fcn.00401a00
pop ecx
jmp 0x49a7ca
push edi
mov eax, str.data
call fcn.0048a165
pop ecx
test eax, eax
je 0x49a738
and dword [ebp - 0x438], 0
push edi
push ebx
push 4
lea eax, [ebp - 0x438]
push eax
call fcn.00402244
add esp, 0x10
cmp eax, ebx
jne 0x49a738
cmp dword [ebp - 0x438], 0
je 0x49a738
push dword [ebp - 0x438]
call fcn.004028f8
pop ecx
mov ebx, eax
test ebx, ebx
je 0x49a738
push edi
push dword [ebp - 0x438]
push 1
push ebx
call fcn.00402244
add esp, 0x10
cmp eax, dword [ebp - 0x438]
je 0x49a7d2
push ebx
call fcn.00401a00
pop ecx
push dword [ebp - 0x43c]
call fcn.00401a00
pop ecx
mov ecx, edi
call fcn.0048d8ca
xor eax, eax
call fcn.004a2b58
ret
mov ecx, edi
call fcn.0048d8ca
mov edi, 0x2a2
call fcn.004995b3
test eax, eax
je 0x49a9cd
mov eax, esi
call fcn.004992cc
test eax, eax
je 0x49a9cd
mov ecx, esi
call fcn.004992e5
and dword [ebp - 4], 0
mov dword [esi + 0x108], ebx
mov eax, dword [ebp - 0x438]
mov dword [esi + 0x10c], eax
mov eax, dword [ebp - 0x43c]
mov dword [esi + 0x110], eax
lea eax, [ebp - 0x12c]
push eax
mov ecx, 0x104
mov eax, esi
call fcn.00438b01
pop ecx
mov eax, dword [ebp - 0x440]
mov dword [esi + 0x104], eax
lea ebx, [esi + 0x114]
push 0x20
push 0
push ebx
call fcn.00401f80
add esp, 0xc
mov eax, dword [ebp - 0x438]
mov dword [esi + 0x118], eax
mov eax, dword [esi + 0x108]
mov dword [ebx], eax
and dword [esi + 0x120], 0
lea edi, [esi + 0x434]
and dword [edi], 0
push 0x30000
push esi
push 0x499601
push dword [esi + 0x110]
push 0xffffffffffffffff
push edi
call dword [sym.imp.WINMM.dll_waveOutOpen]
mov dword [ebp - 0x440], eax
test eax, eax
je 0x49a931
mov byte [ebp - 0x334], 0
push 0xff
push 0
lea eax, [ebp - 0x333]
push eax
call fcn.00401f80
add esp, 0xc
mov ebx, dword [ebp - 0x440]
push ebx
push str.Err_ld
push 0xf6
lea eax, [ebp - 0x334]
push eax
call fcn.004392d1
lea eax, [ebp - 0x334]
push eax
call fcn.00401a80
add esp, 0x14
mov ecx, 0x100
sub ecx, eax
push ecx
lea eax, [ebp - 0x334]
push eax
call fcn.00401a80
pop ecx
lea eax, [ebp + eax - 0x334]
push eax
push ebx
call dword [sym.imp.WINMM.dll_waveOutGetErrorTextA]
cmp dword [0x5e058c], ebx
je 0x49a926
and dword [0x5e0694], 0
mov dword [0x5e058c], ebx
jmp 0x49a92c
inc dword [0x5e0694]
and dword [edi], 0
jmp 0x49a9a9
push 0x20
push ebx
push dword [edi]
call dword [sym.imp.WINMM.dll_waveOutPrepareHeader]
mov edi, eax
test edi, edi
je 0x49a9a9
mov byte [ebp - 0x434], 0
push 0xff
push 0
lea eax, [ebp - 0x433]
push eax
call fcn.00401f80
add esp, 0xc
push edi
push str.Err_ld
push 0xf6
lea eax, [ebp - 0x434]
push eax
call fcn.004392d1
lea eax, [ebp - 0x434]
push eax
call fcn.00401a80
add esp, 0x14
mov ecx, 0x100
sub ecx, eax
push ecx
lea eax, [ebp - 0x434]
push eax
call fcn.00401a80
pop ecx
lea eax, [ebp + eax - 0x434]
push eax
push edi
call dword [sym.imp.WINMM.dll_waveOutGetErrorTextA]
mov dword [ebp - 4], 0xfffffffe
jmp 0x49a9c6
mov eax, esi
jmp 0x49a5c1
push ebx
call fcn.00401a00
pop ecx
jmp 0x49a73f