Function at 0x113c290
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 8]
add ebx, 8
push esi
xor esi, esi
mov eax, edx
xor ecx, ecx
mov dword [ebp - 4], esi
mov dword [ebp + 8], ebx
cmp eax, esi
je 0x113c536
push edi
lea edi, [esi + 5]
jmp 0x113c2c0
cmp dword [eax], 2
jne 0x113c2d0
cmp dword [eax + 0x10], edi
jne 0x113c2d0
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0x30]
cmp eax, esi
jne 0x113c2c0
cmp dword [ebp - 4], esi
je 0x113c52b
mov eax, edx
mov dword [ebp - 0xc], esi
mov ecx, 3
cmp eax, esi
je 0x113c30c
mov edi, edi
cmp dword [eax], 9
jne 0x113c305
cmp dword [eax + 0x10], ecx
jne 0x113c305
mov edi, dword [eax + 0x18]
mov dword [ebp - 0xc], edi
mov edi, 5
mov eax, dword [eax + 0x30]
cmp eax, esi
jne 0x113c2f0
mov eax, edx
mov dword [ebp - 8], esi
cmp eax, esi
je 0x113c32b
cmp dword [eax], ecx
jne 0x113c324
cmp dword [eax + 0x10], edi
jne 0x113c324
mov edx, dword [eax + 0x2c]
mov dword [ebp - 8], edx
mov eax, dword [eax + 0x30]
cmp eax, esi
jne 0x113c315
push 0xa
push ebx
call fcn.01063520
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 0x2f748]
lea edi, [esi + 0x2f748]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
cmp ecx, eax
jne 0x113c357
mov eax, dword [edi + 4]
cmp eax, edx
je 0x113c3eb
lea ecx, [ebp + 0xc]
push ecx
push 0
push 0
push 8
lea edx, [ebp - 0x14]
push edx
push 0x226428
push esi
call fcn.01096090
mov eax, dword [ebp - 0x10]
mov ebx, dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
push eax
lea ecx, [esi + 0x2f74c]
push ecx
call ebx
mov edx, dword [ebp - 0x14]
push edx
push edi
call ebx
mov eax, dword [0x119d3f0]
push eax
push esi
call fcn.010fa660
mov ebx, eax
test ebx, ebx
je 0x113c3c5
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push edx
push ebx
lea eax, [esi + 0x13354]
push 0
push eax
call fcn.0110e840
add esp, 0x14
push ebx
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.DLL_HeapFree]
lea ecx, [ebp + 0xc]
push ecx
push 0
push esi
push fcn.0112a830
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
test eax, eax
je 0x113c3e8
mov edx, dword [esi + 0x1c0]
push eax
call edx
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
cmp dword [eax + 0xa64], 0
jne 0x113c4ea
cmp dword [eax + 0xa54], 0
jne 0x113c4ea
test byte [edi], 1
je 0x113c4ea
mov eax, dword [esi + 0x2f74c]
and eax, 0xff000000
cmp eax, 0x1000000
jne 0x113c4ea
push 0xb
push ebx
call fcn.01063560
mov ebx, eax
test ebx, ebx
je 0x113c4ea
lea edx, [eax + 1]
jmp 0x113c440
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x113c440
sub eax, edx
cmp eax, 0x14
jbe 0x113c4ea
cmp dword [esi + 0x2f720], 0
jne 0x113c4ea
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x113c464
sub eax, edx
cmp eax, 0x3e7
jae 0x113c4ea
mov edx, dword [esi + 0x2f724]
lea edi, [esi + 0x2f724]
test edx, edx
je 0x113c49b
push edx
call fcn.0102ce80
cmp eax, 0x14
jbe 0x113c49b
push edx
call fcn.01063ab0
mov dword [edi], 0
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x113c4a0
sub eax, edx
push eax
push ebx
call fcn.01061ef0
push eax
push edi
mov edi, dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
call edi
push 1
lea eax, [esi + 0x2f720]
push eax
call edi
mov ecx, dword [esi + 0x35a8]
cmp dword [ecx + 0x214], 0
jne 0x113c4ea
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov edx, dword [esi + 0x35a8]
push eax
add edx, 0x214
push edx
call edi
mov edi, dword [ebp - 8]
test edi, edi
je 0x113c52b
push 0x1022c7c
push edi
call fcn.0102c110
test eax, eax
jne 0x113c50f
push 0x1022c70
push edi
call fcn.0102c110
test eax, eax
je 0x113c52b
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
push eax
push ecx
push esi
call fcn.01063ad0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret 8