Function at 0x442890
Capabilities:
Print debug messages

Disassembly:
mov eax, dword [0x7dedfc]
sub esp, 0x114
test eax, eax
push ebx
push ebp
push esi
push edi
jne 0x4428b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x114
ret
mov eax, dword [0x7e0de4]
mov esi, dword [esp + 0x128]
cmp eax, 1
jne 0x4428e4
lea eax, [esi*8]
sub eax, esi
lea eax, [eax + eax*4]
test byte [eax*8 + 0x7c90f8], 8
je 0x4428e4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x114
ret
lea eax, [esi*8]
sub eax, esi
lea edi, [eax + eax*4]
shl edi, 3
mov dword [esp + 0x20], edi
mov eax, dword [edi + 0x7c90fc]
test eax, eax
jne 0x442945
lea ecx, [edi + 0x7c8fe8]
lea edx, [esp + 0x24]
push ecx
push str.Loading_sound:__s_n
push edx
call fcn.00465066
add esp, 0xc
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call fcn.00442380
mov eax, dword [edi + 0x7c90fc]
add esp, 4
test eax, eax
jne 0x442945
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x114
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x7dedec]
mov dword [esp + 0x10], eax
or ebp, 0xffffffff
or eax, 0xffffffff
xor esi, esi
mov dword [esp + 0x14], ebp
test ecx, ecx
mov ebx, 0xff
mov dword [esp + 0x1c], eax
jle 0x4429b3
mov edi, 0x7e0bb4
mov eax, dword [edi]
test eax, eax
je 0x44298b
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push eax
call dword [ecx + 0x24]
test byte [esp + 0x18], 1
jne 0x44298d
mov ebp, esi
mov eax, dword [edi - 0x2c]
cmp eax, ebx
jae 0x44299a
mov ebx, eax
mov dword [esp + 0x1c], esi
mov eax, dword [0x7dedec]
inc esi
add edi, 0x30
cmp esi, eax
jl 0x442973
test ebp, ebp
mov dword [esp + 0x14], ebp
jge 0x4429ca
mov eax, dword [esp + 0x1c]
mov ebp, eax
test eax, eax
mov dword [esp + 0x14], ebp
jge 0x4429ca
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x114
ret
lea esi, [ebp + ebp*2]
shl esi, 4
mov eax, dword [esi + 0x7e0bb4]
lea edi, [esi + 0x7e0bb4]
test eax, eax
je 0x4429fc
push ebp
call fcn.00442060
mov eax, dword [edi]
add esp, 4
test eax, eax
je 0x4429fc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [edi], 0
mov ebx, dword [esp + 0x20]
lea ecx, [esp + 0x18]
push ecx
mov eax, dword [ebx + 0x7c90fc]
push eax
mov edx, dword [eax]
call dword [edx + 0x24]
test byte [esp + 0x18], 2
je 0x442a24
mov eax, dword [ebx + 0x7c90fc]
push eax
mov edx, dword [eax]
call dword [edx + 0x50]
mov eax, dword [0x7dee04]
mov edx, dword [ebx + 0x7c90fc]
push edi
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov ebp, dword [esp + 0x12c]
test ebp, ebp
jne 0x442abc
movsx eax, word [ebx + 0x7c90f0]
mov ecx, 0x64
sub ecx, eax
push ecx
call fcn.00442080
movsx edx, word [esp + 0x134]
push edx
mov ecx, eax
call fcn.00442080
add ecx, eax
add esp, 8
movsx eax, word [0x7e0dd8]
add ecx, eax
cmp ecx, 0xffffd8f0
jge 0x442a83
mov ecx, 0xffffd8f0
jmp 0x442aa7
test ecx, ecx
jle 0x442aa7
push ecx
lea ecx, [esp + 0x28]
push str.cl_sound_warning:_sndUpdate_____volume__d_out_of_range_n
push ecx
call fcn.00465066
add esp, 0xc
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
mov eax, dword [edi]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x3c]
mov dword [esi + 0x7e0ba0], 0
jmp 0x442b06
mov eax, dword [edi]
push 0xfffff63c
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov eax, dword [esp + 0x10]
mov dword [esi + 0x7e0ba4], 0xfffff63c
movsx edx, word [esp + 0x130]
mov dword [esi + 0x7e0bac], eax
add eax, ebp
push edx
mov dword [esi + 0x7e0bb0], eax
call fcn.00442080
add esp, 4
mov dword [esi + 0x7e0ba8], eax
mov dword [esi + 0x7e0ba0], 1
mov ax, word [esp + 0x134]
mov ebp, dword [edi]
test ax, ax
mov ebx, dword [ebp]
jge 0x442b2d
movsx eax, ax
neg eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x47f4b0]
jmp 0x442b3e
movsx ecx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul dword [0x47f3cc]
call fcn.004650b8
push eax
push ebp
call dword [ebx + 0x40]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi]
mov ecx, dword [ecx + 0x7c90ec]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x44]
mov ebp, dword [esp + 0x13c]
mov eax, 8
and ebp, 1
je 0x442b71
mov eax, 9
mov edi, dword [edi]
push eax
push 0
push 0
mov edx, dword [edi]
push edi
call dword [edx + 0x30]
mov ecx, dword [0x7dedf0]
mov eax, 0x100
add ecx, eax
mov dword [0x7dedf0], ecx
jne 0x442b98
mov dword [0x7dedf0], eax
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x14]
mov edx, dword [0x7dedf0]
mov dword [esi + 0x7e0b88], eax
test ebp, ebp
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x128]
mov dword [esi + 0x7e0b98], eax
mov dword [esi + 0x7e0b94], ecx
je 0x442bde
mov dword [esi + 0x7e0b9c], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov dword [esi + 0x7e0b9c], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret