Function at 0x570b10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6260e1
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x7161c0]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [esi + 0x304]
cmp dword [ecx + 0xe0], 1
je 0x570f21
cmp dword [ecx + 0xe0], 3
je 0x570f21
mov ebp, 2
cmp dword [ecx + 0xe0], ebp
jne 0x570ddf
push 1
lea eax, [esp + 0x54]
push eax
call fcn.00590c50
test al, al
je 0x570f59
mov ecx, dword [esi + 0x304]
call fcn.00525740
mov dword [esp + 0x30], edx
mov dl, byte [esp + 0x54]
test dl, 8
mov ebp, eax
je 0x570dc5
test byte [esp + 0x51], 2
je 0x570bba
mov ecx, dword [esi + 0x304]
lea edx, [esp + 0x50]
push edx
call fcn.00576a50
mov dl, byte [esp + 0x54]
test dl, 8
je 0x570dc5
mov eax, dword [esp + 0x52]
mov ecx, eax
and ecx, 0x1fff
cmp cx, 0x10
jb 0x570dc5
cmp cx, 0x1fff
jae 0x570dc5
test dl, 3
jne 0x570dc5
and eax, 0x1fff
mov ebx, eax
xor eax, eax
test byte [esp + 0x51], 2
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov word [esp + 0x8c], ax
je 0x570ca3
mov ecx, dword [esi + 0x304]
push eax
push 4
lea eax, [esp + 0x1c]
push eax
call fcn.0058e7c0
test al, al
je 0x570ca3
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x304]
push edx
lea eax, [esp + 0x74]
push eax
call fcn.0058eca0
test al, al
je 0x570ca3
mov cl, byte [esp + 0x72]
and cl, 3
cmp cl, 2
jne 0x570c74
test byte [esp + 0x8b], 3
jne 0x570fe9
mov edi, dword [esi + 0x304]
mov ecx, edi
call fcn.00525740
mov ecx, dword [esp + 0x52]
mov edx, ebp
sub edx, eax
add edx, dword [esp + 0x5f]
mov eax, dword [esp + 0x14]
push edx
and ecx, 0x1fff
push eax
push ecx
mov ecx, edi
call fcn.00576090
mov ebx, eax
push ebx
mov ecx, esi
call fcn.00522ef0
test eax, eax
je 0x570dc5
push 0x40
call fcn.005b4633
add esp, 4
test eax, eax
je 0x570ccc
mov ecx, eax
call fcn.004e2610
mov edi, eax
jmp 0x570cce
xor edi, edi
mov dword [esp + 0x18], edi
mov dword [edi + 0x18], ebx
movzx edx, byte [esp + 0x72]
shr edx, 2
and edx, 1
mov dword [edi + 0x20], edx
movzx eax, byte [esp + 0x72]
shr eax, 2
not eax
and eax, 1
mov dword [edi + 0x24], eax
test byte [esp + 0x56], 8
mov dword [esp + 0x98], 1
je 0x570d1d
mov edx, dword [esi]
mov edx, dword [edx + 0x10]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call edx
test byte [esp + 0x72], 4
je 0x570d3c
mov eax, dword [esp + 0x73]
sub eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x77]
sbb ecx, dword [esp + 0xa4]
jmp 0x570d43
xor eax, eax
mov ecx, DirectSoundCreate
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
add eax, 1
adc ecx, 0
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
mov ecx, dword [esi + 0x304]
push 0xffffffffffffffff
lea ebx, [edi + 8]
call fcn.00525740
mov edx, ebp
sub edx, eax
add edx, dword [esp + 0x63]
mov ecx, ebx
push edx
call fcn.004e2370
mov ecx, dword [esi + 0x304]
call fcn.00525740
mov ebx, dword [ebx]
mov ecx, dword [esi + 0x304]
sub ebp, eax
add ebp, dword [esp + 0x5f]
mov eax, ebp
cdq
push edx
push eax
push ebx
call fcn.00525840
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x2c], esp
mov dword [esp + 0x1c], 0
mov dword [eax], edi
call fcn.00524990
lea ecx, [esp + 0x18]
mov dword [esp + 0x98], 0xffffffff
call fcn.004e21b0
mov edx, dword [esp + 0x67]
mov ecx, dword [esi + 0x304]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
push edx
mov edx, dword [esp + 0x67]
push edx
jmp 0x57116f
cmp dword [ecx + 0xe0], 4
jne 0x571171
push 1
lea edx, [esp + 0x44]
push edx
call fcn.00591240
test al, al
je 0x570f59
mov ecx, dword [esi + 0x304]
movzx ebx, byte [esp + 0x42]
call fcn.00525740
push ebx
mov ecx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
call fcn.00522ef0
test eax, eax
je 0x570eff
push 0x40
call fcn.005b4633
add esp, 4
test eax, eax
je 0x570e41
mov ecx, eax
call fcn.004e2610
mov edi, eax
jmp 0x570e43
xor edi, edi
mov dword [esp + 0x18], edi
mov dword [edi + 0x18], ebx
movzx eax, byte [esp + 0x45]
shr eax, 3
and eax, 1
mov dword [edi + 0x20], eax
movzx ecx, byte [esp + 0x45]
shr ecx, 3
not ecx
and ecx, 1
mov dword [edi + 0x24], ecx
test byte [esp + 0x45], 8
mov dword [esp + 0x98], ebp
je 0x570e8e
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x4c]
sbb ecx, dword [esp + 0xa4]
jmp 0x570e95
xor eax, eax
mov ecx, DirectSoundCreate
mov dword [edi + 0x28], eax
mov edx, eax
mov eax, ecx
mov dword [edi + 0x2c], ecx
add edx, 1
adc eax, 0
mov dword [edi + 0x30], edx
mov dword [edi + 0x34], eax
movzx ecx, word [esp + 0x46]
push 0xffffffffffffffff
lea ebx, [edi + 8]
push ecx
mov ecx, ebx
call fcn.004e2370
movzx eax, word [esp + 0x46]
mov ebx, dword [ebx]
mov ecx, dword [esi + 0x304]
cdq
push edx
push eax
push ebx
call fcn.00525840
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x2c], esp
mov dword [esp + 0x1c], 0
mov dword [eax], edi
call fcn.00524990
lea ecx, [esp + 0x18]
mov dword [esp + 0x98], 0xffffffff
call fcn.004e21b0
movzx eax, word [esp + 0x46]
mov ecx, dword [esi + 0x304]
mov esi, dword [ecx]
cdq
add eax, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
push edx
mov edx, dword [esi + 0xc]
push eax
call edx
jmp 0x571171
push 0
push 0x10000
lea eax, [esp + 0x1c]
push eax
call fcn.0058e7c0
test al, al
je 0x570f59
mov edx, dword [esp + 0x14]
cmp dl, 0xba
jne 0x570f63
mov esi, dword [esi + 0x304]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.0058e880
test al, al
jne 0x571171
mov eax, 1
jmp 0x571173
cmp dl, 0xbb
jne 0x570f8c
mov esi, dword [esi + 0x304]
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.0058eb30
test al, al
jne 0x571171
mov eax, 1
jmp 0x571173
mov al, dl
add al, 0x43
cmp al, 0x32
ja 0x571171
mov ecx, dword [esi + 0x304]
xor eax, eax
push edx
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov word [esp + 0x74], ax
call fcn.0058eca0
test al, al
je 0x570f59
cmp word [esp + 0x50], 0
je 0x570f59
mov al, byte [esp + 0x52]
and al, 3
cmp al, 2
jne 0x570ff3
test byte [esp + 0x6b], 3
je 0x570ff3
mov eax, 0x80004005
jmp 0x571173
mov ecx, dword [esi + 0x304]
call fcn.00525740
mov ecx, dword [esi + 0x304]
mov ebx, edx
movzx edx, word [esp + 0x50]
mov ebp, eax
mov eax, dword [esp + 0x14]
push edx
push eax
push 0
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
call fcn.00576090
push eax
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00522ef0
test eax, eax
je 0x571156
push 0x40
call fcn.005b4633
add esp, 4
test eax, eax
je 0x57104f
mov ecx, eax
call fcn.004e2610
mov edi, eax
jmp 0x571051
xor edi, edi
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x18], ecx
movzx edx, byte [esp + 0x52]
shr edx, 2
and edx, 1
mov dword [edi + 0x20], edx
movzx eax, byte [esp + 0x52]
shr eax, 2
not eax
and eax, 1
mov dword [edi + 0x24], eax
test byte [esp + 0x52], 4
mov dword [esp + 0x98], 0
je 0x5710a4
mov eax, dword [esp + 0x53]
sub eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x57]
sbb ecx, dword [esp + 0xa4]
jmp 0x5710ab
xor eax, eax
mov ecx, DirectSoundCreate
mov dword [edi + 0x2c], ecx
mov edx, dword [edi + 0x2c]
mov ecx, eax
add ecx, 1
mov dword [edi + 0x28], eax
adc edx, 0
mov dword [edi + 0x30], ecx
mov dword [edi + 0x34], edx
mov ecx, dword [esi + 0x304]
push 0xffffffffffffffff
lea ebx, [edi + 8]
call fcn.00525740
movzx ecx, word [esp + 0x54]
sub ecx, eax
add ecx, ebp
push ecx
mov ecx, ebx
call fcn.004e2370
mov ecx, dword [esi + 0x304]
mov edx, dword [ebx]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], edx
call fcn.00525740
mov ebx, dword [esp + 0x30]
mov ecx, eax
mov eax, edx
mov dword [esp + 0x1c], eax
movzx eax, word [esp + 0x50]
cdq
add eax, ebp
adc edx, ebx
sub eax, ecx
mov ecx, dword [esp + 0x1c]
sbb edx, ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x24]
push eax
push edx
call fcn.00525840
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x2c], esp
mov dword [esp + 0x1c], 0
mov dword [eax], edi
call fcn.00524990
lea ecx, [esp + 0x18]
mov dword [esp + 0x98], 0xffffffff
call fcn.004e21b0
mov ebp, dword [esp + 0x2c]
movzx eax, word [esp + 0x50]
mov esi, dword [esi + 0x304]
mov edi, dword [esi]
cdq
add eax, ebp
adc edx, ebx
push edx
push eax
mov eax, dword [edi + 0xc]
mov ecx, esi
call eax
xor eax, eax
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret 8