Function at 0x45da40
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov ecx, 4
push 0
push 0
dec ecx
jne 0x45da48
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x45dd73
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x154], 0
jne 0x45da9c
mov dl, 1
mov eax, dword [0x43ed9c]
call fcn.00448f90
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 0x45da97
sub edx, 0xffffffc0
call fcn.0040a2d0
mov eax, esi
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 0x154]
call fcn.0040a2d0
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x174], 0
je 0x45dd3a
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x154]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x45dd3a
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 0x154]
call fcn.0040a2d0
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 0x154]
mov ecx, 0x45dd84
call fcn.0040a2fc
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.0045d84c
pop ecx
lea ecx, [ebp - 0x14]
mov edx, 0x45dda0
mov eax, dword [ebp - 0xc]
call fcn.00447814
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call fcn.0040f6d0
test eax, eax
jle 0x45dbcf
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
xor eax, eax
push ebp
push 0x45dbb9
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.0040f708
mov eax, dword [0x4bdd9c]
call fcn.00408a58
mov esi, eax
test esi, esi
jl 0x45dbaf
inc esi
xor ebx, ebx
mov edi, ebx
add edi, edi
add edi, edi
add edi, edi
sub edi, ebx
mov eax, dword [0x4bdd9c]
mov eax, dword [eax + edi*4]
mov edx, dword [ebp - 0x10]
call fcn.0040e1ac
test al, al
je 0x45dbab
mov eax, dword [0x4bdd9c]
cmp byte [eax + edi*4 + 0x18], 0
je 0x45dbaf
push ebp
mov eax, dword [0x4bdd9c]
mov eax, dword [eax + edi*4]
mov edx, 0x45ddb4
call fcn.0045d150
pop ecx
jmp 0x45dbaf
inc ebx
dec esi
jne 0x45db6b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dbc3
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x45db39
mov eax, dword [ebp - 0xc]
call fcn.00444a1c
test al, al
je 0x45dbf8
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x13c], 0
je 0x45dbf8
push ebp
mov edx, 0x45ddb4
mov eax, 0x45dddc
call fcn.0045d150
pop ecx
mov eax, dword [ebp - 0xc]
call fcn.00444a3c
test al, al
je 0x45dc21
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x13c], 0
je 0x45dc21
push ebp
mov edx, 0x45ddb4
mov eax, 0x45ddf8
call fcn.0045d150
pop ecx
mov eax, dword [ebp - 0xc]
call fcn.00444a60
test al, al
je 0x45dc47
cmp dword [0x4b8694], 0
je 0x45dc47
push ebp
mov edx, 0x45ddb4
mov eax, 0x45de10
call fcn.0045d150
pop ecx
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x45dc9d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
dec eax
test eax, eax
jl 0x45dc93
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 0x45dc70
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dca7
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0x10]
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x1c8], 0
jne 0x45dd3a
call sub.kernel32.dll_GetCurrentThreadId_1
cmp eax, dword [0x4b8f28]
jne 0x45dcfc
mov eax, 0xfa
call fcn.00435cf0
test al, al
jne 0x45dcfc
mov eax, dword [ebp - 0xc]
add eax, 0x1ac
push eax
push 0
mov eax, dword [ebp - 0xc]
push eax
push fcn.0045c8b8
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 0x45dd32
mov eax, dword [ebp - 0xc]
call fcn.00443e88
test al, al
je 0x45dd27
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.0045c8b8
jmp 0x45dd3a
push 1
push eax
call sub.kernel32.dll_SetThreadPriority
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45dd7a
lea eax, [ebp - 0x24]
call fcn.0040a2b8
lea eax, [ebp - 0x18]
call fcn.0040a2b8
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00406e54
lea eax, [ebp - 4]
mov edx, dword [0x45d118]
call fcn.00408d3c
ret