Function at 0x10fddc0
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
lea edx, [edi + 0x1f8]
add ecx, 0x1f8
mov ebx, 0x1bc
mov eax, edx
sub ecx, edx
mov esi, dword [eax + ecx]
cmp esi, dword [eax]
mov esi, dword [ebp + 8]
jne 0x10fddfe
sub ebx, 4
add eax, 4
cmp ebx, 4
jae 0x10fdde4
jmp 0x10fde8a
mov eax, dword [edi + 0xcc]
mov dword [esi + 0x9cc], eax
mov ecx, dword [edx]
mov dword [esi + 0x9d0], ecx
mov edx, dword [edi + 0x1fc]
mov dword [esi + 0x9d4], edx
mov eax, dword [edi + 0x200]
mov dword [esi + 0x9d8], eax
lea ecx, [edi + 0x204]
lea edx, [edi + 0x286]
lea eax, [edi + 0x308]
mov dword [esi + 0x9dc], ecx
mov dword [esi + 0x9e0], edx
mov dword [esi + 0x9e4], eax
lea ebx, [esi + 0x964]
mov dword [ebp + 0x10], 7
jmp 0x10fde60
mov eax, dword [ebx]
test eax, eax
je 0x10fde81
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], 0
je 0x10fde81
mov ecx, eax
mov edx, dword [ecx + 8]
lea eax, [esi + 0x9cc]
push eax
mov eax, dword [edx + 0x1c]
push ecx
call eax
add ebx, 4
sub dword [ebp + 0x10], 1
jne 0x10fde60
mov ecx, dword [esi]
mov edx, dword [ecx + 0x23110]
cmp dword [edx + 0x78], 0
je 0x10fdf15
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x438]
mov edx, dword [ecx + 0x438]
shr eax, 4
shr edx, 4
and eax, 1
and edx, 1
cmp edx, eax
je 0x10fdebf
push eax
push edi
push esi
call fcn.010e1aa0
mov eax, dword [edi + 0x154]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x154], eax
je 0x10fded9
push ecx
push edi
push eax
push esi
call fcn.010e19d0
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x438]
mov edx, dword [ecx + 0x438]
shr eax, 5
shr edx, 5
and eax, 1
and edx, 1
cmp edx, eax
je 0x10fdf15
mov ecx, dword [esi]
cmp dword [ecx + 0x26a94], 0x1771
push eax
jb 0x10fdf0f
push esi
call fcn.010a1b40
jmp 0x10fdf15
push ecx
call fcn.010cecc0
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0xc8]
mov edx, dword [ecx + 0xc8]
shr eax, 0x19
shr edx, 0x19
and eax, 1
and edx, 1
cmp edx, eax
je 0x10fdf3d
push ecx
push edi
push eax
push esi
call fcn.010d7510
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xcf4]
cmp ecx, dword [edi + 0xcf4]
je 0x10fdf82
mov edx, dword [esi]
add edx, 0x21ff8
push edx
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
mov ebx, dword [esi]
lea eax, [ebp + 0x10]
push eax
push 0
push esi
push fcn.010fdd70
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
test eax, eax
je 0x10fdf82
mov ecx, dword [ebx + 0x1bc]
push eax
call ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xcc4]
cmp eax, dword [edi + 0xcc4]
je 0x10fdfc7
mov ecx, dword [esi]
add ecx, 0x21ff8
push ecx
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
mov ebx, dword [esi]
lea edx, [ebp + 0x10]
push edx
push 0
push esi
push fcn.010fdd70
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
test eax, eax
je 0x10fdfc7
push eax
mov eax, dword [ebx + 0x1bc]
call eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x438]
mov edx, dword [ecx + 0x438]
and eax, 1
and edx, 1
cmp edx, eax
je 0x10fdffd
mov ecx, dword [esi]
push 0
push 0
push eax
push 0x1001984
lea eax, [edi + 0x43c]
push eax
push 0
push 1
push ecx
call fcn.010953f0
mov edx, dword [ebp + 0xc]
mov eax, dword [edi + 0x438]
mov ecx, dword [edx + 0x438]
shr eax, 3
shr ecx, 3
and eax, 1
and ecx, 1
cmp ecx, eax
je 0x10fe024
push eax
push edi
push esi
call fcn.010956a0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xbf0]
cmp eax, dword [edi + 0xbf0]
je 0x10fe07f
mov ecx, dword [esi]
push 1
add ecx, 0x2714c
push ecx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
test eax, eax
jne 0x10fe07f
mov ebx, dword [esi]
mov eax, dword [ebx + 0x23110]
test eax, eax
je 0x10fe07f
cmp dword [eax + 0x78], 0
je 0x10fe07f
lea edx, [ebp + 0x10]
push edx
push 0
push esi
push 0x10fb430
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
test eax, eax
je 0x10fe07f
push eax
mov eax, dword [ebx + 0x1bc]
call eax
mov eax, dword [edi + 0x6a8]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x6a8], eax
je 0x10fe099
push ecx
push edi
push eax
push esi
call fcn.010d7460
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc90]
xor edx, dword [edi + 0xc90]
test dl, 0x20
je 0x10fe0ed
test byte [edi + 0xc90], 0x20
je 0x10fe0be
push esi
call fcn.010d7930
jmp 0x10fe0ed
mov eax, dword [esi]
mov ebx, dword [eax + 0x31d10]
test ebx, ebx
je 0x10fe0ed
cmp ebx, 0xffffffff
je 0x10fe0ed
push 0
push 2
push ebx
call dword [sym.imp.KERNEL32.DLL_SetHandleInformation]
push ebx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov ecx, dword [esi]
mov dword [ecx + 0x31d10], 0
mov eax, dword [edi + 0x73c]
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x73c], eax
je 0x10fe109
cmp eax, 3
jne 0x10fe109
push esi
call fcn.010e2110
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xcc4]
cmp ecx, dword [edi + 0xcc4]
je 0x10fe14e
mov edx, dword [esi]
add edx, 0x21ff8
push edx
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
mov ebx, dword [esi]
lea eax, [ebp + 0x10]
push eax
push 0
push esi
push fcn.010fdd70
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
test eax, eax
je 0x10fe14e
mov ecx, dword [ebx + 0x1bc]
push eax
call ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x1b8]
xor eax, dword [edi + 0x1b8]
test al, 4
je 0x10fe18f
mov ecx, dword [edi + 0x1b8]
mov eax, dword [esi]
push 4
lea edx, [ebp + 0x10]
push edx
push 4
push 0x1011ea4
push 0x10100c8
shr ecx, 2
push DirectSoundEnumerateW
and ecx, 1
push eax
mov dword [ebp + 0x10], ecx
call fcn.010891e0
mov eax, dword [edi + 0x734]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x734], eax
je 0x10fe211
push 0
xor edx, edx
push 0x80
test eax, eax
mov eax, dword [esi]
push 3
setne dl
push 0
push 0
push 0xc0000000
mov dword [ebp + 0x10], eax
mov eax, dword [eax + 0x258]
push 0x100b554
lea edx, [edx*4 + 0x22e068]
mov dword [ebp - 4], edx
mov dword [ebp + 8], 0
call eax
mov ebx, eax
test ebx, ebx
je 0x10fe211
cmp ebx, 0xffffffff
je 0x10fe211
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x10]
push 0
lea ecx, [ebp + 8]
push ecx
mov ecx, dword [eax + 0x254]
push 0
push 0
push 0
push 0
push edx
push ebx
call ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x1bc]
push ebx
call eax
mov edi, dword [edi + 0x730]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x730], edi
je 0x10fe229
push edi
push esi
call fcn.0106dd80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc