Function at 0x1000c960
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10039383
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x100459c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x28]
mov al, byte [eax + 0x24]
mov dword [ebp - 0x4c], esi
test al, al
jne 0x1000cb5a
push 1
lea ebx, [esi + 0x2c]
push ebx
push esi
xor ecx, ecx
call fcn.1000cb80
test al, al
je 0x1000ca22
lea ecx, [ebp - 0x44]
xor edi, edi
push ecx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x48], edi
call fcn.10004290
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x38]
push ecx
mov dword [ebp - 4], edi
push ebx
mov dword [ebp - 0x34], edi
call fcn.1000cec0
mov byte [ebp - 0x2d], al
test al, al
je 0x1000c9f8
mov ecx, dword [ebp - 0x34]
cmp ecx, edi
je 0x1000c9f4
push ecx
push ebx
lea edi, [ebp - 0x44]
call fcn.1000d080
mov byte [ebp - 0x2d], al
test al, al
jne 0x1000ca02
mov edi, esi
call fcn.1000c850
mov al, byte [ebp - 0x2d]
mov ecx, dword [ebp - 0x38]
cmp dword [esi + 0x50], ecx
ja 0x1000ca13
cmp dword [esi + 0x4c], ecx
jb 0x1000ca13
test al, al
jne 0x1000ca29
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], 0xffffffff
call fcn.100043d0
xor al, al
jmp 0x1000cb5c
cmp ecx, 1
jne 0x1000ca13
lea ecx, [ebp - 0x2c]
lea eax, [ebp - 0x44]
call fcn.1000d610
push eax
lea ecx, [esi + 8]
mov byte [ebp - 4], 1
call fcn.10003ba0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.10001460
lea ecx, [ebp - 0x2c]
mov eax, ebx
call fcn.1000d830
mov byte [ebp - 4], 2
mov ecx, dword [esi + 0x28]
mov edx, eax
call fcn.1000dc30
test al, al
lea ecx, [ebp - 0x2c]
sete bl
mov byte [ebp - 4], 0
call fcn.10001460
test bl, bl
jne 0x1000ca13
mov ebx, dword [ebp - 0x3c]
xor eax, eax
call fcn.1000d720
xor ecx, ecx
mov eax, ebx
lea edx, [ebp - 0x44]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
push edx
lea ecx, [esi + 8]
call fcn.1000d630
push 2
lea edi, [esi + 0x24]
push edi
push esi
lea ecx, [ebp - 0x44]
call fcn.1000cb80
test al, al
je 0x1000ca13
mov ebx, dword [ebp - 0x3c]
xor eax, eax
mov dword [ebp - 0x34], ebx
call fcn.1000d720
mov eax, dword [ebp - 0x34]
xor ebx, ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
lea eax, [ebp - 0x44]
push eax
push esi
lea eax, [ebp - 0x34]
lea esi, [ebp - 0x38]
mov ecx, edi
call fcn.1000ce50
test al, al
je 0x1000ca13
cmp dword [ebp - 0x38], 2
jne 0x1000cb4b
cmp dword [ebp - 0x48], 1
jne 0x1000cb4b
mov edi, dword [ebp - 0x4c]
mov ecx, dword [edi + 4]
cmp ecx, ebx
je 0x1000cb09
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [edi + 4], ebx
push 0xc
call fcn.10022670
add esp, 4
mov dword [ebp - 0x4c], eax
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x1000cb28
push edi
mov esi, eax
call fcn.1000d0f0
jmp 0x1000cb2a
xor eax, eax
mov dword [edi + 4], eax
mov esi, dword [eax + 4]
mov edx, dword [esi + 4]
lea ecx, [esi + 0xc]
push ecx
push ebx
push edx
push 0x1000e0e0
push ebx
push ebx
call fcn.10022d28
add esp, 0x18
mov dword [esi + 8], eax
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], 0xffffffff
call fcn.100043d0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100223cc
mov esp, ebp
pop ebp
ret