Function at 0x4ddb70
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 0
jne 0x4ddb8a
or eax, 0xffffffff
jmp 0x4dddbc
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx + 0x46a4], 0
je 0x4dddb9
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x3c]
add edx, 0x177c
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], 0
jmp 0x4ddbc3
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x46a8]
jge 0x4ddc3f
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x46a4], 0
je 0x4ddc3f
mov ecx, dword [ebp - 4]
shl ecx, 5
mov edx, dword [ebp - 0x3c]
cmp dword [edx + ecx + 0x46ac], 0
jne 0x4ddc3a
push 0x20
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 4]
shl ecx, 5
mov edx, dword [ebp - 0x3c]
lea eax, [edx + ecx + 0x46ac]
push eax
call fcn.005289e0
add esp, 0xc
mov ecx, dword [ebp - 4]
shl ecx, 5
mov edx, dword [ebp - 0x3c]
mov dword [edx + ecx + 0x46ac], 2
mov eax, dword [ebp - 0x3c]
add eax, 0x177c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 4]
jmp 0x4dddbc
jmp 0x4ddbba
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x46a8]
jne 0x4ddd9c
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x46a8], 0x5df
jge 0x4ddd9c
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0x28
push 0x28
lea ecx, [ebp - 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call sub.PSAPI.DLL_GetProcessMemoryInfo
test eax, eax
je 0x4ddccc
mov edx, dword [ebp - 0x20]
xor eax, eax
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x48], ecx
and dword [ebp - 0x40], 0x7fffffff
fild qword [ebp - 0x44]
and dword [ebp - 0x48], 0x80000000
mov dword [ebp - 0x4c], 0
fild qword [ebp - 0x4c]
fchs
faddp st(1)
fcomp qword [0x58ee58]
fnstsw ax
test ah, 5
jp 0x4ddccc
mov dword [ebp - 0x30], 1
cmp dword [ebp - 0x30], 0
je 0x4ddd9c
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x46a8]
add eax, 0xa
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x46a8], eax
mov edx, dword [ebp - 0x3c]
cmp dword [edx + 0x46a8], 0x5df
jle 0x4ddd07
mov eax, dword [ebp - 0x3c]
mov dword [eax + 0x46a8], 0x5df
mov dword [ebp - 0x34], 0
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x34], ecx
jmp 0x4ddd1f
mov edx, dword [ebp - 0x34]
add edx, 1
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [eax + 0x46a8]
jge 0x4ddd90
mov dword [ebp - 0x38], 0
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + edx*8 + 0x17ac], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
mov dword [eax + edx*8 + 0x17b0], ecx
lea edx, [ebp - 0x38]
push edx
push 0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
lea edx, [ecx + eax*8 + 0x17ac]
push edx
push 0x4dd9b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx + eax*4], 0
jne 0x4ddd8e
jmp 0x4ddd90
jmp 0x4ddd16
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov dword [edx + 0x46a8], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 0x177c
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4ddb8a
or eax, 0xffffffff
mov esp, ebp
pop ebp
ret 4