Function at 0x43dd50
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x54
mov cx, word [0x677e20]
xor eax, eax
mov dx, word [0x677e30]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov word [esp + 6], cx
mov ecx, dword [0x677e34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov word [esp + 0x12], dx
mov word [esp + 0x14], ax
mov eax, dword [esp + 0x12]
mov dword [esp + 8], ecx
mov edx, dword [esp + 6]
and eax, 0xffff
and edx, 0xffff
imul eax, edx
cdq
and edx, 7
push ebx
add eax, edx
push esi
sar eax, 3
mov word [esp + 0x18], ax
mov eax, dword [esp + 0x18]
and eax, 0xffff
push edi
imul eax, ecx
mov ebx, 1
xor esi, esi
push str.Creating_DS_buffers_n
mov word [esp + 0x14], bx
mov word [esp + 0x24], si
mov dword [esp + 0x1c], eax
call fcn.0042050d
push str....setting_EXCLUSIVE_coop_level:
call fcn.00420689
mov eax, dword [0x66bd08]
mov edx, dword [0x482618]
add esp, 8
mov ecx, dword [eax]
push 3
push edx
push eax
call dword [ecx + 0x18]
test eax, eax
je 0x43de1e
push str.failed_n
call fcn.0042050d
add esp, 4
call fcn.0043d940
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x54
ret
push 0x4580a4
call fcn.00420689
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], eax
mov edi, 0x14
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x4c], eax
push str....creating_primary_buffer:
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x54], edi
mov dword [0x481620], esi
call fcn.00420689
mov eax, dword [0x66bd08]
add esp, 8
lea ecx, [esp + 0x38]
mov edx, dword [eax]
push esi
push 0x66bd38
push ecx
push eax
call dword [edx + 0xc]
test eax, eax
jne 0x43df13
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov ax, word [esp + 0x20]
push 0x4580a4
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov word [esp + 0x38], ax
call fcn.00420689
mov eax, dword [0x66bd38]
add esp, 4
lea edx, [esp + 0x24]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x38]
test eax, eax
mov eax, dword [0x457e00]
je 0x43defa
cmp eax, esi
je 0x43df20
push str....setting_primary_sound_format:_failed_n
call fcn.00420689
jmp 0x43df1d
cmp eax, esi
je 0x43df0b
push str....setting_primary_sound_format:_ok_n
call fcn.00420689
add esp, 4
mov dword [0x481620], ebx
jmp 0x43df2c
push str.failed_n
call fcn.0042050d
add esp, 4
cmp dword [0x481620], esi
je 0x43dfd5
mov eax, dword [0x677e94]
fld dword [eax + 0x14]
fcomp dword [0x44c308]
fnstsw ax
test ah, 0x40
jne 0x43dfd5
push str....using_primary_buffer_n
call fcn.0042050d
push str....setting_WRITEPRIMARY_coop_level:
call fcn.00420689
mov eax, dword [0x66bd08]
mov edx, dword [0x482618]
add esp, 8
mov ecx, dword [eax]
push 4
push edx
push eax
call dword [ecx + 0x18]
test eax, eax
je 0x43df8f
push str.failed_n
call fcn.0042050d
add esp, 4
call fcn.0043d940
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x54
ret
push 0x4580a4
call fcn.00420689
mov eax, dword [0x66bd38]
add esp, 4
lea edx, [esp + 0x4c]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x43dfc6
push str._GetCaps_failed__n
call fcn.0042050d
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x54
ret
mov eax, dword [0x66bd38]
mov dword [0x66bd00], eax
jmp 0x43e0d9
xor eax, eax
xor edx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x58], edx
mov dword [esp + 0x48], eax
push str....creating_secondary_buffer:
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], 0x28
mov dword [esp + 0x44], 0x10000
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x50], edi
call fcn.00420689
mov eax, dword [0x66bd08]
add esp, 4
lea edx, [esp + 0x38]
mov ecx, dword [eax]
push esi
push 0x66bd00
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x43e063
push str.failed_n
call fcn.0042050d
add esp, 4
call fcn.0043d940
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x54
ret
push 0x4580a4
call fcn.00420689
mov eax, dword [esp + 0x16]
mov ecx, dword [esp + 0x22]
mov edx, dword [esp + 0x18]
and eax, 0xffff
mov dword [0x677e20], eax
mov eax, dword [0x66bd00]
add esp, 4
and ecx, 0xffff
mov dword [0x677e34], edx
lea edx, [esp + 0x4c]
mov dword [0x677e30], ecx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x43e0c7
push str._GetCaps_failed__n
call fcn.0042050d
add esp, 4
call fcn.0043d940
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x54
ret
push str....using_secondary_sound_buffer_n
call fcn.0042050d
mov eax, dword [0x66bd00]
add esp, 4
mov ecx, dword [eax]
push ebx
push esi
push esi
push eax
call dword [ecx + 0x30]
cmp dword [0x457e00], esi
je 0x43e10b
mov edx, dword [0x677e34]
mov eax, dword [0x677e30]
mov ecx, dword [0x677e20]
push edx
push eax
push ecx
push str.____d_channel_s__n____d_bits_sample_n____d_bytes_sec_n
call fcn.0042050d
add esp, 0x10
mov edx, dword [esp + 0x54]
mov eax, dword [0x66bd00]
mov dword [0x66bd30], edx
mov dword [0x66bd34], esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
mov eax, dword [0x66bd00]
lea ecx, [esp + 0xc]
push ecx
push 0x66bd24
mov edx, dword [eax]
push eax
call dword [edx + 0x10]
mov eax, dword [0x66bd00]
push ebx
push esi
push esi
mov edx, dword [eax]
push eax
call dword [edx + 0x30]
mov eax, dword [0x677e30]
mov dword [0x677e2c], esi
cdq
and edx, 7
pop edi
add eax, edx
xor edx, edx
mov ecx, eax
mov eax, dword [0x66bd30]
sar ecx, 3
div ecx
dec ecx
mov dword [0x677e28], ebx
pop esi
mov dword [0x481604], ecx
mov dword [0x677e24], eax
mov eax, dword [0x66bd34]
mov dword [0x677e38], eax
mov eax, ebx
pop ebx
add esp, 0x54
ret