Function at 0x503b40
Capabilities:
Terminate process

Disassembly:
mov eax, dword [0x6b7920]
sub esp, 0x3e8
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
je 0x503b78
mov esi, dword [esp + 0x3fc]
push esi
call fcn.004fbdc0
add esp, 4
cmp eax, 0xffffffff
jne 0x503b83
push esi
push str._tCould_not_loads_sound_for__s_r_n
call fcn.004015b0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3e8
ret
mov ecx, eax
mov dword [esp + 0x28], ebx
dec ecx
neg ecx
sbb ecx, ecx
and ecx, 0x40
shl eax, 8
shl ecx, 2
add eax, 0x55ad64
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov edi, dword [eax]
cmp edi, ebx
je 0x503b78
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xf8]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xf8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x503ff8
or ecx, 0xffffffff
mov edi, str..wav
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xf8]
mov esi, edi
mov ebp, ecx
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
mov eax, dword [esp + 0x2c]
and ecx, 3
mov dword [esp + 0x38], eax
rep movsb byte es:[edi], byte [esi]
add eax, 4
mov edi, str.AUDIO_
mov dword [esp + 0x2c], eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1f8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1fc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov dword [esp + 0x1c], ebx
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xfc]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x24], ebx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea eax, [esp + 0x1fc]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebx
call fcn.00504cb0
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x503e5c
lea ecx, [esp + 0x24]
push ecx
push esi
call fcn.00505170
mov edx, dword [esp + 0x2c]
push edx
call fcn.0052a227
mov ebp, eax
mov eax, dword [esp + 0x30]
cdq
and edx, 0x7ff
push ebp
add eax, edx
sar eax, 0xb
push eax
push esi
call fcn.005051d0
add esp, 0x18
test eax, eax
je 0x503cf8
push ebp
call fcn.0052a3c0
push esi
call fcn.00505100
add esp, 8
jmp 0x503e5c
push esi
call fcn.00505100
mov ecx, 0x12
xor eax, eax
lea edi, [esp + 0xb4]
add esp, 4
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xb0]
push ebx
lea edx, [esp + 0xfc]
push ecx
push edx
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xc0], 0x204d454d
mov dword [esp + 0xd0], eax
mov dword [esp + 0xec], ebx
call dword [sym.imp.WINMM.dll_mmioOpenA]
mov edi, dword [sym.imp.WINMM.dll_mmioStringToFOURCCA]
push ebx
push str.WAVE
mov esi, eax
call edi
cmp esi, ebx
mov dword [esp + 0x44], eax
jne 0x503d72
push ebp
call fcn.0052a3c0
add esp, 4
jmp 0x503e5c
push 0x20
lea eax, [esp + 0x40]
push ebx
mov ebx, dword [sym.imp.WINMM.dll_mmioDescend]
push eax
push esi
call ebx
test eax, eax
jne 0x503e40
push eax
push str.fmt
call edi
lea ecx, [esp + 0x3c]
push 0x10
lea edx, [esp + 0xa0]
push ecx
push edx
push esi
mov dword [esp + 0xac], eax
call ebx
lea eax, [esp + 0x50]
push 0x12
push eax
push esi
call dword [sym.imp.WINMM.dll_mmioRead]
lea ecx, [esp + 0x9c]
push 0
push ecx
push esi
call dword [sym.imp.WINMM.dll_mmioAscend]
cmp word [esp + 0x50], 1
jne 0x503e40
push 0
push str.data
call edi
mov dword [esp + 0x88], eax
lea edx, [esp + 0x3c]
push 0x10
lea eax, [esp + 0x8c]
push edx
push eax
push esi
call ebx
mov eax, dword [esp + 0x8c]
test eax, eax
mov ebx, eax
je 0x503e40
lea edi, [eax + 3]
and edi, 0xfffffffc
push edi
mov dword [esp + 0x38], edi
call fcn.0052a227
mov edx, eax
mov ecx, edi
mov dword [esp + 0x14], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
test eax, eax
je 0x503e40
push ebx
push eax
push esi
call dword [sym.imp.WINMM.dll_mmioRead]
push 0
push esi
call dword [sym.imp.WINMM.dll_mmioClose]
push ebp
call fcn.0052a3c0
mov eax, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x503e76
xor ebx, ebx
lea ecx, [esp + 0xf8]
push ecx
push str._t_tERROR_Loading_WAV_file__s____r_n
call fcn.004015b0
add esp, 8
jmp 0x503ff8
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x64]
lea edx, [esp + 0x50]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x74], edx
push 0
lea ebx, [eax + 0x6bbad4]
mov eax, dword [0x6b7920]
lea edx, [esp + 0x68]
mov dword [esp + 0x68], 0x24
mov dword [esp + 0x6c], 0xe2
mov dword [esp + 0x70], edi
mov ecx, dword [eax]
push ebx
push edx
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
je 0x503ee1
push 0x171
push str.C:_backupSpideyPCSpideyPCD3dDXsound.cpp
push esi
call fcn.004fc630
add esp, 0xc
test esi, esi
jl 0x504020
lea edx, [esp + 0x1c]
push 2
mov eax, dword [ebx]
push edx
lea edx, [esp + 0x28]
mov ecx, dword [eax]
push edx
lea edx, [esp + 0x20]
push edx
lea edx, [esp + 0x28]
push edx
push edi
push 0
push eax
call dword [ecx + 0x2c]
mov esi, eax
cmp esi, 0x88780096
jne 0x503f58
mov eax, dword [ebx]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov esi, eax
test esi, esi
je 0x503f35
push 0x177
push str.C:_backupSpideyPCSpideyPCD3dDXsound.cpp
push esi
call fcn.004fc630
add esp, 0xc
test esi, esi
jl 0x50402b
lea ecx, [esp + 0x1c]
push 2
mov eax, dword [ebx]
push ecx
lea ecx, [esp + 0x28]
mov edx, dword [eax]
push ecx
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x28]
push ecx
push edi
push 0
push eax
call dword [edx + 0x2c]
mov esi, eax
test esi, esi
je 0x503f77
push 0x17b
push str.C:_backupSpideyPCSpideyPCD3dDXsound.cpp
push esi
call fcn.004fc630
add esp, 0xc
test esi, esi
jl 0x504036
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov edx, ecx
mov esi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
test edi, edi
je 0x503fb8
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, ecx
lea esi, [eax + ebp]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebx]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx]
push edi
push edx
push ecx
push ebx
call dword [eax + 0x4c]
mov esi, eax
test esi, esi
je 0x503fed
push 0x185
push str.C:_backupSpideyPCSpideyPCD3dDXsound.cpp
push esi
call fcn.004fc630
add esp, 0xc
test esi, esi
jl 0x504041
push ebp
call fcn.0052a3c0
add esp, 4
xor ebx, ebx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
inc ecx
add eax, 4
cmp ecx, 0x40
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], eax
jl 0x503ba4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3e8
ret
call fcn.005001b0
push esi
call fcn.0052a101
call fcn.005001b0
push esi
call fcn.0052a101
call fcn.005001b0
push esi
call fcn.0052a101
call fcn.005001b0
push esi
call fcn.0052a101
nop
nop
nop
nop