Function at 0x445f40
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x44626d
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4dc084
call sub.kernel32.dll_EnterCriticalSection_1
mov edx, ebx
mov eax, 0x446288
call fcn.00408068
test eax, eax
jle 0x44619f
xor eax, eax
mov dword [0x4dc068], eax
xor eax, eax
mov dword [0x4dc06c], eax
xor eax, eax
mov dword [0x4dc070], eax
xor eax, eax
mov dword [0x4dc074], eax
xor eax, eax
mov dword [0x4dc078], eax
xor eax, eax
mov dword [0x4dc07c], eax
mov eax, 0x4dc080
xor ecx, ecx
mov edx, 0x400
call fcn.00407004
mov eax, 0x4dc080
mov edx, ebx
mov ecx, 0
call fcn.0040775c
lea eax, [ebp - 8]
mov edx, dword [0x4dc080]
call fcn.00407734
mov edx, dword [ebp - 8]
mov eax, 0x446288
call fcn.00408068
mov dword [0x4dc068], eax
cmp dword [0x4dc068], 0
jle 0x44619f
lea eax, [ebp - 0xc]
mov edx, dword [0x4dc080]
call fcn.00407734
mov edx, dword [ebp - 0xc]
mov eax, 0x4462f0
call fcn.00408068
mov dword [0x4dc06c], eax
cmp dword [0x4dc06c], 0
jle 0x44619f
mov ecx, dword [0x4dc06c]
add ecx, 0xc
mov eax, 0x4dc080
mov edx, 1
call fcn.00406fb8
lea eax, [ebp - 0x10]
mov edx, dword [0x4dc080]
call fcn.00407734
mov edx, dword [ebp - 0x10]
mov eax, 0x446318
call fcn.00408068
mov dword [0x4dc070], eax
mov eax, dword [0x4d6234]
push eax
mov ecx, dword [0x4dc070]
dec ecx
mov edx, 1
mov eax, dword [0x4dc080]
call fcn.00406f54
lea eax, [ebp - 0x14]
mov edx, dword [0x4dc080]
call fcn.00407734
mov edx, dword [ebp - 0x14]
mov eax, 0x446318
call fcn.00408068
mov dword [0x4dc074], eax
cmp dword [0x4dc074], 0
jle 0x44619f
mov ecx, dword [0x4dc074]
add ecx, 0xb
mov eax, 0x4dc080
mov edx, 1
call fcn.00406fb8
lea eax, [ebp - 0x18]
mov edx, dword [0x4dc080]
call fcn.00407734
mov edx, dword [ebp - 0x18]
mov eax, 0x446340
call fcn.00408068
mov dword [0x4dc078], eax
lea eax, [ebp - 0x1c]
mov edx, dword [0x4dc080]
call fcn.00407734
mov edx, dword [ebp - 0x1c]
mov eax, 0x446368
call fcn.00408068
mov dword [0x4dc07c], eax
cmp dword [0x4dc078], 0x19
jg 0x44610f
cmp dword [0x4dc078], 0
jge 0x446119
mov dword [0x4dc078], 0x19
mov eax, dword [0x4d6234]
add eax, 4
push eax
mov ecx, dword [0x4dc078]
dec ecx
mov edx, 1
mov eax, dword [0x4dc080]
call fcn.00406f54
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0x444ed0
push 0
push 0
call sub.kernel32.dll_CreateThread_1
mov eax, dword [0x4d6234]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x446165
sub eax, 4
mov eax, dword [eax]
cmp eax, 5
jge 0x44619f
mov eax, dword [0x4d6234]
add eax, 4
push eax
mov ecx, dword [0x4dc07c]
dec ecx
mov edx, 1
mov eax, dword [0x4dc080]
call fcn.00406f54
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0x444ed0
push 0
push 0
call sub.kernel32.dll_CreateThread_1
xor eax, eax
push ebp
push 0x44623e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x446390
call fcn.00413550
test al, al
je 0x4461f1
mov edx, 0x446390
mov eax, 0x4dc09c
call fcn.004049dc
mov eax, 0x4dc09c
call fcn.00404774
call fcn.00404414
mov edx, ebx
mov eax, 0x4dc09c
call fcn.00407f68
call fcn.00404ebc
call fcn.00404414
jmp 0x446225
mov edx, 0x446390
mov eax, 0x4dc09c
call fcn.004049dc
mov eax, 0x4dc09c
call fcn.00404768
call fcn.00404414
mov edx, ebx
mov eax, 0x4dc09c
call fcn.00407f68
call fcn.00404ebc
call fcn.00404414
mov eax, 0x4dc09c
call fcn.00404aa0
call fcn.00404414
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x446248
push 0x4dc084
call sub.kernel32.dll_LeaveCriticalSection_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x446274
lea eax, [ebp - 0x1c]
mov edx, 6
call fcn.00407518
ret