Function at 0x460874
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov ecx, 4
push 0
push 0
dec ecx
jne 0x46087c
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x460ba7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x154], 0
jne 0x4608d0
mov dl, 1
mov eax, dword [0x4448ac]
call fcn.0044cd78
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, 0x154
mov edx, ebx
test edx, edx
je 0x4608cb
sub edx, 0xffffffc0
call fcn.00408d2c
mov eax, esi
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 0x154]
call fcn.00408d2c
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x174], 0
je 0x460b6e
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x154]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x460b6e
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 0x154]
call fcn.00408d2c
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 0x154]
mov ecx, 0x460bb8
call fcn.00408d58
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x18]
xor eax, eax
mov dword [ebp - 8], eax
push ebp
call fcn.00460680
pop ecx
lea ecx, [ebp - 0x14]
mov edx, 0x460bd4
mov eax, dword [ebp - 0xc]
call fcn.0044b648
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call fcn.0041c99c
test eax, eax
jle 0x460a03
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
xor eax, eax
push ebp
push 0x4609ed
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov cl, 0x7c
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
call fcn.0041ca60
mov eax, dword [0x5def24]
call fcn.00408258
mov esi, eax
test esi, esi
jl 0x4609e3
inc esi
xor ebx, ebx
mov edi, ebx
add edi, edi
add edi, edi
add edi, edi
sub edi, ebx
mov eax, dword [0x5def24]
mov eax, dword [eax + edi*4]
mov edx, dword [ebp - 0x10]
call fcn.0041ad8c
test al, al
je 0x4609df
mov eax, dword [0x5def24]
cmp byte [eax + edi*4 + 0x18], 0
je 0x4609e3
push ebp
mov eax, dword [0x5def24]
mov eax, dword [eax + edi*4]
mov edx, 0x460be8
call fcn.0045ff88
pop ecx
jmp 0x4609e3
inc ebx
dec esi
jne 0x46099f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4609f7
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x46096d
mov eax, dword [ebp - 0xc]
call fcn.0044883c
test al, al
je 0x460a2c
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x13c], 0
je 0x460a2c
push ebp
mov edx, 0x460be8
mov eax, 0x460c10
call fcn.0045ff88
pop ecx
mov eax, dword [ebp - 0xc]
call fcn.0044885c
test al, al
je 0x460a55
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x13c], 0
je 0x460a55
push ebp
mov edx, 0x460be8
mov eax, 0x460c2c
call fcn.0045ff88
pop ecx
mov eax, dword [ebp - 0xc]
call fcn.00448880
test al, al
je 0x460a7b
cmp dword [0x5d07f0], 0
je 0x460a7b
push ebp
mov edx, 0x460be8
mov eax, 0x460c44
call fcn.0045ff88
pop ecx
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x460ad1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
dec eax
test eax, eax
jl 0x460ac7
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax + edx*8 + 4]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov edx, dword [eax + edx*8]
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0x28]
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x460aa4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460adb
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0x10]
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x1c8], 0
jne 0x460b6e
call sub.KERNEL32.DLL_GetCurrentThreadId_1
cmp eax, dword [0x5d1080]
jne 0x460b30
mov eax, 0xfa
call fcn.00440294
test al, al
jne 0x460b30
mov eax, dword [ebp - 0xc]
add eax, 0x1ac
push eax
push 0
mov eax, dword [ebp - 0xc]
push eax
push fcn.0045f720
push 0
push 0
call sub.KERNEL32.DLL_CreateThread_1
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x1a8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x1a8]
test eax, eax
jne 0x460b66
mov eax, dword [ebp - 0xc]
call fcn.00447ca8
test al, al
je 0x460b5b
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x1b4]
mov cl, 1
xor edx, edx
mov ebx, dword [eax]
call dword [ebx + 0x34]
mov eax, dword [ebp - 0xc]
push eax
call fcn.0045f720
jmp 0x460b6e
push 1
push eax
call sub.KERNEL32.DLL_SetThreadPriority
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x460bae
lea eax, [ebp - 0x24]
call fcn.00408d14
lea eax, [ebp - 0x18]
call fcn.00408d14
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00405d00
lea eax, [ebp - 4]
mov edx, dword [0x45ff54]
call fcn.00408538
ret