Function at 0x3010e699
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x3002450c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xa0]
push edi
xor edi, edi
sub eax, edi
mov dword [ebp - 0x218], ebx
je 0x3010e6dc
dec eax
dec eax
je 0x3010e6d5
dec eax
je 0x3010e70c
push edi
push 0x35706561
call fcn.3010aa60
xor eax, eax
jmp 0x3010e93f
xor ecx, ecx
inc ecx
mov edx, 0x3027b030
xor eax, eax
lock cmpxchg dword [edx], ecx
sub eax, edi
je 0x3010e720
dec eax
je 0x3010e6d5
dec eax
je 0x3010e714
dec eax
je 0x3010e6ff
push edi
push 0x3375356f
jmp 0x3010e6d0
push 0x3027af90
push ebx
call fcn.3010e437
pop ecx
pop ecx
xor eax, eax
inc eax
jmp 0x3010e93f
mov dword [ebx + 0xa0], 2
jmp 0x3010e6d5
push esi
push 0x90
push edi
push 0x3027af94
mov dword [0x3027af90], edi
call sub.MSVCR80.dll_memset
lea eax, [ebp - 0x210]
push eax
mov dword [0x3027b02c], edi
mov dword [0x3027b028], edi
mov dword [0x3027b024], edi
call fcn.3010e1fa
add esp, 0x10
test eax, eax
jne 0x3010e772
cmp dword [ebp - 0x210], edi
je 0x3010e7df
mov dword [ebx + 0xa0], edi
mov dword [0x3027b030], edi
jmp 0x3010e7ee
push edi
push 0x3027b02c
push 0x3027b028
push 0x3027b024
call fcn.30110e05
call fcn.3012b66a
cmp dword [ebp + 0xc], edi
jne 0x3010e7af
lea ecx, [ebp - 0x220]
push ecx
push 0x4ec0
push eax
push 0x30005ee0
call fcn.3010e242
add esp, 0x10
test eax, eax
jne 0x3010e7df
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0x300064e8
call fcn.3010e3a0
add esp, 0xc
test eax, eax
je 0x3010e7df
lea eax, [ebp - 0x214]
push eax
push edi
call fcn.3010e113
test eax, eax
pop ecx
pop ecx
jne 0x3010e7f5
push 2
pop esi
mov dword [ebx + 0xa0], esi
mov dword [0x3027b030], esi
xor eax, eax
jmp 0x3010e93e
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 8
push edi
call ebx
mov esi, eax
cmp esi, edi
jne 0x3010e80d
xor ebx, ebx
jmp 0x3010e928
lea eax, [ebp - 0x20c]
push eax
call fcn.30123986
mov edi, eax
lea eax, [edi + edi + 2]
push eax
push 0
call ebx
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [esi], eax
je 0x3010e86e
inc edi
push edi
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.301255f4
mov eax, dword [ebp - 0x214]
mov dword [esi + 4], eax
lea eax, [ebp - 0x224]
push eax
xor edi, edi
push edi
push esi
push 0x3010e485
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, edi
mov dword [ebp - 0x210], eax
jne 0x3010e878
push dword [esi]
call ebx
push esi
call ebx
xor ebx, ebx
jmp 0x3010e926
push dword [ebp + 0x10]
mov dword [ebp - 0x214], edi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, edi
mov dword [ebp - 0x21c], eax
je 0x3010e8a8
xor ebx, ebx
cmp eax, 0x102
jne 0x3010e91a
push edi
push 0x33753570
call fcn.3010aa60
jmp 0x3010e91a
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x210]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x3010e918
mov eax, dword [0x3027b030]
cmp eax, edi
mov ebx, dword [ebp - 0x21c]
push 2
pop esi
jl 0x3010e901
cmp eax, 1
jle 0x3010e91a
cmp eax, esi
je 0x3010e8f3
cmp eax, 3
jne 0x3010e901
push 0x3027af90
push dword [ebp - 0x218]
call fcn.3010e437
pop ecx
pop ecx
jmp 0x3010e91a
mov eax, dword [ebp - 0x218]
mov dword [eax + 0xa0], esi
jmp 0x3010e91a
push edi
push 0x35706565
call fcn.3010aa60
mov eax, dword [ebp - 0x218]
mov dword [eax + 0xa0], esi
xor ebx, ebx
push dword [ebp - 0x210]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
cmp dword [ebp - 0x214], edi
je 0x3010e93c
push dword [ebp - 0x214]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.30136bd1
leave
ret