Function at 0x43c6f0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4c2378
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
mov eax, dword [0x4f5b3c]
push esi
push edi
mov esi, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 8]
mov byte [esp + 0x30], 5
push eax
call fcn.00438810
mov byte [esp + 0x30], 6
lea edi, [esi + 4]
mov ecx, dword [edi]
push ecx
lea ecx, [esp + 0x10]
call fcn.004a9d5c
mov ecx, esi
call fcn.00439400
mov eax, dword [edi]
mov edx, dword [esp + 0xc]
push eax
push edx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c748
mov ecx, esi
call fcn.00439400
push ecx
mov ecx, esi
mov eax, esp
mov dword [esp + 0x28], esp
push eax
call fcn.00438880
mov ecx, esi
call fcn.00441d20
push 0x24
mov ecx, esi
call fcn.00439720
cmp eax, 1
jle 0x43c825
push 0x24
mov ecx, edi
call fcn.004aa09a
cmp eax, 3
jne 0x43c825
lea ecx, [esp + 8]
mov byte [esp + 0x30], 5
call fcn.004a9c1f
lea ecx, [esp + 0x10]
mov byte [esp + 0x30], 4
call fcn.004a9c1f
lea ecx, [esp + 0x14]
mov byte [esp + 0x30], 3
call fcn.004a9c1f
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], 2
call fcn.004a9c1f
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 1
call fcn.004a9c1f
lea ecx, [esp + 0x20]
mov byte [esp + 0x30], 0
call fcn.004a9c1f
lea ecx, [esp + 0xc]
mov dword [esp + 0x30], 0xffffffff
call fcn.004a9c1f
or eax, 0xffffffff
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop edi
pop esi
add esp, 0x2c
ret
mov eax, dword [0x4ff1b0]
mov ecx, dword [esp + 8]
push eax
push ecx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c848
mov ecx, esi
call fcn.00440f90
jmp 0x43ca4d
mov eax, dword [0x4ff1b4]
mov edx, dword [esp + 8]
push eax
push edx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c86b
mov ecx, esi
call fcn.00441320
jmp 0x43ca4d
mov eax, dword [0x4ff1b8]
push eax
mov eax, dword [esp + 0xc]
push eax
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c88e
mov ecx, esi
call fcn.004407d0
jmp 0x43ca4d
mov eax, dword [0x4ff1bc]
mov ecx, dword [esp + 8]
push eax
push ecx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c8b1
mov ecx, esi
call fcn.0043e180
jmp 0x43ca4d
mov eax, dword [0x4ff1c0]
mov edx, dword [esp + 8]
push eax
push edx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c8d4
mov ecx, esi
call fcn.0043dd50
jmp 0x43ca4d
mov eax, dword [0x4ff1c4]
push eax
mov eax, dword [esp + 0xc]
push eax
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c8f7
mov ecx, esi
call fcn.0043e7e0
jmp 0x43ca4d
mov eax, dword [0x4ff1c8]
mov ecx, dword [esp + 8]
push eax
push ecx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c91a
mov ecx, esi
call fcn.0043eb60
jmp 0x43ca4d
mov eax, dword [0x4ff1cc]
mov edx, dword [esp + 8]
push eax
push edx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c93d
mov ecx, esi
call sub.WINMM.dll_waveInGetNumDevs
jmp 0x43ca4d
mov eax, dword [0x4ff1d0]
push eax
mov eax, dword [esp + 0xc]
push eax
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c960
mov ecx, esi
call fcn.00440660
jmp 0x43ca4d
mov eax, dword [0x4ff1d4]
mov ecx, dword [esp + 8]
push eax
push ecx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c983
mov ecx, esi
call fcn.0043ce30
jmp 0x43ca4d
mov eax, dword [0x4ff1d8]
mov edx, dword [esp + 8]
push eax
push edx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c9a6
mov ecx, esi
call fcn.004405f0
jmp 0x43ca4d
mov eax, dword [0x4ff1dc]
push eax
mov eax, dword [esp + 0xc]
push eax
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c9c9
mov ecx, esi
call fcn.0043d860
jmp 0x43ca4d
mov eax, dword [0x4ff1e0]
mov ecx, dword [esp + 8]
push eax
push ecx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43c9e9
mov ecx, esi
call fcn.0043da40
jmp 0x43ca4d
mov eax, dword [0x4ff1e4]
mov edx, dword [esp + 8]
push eax
push edx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43ca09
mov ecx, esi
call fcn.0043cad0
jmp 0x43ca4d
mov eax, dword [0x4ff1e8]
push eax
mov eax, dword [esp + 0xc]
push eax
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43ca29
mov ecx, esi
call fcn.00440a00
jmp 0x43ca4d
mov eax, dword [0x4ff1ec]
mov ecx, dword [esp + 8]
push eax
push ecx
call fcn.00474eb8
add esp, 8
test eax, eax
jne 0x43ca49
mov ecx, esi
call fcn.0043e370
jmp 0x43ca4d
mov eax, dword [esp + 0x24]
xor edx, edx
lea ecx, [esp + 8]
test eax, eax
setne dl
mov esi, edx
mov byte [esp + 0x30], 5
call fcn.004a9c1f
lea ecx, [esp + 0x10]
mov byte [esp + 0x30], 4
call fcn.004a9c1f
lea ecx, [esp + 0x14]
mov byte [esp + 0x30], 3
call fcn.004a9c1f
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], 2
call fcn.004a9c1f
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 1
call fcn.004a9c1f
lea ecx, [esp + 0x20]
mov byte [esp + 0x30], 0
call fcn.004a9c1f
lea ecx, [esp + 0xc]
mov dword [esp + 0x30], 0xffffffff
call fcn.004a9c1f
mov ecx, dword [esp + 0x28]
mov eax, esi
pop edi
mov dword fs:[0], ecx
pop esi
add esp, 0x2c
ret