Function at 0x113e310
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 0x113e5b6
push edi
lea edi, [esi + 5]
jmp 0x113e340
cmp dword [eax], 2
jne 0x113e350
cmp dword [eax + 0x10], edi
jne 0x113e350
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0x30]
cmp eax, esi
jne 0x113e340
cmp dword [ebp - 4], esi
je 0x113e5ab
mov eax, edx
mov dword [ebp - 0xc], esi
mov ecx, 3
cmp eax, esi
je 0x113e38c
mov edi, edi
cmp dword [eax], 9
jne 0x113e385
cmp dword [eax + 0x10], ecx
jne 0x113e385
mov edi, dword [eax + 0x18]
mov dword [ebp - 0xc], edi
mov edi, 5
mov eax, dword [eax + 0x30]
cmp eax, esi
jne 0x113e370
mov eax, edx
mov dword [ebp - 8], esi
cmp eax, esi
je 0x113e3ab
cmp dword [eax], ecx
jne 0x113e3a4
cmp dword [eax + 0x10], edi
jne 0x113e3a4
mov edx, dword [eax + 0x2c]
mov dword [ebp - 8], edx
mov eax, dword [eax + 0x30]
cmp eax, esi
jne 0x113e395
push 0xa
push ebx
call fcn.01063f20
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 0x2fb50]
lea edi, [esi + 0x2fb50]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
cmp ecx, eax
jne 0x113e3d7
mov eax, dword [edi + 4]
cmp eax, edx
je 0x113e46b
lea ecx, [ebp + 0xc]
push ecx
push 0
push 0
push 8
lea edx, [ebp - 0x14]
push edx
push 0x226428
push esi
call fcn.01096ff0
mov eax, dword [ebp - 0x10]
mov ebx, dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
push eax
lea ecx, [esi + 0x2fb54]
push ecx
call ebx
mov edx, dword [ebp - 0x14]
push edx
push edi
call ebx
mov eax, dword [0x119f3f0]
push eax
push esi
call fcn.010fc090
mov ebx, eax
test ebx, ebx
je 0x113e445
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push edx
push ebx
lea eax, [esi + 0x1335c]
push 0
push eax
call fcn.01110500
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.0112c950
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
test eax, eax
je 0x113e468
mov edx, dword [esi + 0x1c8]
push eax
call edx
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
cmp dword [eax + 0xa64], 0
jne 0x113e56a
cmp dword [eax + 0xa54], 0
jne 0x113e56a
test byte [edi], 1
je 0x113e56a
mov eax, dword [esi + 0x2fb54]
and eax, 0xff000000
cmp eax, 0x1000000
jne 0x113e56a
push 0xb
push ebx
call fcn.01063f60
mov ebx, eax
test ebx, ebx
je 0x113e56a
lea edx, [eax + 1]
jmp 0x113e4c0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x113e4c0
sub eax, edx
cmp eax, 0x14
jbe 0x113e56a
cmp dword [esi + 0x2fb28], 0
jne 0x113e56a
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x113e4e4
sub eax, edx
cmp eax, 0x3e7
jae 0x113e56a
mov edx, dword [esi + 0x2fb2c]
lea edi, [esi + 0x2fb2c]
test edx, edx
je 0x113e51b
push edx
call fcn.0102d5e0
cmp eax, 0x14
jbe 0x113e51b
push edx
call fcn.01062870
mov dword [edi], 0
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x113e520
sub eax, edx
push eax
push ebx
call fcn.010628f0
push eax
push edi
mov edi, dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
call edi
push 1
lea eax, [esi + 0x2fb28]
push eax
call edi
mov ecx, dword [esi + 0x35b0]
cmp dword [ecx + 0x214], 0
jne 0x113e56a
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov edx, dword [esi + 0x35b0]
push eax
add edx, 0x214
push edx
call edi
mov edi, dword [ebp - 8]
test edi, edi
je 0x113e5ab
push 0x1022f1c
push edi
call fcn.0102c870
test eax, eax
jne 0x113e58f
push 0x1022f10
push edi
call fcn.0102c870
test eax, eax
je 0x113e5ab
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
push eax
push ecx
push esi
call fcn.010644b0
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