Function at 0x472a2e
Capabilities:
Read file on windows

Disassembly:
push 0x434
push 0x4fd4e8
call fcn.004bf72c
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.004a7110
add esp, 0xc
mov byte [ebp - 0x12c], 0
push ebx
push edi
lea eax, [ebp - 0x12b]
push eax
call fcn.004a7110
add esp, 0xc
mov edi, 0x1e8
call fcn.00474363
test eax, eax
je 0x472dae
mov edx, dword [ebp - 0x440]
call fcn.00475851
test eax, eax
lea eax, [ebp - 0x12c]
jne 0x472ac3
push dword [ebp - 0x440]
lea ecx, [ebx + 1]
call fcn.00475883
pop ecx
jmp 0x472ac8
call fcn.004757d4
and dword [ebp - 0x440], 0
lea edx, [ebp - 0x12c]
call fcn.00475851
test eax, eax
jne 0x472b6e
lea edi, [ebp - 0x12c]
call fcn.00418e6b
test eax, eax
jne 0x472b53
mov edi, 0x60bc48
mov edx, edi
call fcn.00475851
test eax, eax
jne 0x472dae
push edi
call fcn.004a63c0
pop ecx
mov ecx, ebx
sub ecx, eax
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x234]
call fcn.00475883
pop ecx
mov edx, edi
mov ecx, eax
call fcn.00475e0d
lea edi, [ebp - 0x234]
call fcn.00418e6b
test eax, eax
je 0x472dae
mov eax, edi
push eax
mov ecx, 0x104
lea eax, [ebp - 0x12c]
call fcn.00475883
pop ecx
xor ecx, ecx
lea edx, [ebp - 0x12c]
call fcn.00419439
mov dword [ebp - 0x440], eax
test eax, eax
je 0x472dae
cmp dword [ebp - 0x440], 0
jne 0x472bb2
mov edi, 0x21a
call fcn.00474363
test eax, eax
je 0x472baa
mov eax, esi
call fcn.004743b1
test eax, eax
je 0x472baa
mov ecx, esi
call fcn.00472683
and dword [esi + 0x104], 0
mov eax, esi
call fcn.004757d4
call fcn.004743ca
xor eax, eax
inc eax
jmp 0x472db0
push 0x228
push str..Sound.c
mov edx, 0x4c520c
lea ecx, [ebp - 0x12c]
call fcn.0041a89d
pop ecx
pop ecx
mov edi, eax
test edi, edi
je 0x472dae
and dword [ebp - 0x43c], 0
push edi
call fcn.004a68be
pop ecx
call fcn.004756d4
cmp eax, 0x52
jne 0x472c23
push edi
call fcn.004a68be
pop ecx
call fcn.004756d4
cmp eax, 0x49
jne 0x472c23
push edi
call fcn.004a68be
pop ecx
call fcn.004756d4
cmp eax, 0x46
jne 0x472c23
push edi
call fcn.004a68be
pop ecx
call fcn.004756d4
cmp eax, 0x46
je 0x472c2e
xor ebx, ebx
inc ebx
mov dword [ebp - 0x43c], ebx
jmp 0x472c31
xor ebx, ebx
inc ebx
push edi
call fcn.004a68be
pop ecx
push edi
call fcn.004a68be
pop ecx
push edi
call fcn.004a68be
pop ecx
push edi
call fcn.004a68be
pop ecx
push edi
call fcn.004a68be
pop ecx
call fcn.004756d4
cmp eax, 0x57
jne 0x472c91
push edi
call fcn.004a68be
pop ecx
call fcn.004756d4
cmp eax, 0x41
jne 0x472c91
push edi
call fcn.004a68be
pop ecx
call fcn.004756d4
cmp eax, 0x56
jne 0x472c91
push edi
call fcn.004a68be
pop ecx
call fcn.004756d4
cmp eax, 0x45
je 0x472c97
mov dword [ebp - 0x43c], ebx
cmp dword [ebp - 0x43c], 0
jne 0x472da7
push edi
mov eax, str.fmt
call fcn.0041a4a9
pop ecx
test eax, eax
je 0x472da7
and dword [ebp - 0x438], 0
push edi
push ebx
push 4
lea eax, [ebp - 0x438]
push eax
call fcn.004a7455
add esp, 0x10
cmp eax, ebx
jne 0x472da7
cmp dword [ebp - 0x438], 0x10
jb 0x472da7
push dword [ebp - 0x438]
push ebx
call fcn.004a5f90
pop ecx
pop ecx
mov dword [ebp - 0x43c], eax
test eax, eax
je 0x472da7
push edi
push dword [ebp - 0x438]
push ebx
push eax
call fcn.004a7455
add esp, 0x10
cmp eax, dword [ebp - 0x438]
je 0x472d31
mov ecx, edi
call fcn.0041acca
push dword [ebp - 0x43c]
call fcn.004a5de4
pop ecx
jmp 0x472dae
push edi
mov eax, str.data
call fcn.0041a4a9
pop ecx
test eax, eax
je 0x472d1c
and dword [ebp - 0x438], 0
push edi
push ebx
push 4
lea eax, [ebp - 0x438]
push eax
call fcn.004a7455
add esp, 0x10
cmp eax, ebx
jne 0x472d1c
cmp dword [ebp - 0x438], 0
je 0x472d1c
push dword [ebp - 0x438]
call fcn.004a76c7
pop ecx
mov ebx, eax
test ebx, ebx
je 0x472d1c
push edi
push dword [ebp - 0x438]
push 1
push ebx
call fcn.004a7455
add esp, 0x10
cmp eax, dword [ebp - 0x438]
je 0x472db6
push ebx
call fcn.004a5de4
pop ecx
push dword [ebp - 0x43c]
call fcn.004a5de4
pop ecx
mov ecx, edi
call fcn.0041acca
xor eax, eax
call fcn.004bf774
ret
mov ecx, edi
call fcn.0041acca
mov edi, 0x2a2
call fcn.00474363
test eax, eax
je 0x472fb1
mov eax, esi
call fcn.004743b1
test eax, eax
je 0x472fb1
mov ecx, esi
call fcn.00472683
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.00475883
pop ecx
mov eax, dword [ebp - 0x440]
mov dword [esi + 0x104], eax
lea ebx, [esi + 0x114]
push 0x20
push 0
push ebx
call fcn.004a7110
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 0x4742d0
push dword [esi + 0x110]
push 0xffffffffffffffff
push edi
call dword [sym.imp.WINMM.dll_waveOutOpen]
mov dword [ebp - 0x440], eax
test eax, eax
je 0x472f15
mov byte [ebp - 0x334], 0
push 0xff
push 0
lea eax, [ebp - 0x333]
push eax
call fcn.004a7110
add esp, 0xc
mov ebx, dword [ebp - 0x440]
push ebx
push str.Err_ld
push 0xf6
lea eax, [ebp - 0x334]
push eax
call fcn.00476e0a
lea eax, [ebp - 0x334]
push eax
call fcn.004a63c0
add esp, 0x14
mov ecx, pe_nt_image_headers32
sub ecx, eax
push ecx
lea eax, [ebp - 0x334]
push eax
call fcn.004a63c0
pop ecx
lea eax, [ebp + eax - 0x334]
push eax
push ebx
call dword [sym.imp.WINMM.dll_waveOutGetErrorTextA]
cmp dword [0x60be64], ebx
je 0x472f0a
and dword [0x60be68], 0
mov dword [0x60be64], ebx
jmp 0x472f10
inc dword [0x60be68]
and dword [edi], 0
jmp 0x472f8d
push 0x20
push ebx
push dword [edi]
call dword [sym.imp.WINMM.dll_waveOutPrepareHeader]
mov edi, eax
test edi, edi
je 0x472f8d
mov byte [ebp - 0x434], 0
push 0xff
push 0
lea eax, [ebp - 0x433]
push eax
call fcn.004a7110
add esp, 0xc
push edi
push str.Err_ld
push 0xf6
lea eax, [ebp - 0x434]
push eax
call fcn.00476e0a
lea eax, [ebp - 0x434]
push eax
call fcn.004a63c0
add esp, 0x14
mov ecx, pe_nt_image_headers32
sub ecx, eax
push ecx
lea eax, [ebp - 0x434]
push eax
call fcn.004a63c0
pop ecx
lea eax, [ebp + eax - 0x434]
push eax
push edi
call dword [sym.imp.WINMM.dll_waveOutGetErrorTextA]
mov dword [ebp - 4], 0xfffffffe
jmp 0x472faa
mov eax, esi
jmp 0x472ba5
push ebx
call fcn.004a5de4
pop ecx
jmp 0x472d23