Function at 0x40ce50
Capabilities:
Resume thread
Suspend thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
cmp byte [0x4fe0b8], 0
push ebx
push esi
push edi
jne 0x40ce6e
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword fs:[0x24]
mov dword [esp + 0x10], eax
cmp dword [0x4fda50], eax
je 0x40ce8c
push dword [0x4fda54]
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov ebx, dword [ebp + 8]
cmp byte [ebx], 0
jne 0x40ce98
xor edi, edi
jmp 0x40ced2
lea eax, [esp + 0xf]
mov ecx, 0x4fda88
push eax
push 3
lea eax, [esp + 0x1c]
push eax
push 0
push ebx
call fcn.0043eed0
mov edi, eax
test edi, edi
jne 0x40ced2
cmp byte [esp + 0xf], al
mov ecx, 0x4fda88
setne al
inc eax
push eax
push dword [esp + 0x18]
push edi
push ebx
call fcn.0043f410
mov edi, eax
cmp dword [ebp + 0xc], 0
mov cl, byte [edi + 0x17]
je 0x40cf81
cmp cl, 4
je 0x40d0db
push 0x14
push dword [0x4fb81c]
call fcn.004c4e40
mov esi, eax
add esp, 8
test esi, esi
je 0x40d0cb
mov eax, dword [esp + 0x10]
mov dword [0x4fb81c], esi
cmp dword [0x4fda50], eax
je 0x40cf26
push dword [0x4fda54]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov esi, dword [0x4fb81c]
mov eax, dword [0x4f898c]
cmp byte [eax + 0xd5], 0x44
jne 0x40cf4b
push 0xa
push esi
push 0
push edi
call fcn.004c3f77
add esp, 0x10
mov esi, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ebx, [esi + 1]
mov byte [esi], 0x30
mov byte [ebx], 0x78
inc ebx
push 0x10
push ebx
push 0
push edi
call fcn.004c3f77
mov eax, dword [0x4f898c]
add esp, 0x10
cmp byte [eax + 0xd5], 0x48
jne 0x40cf78
push ebx
call dword [sym.imp.USER32.dll_CharUpperA]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp cl, 4
je 0x40cfa1
test cl, cl
jne 0x40cf8f
mov eax, dword [edi + 0xc]
jmp 0x40cf91
mov eax, edi
test byte [eax + 0x15], 0xa
jne 0x40cfa1
cmp dword [eax + 0xc], 0
je 0x40d0db
mov eax, dword [edi + 8]
cmp byte [eax], 0
jne 0x40d0a2
mov eax, dword [edi + 0x10]
cmp cl, 4
jne 0x40cfbf
push ebx
push 0
call eax
add esp, 8
jmp 0x40cfc6
test eax, eax
jne 0x40cfc6
mov eax, dword [edi + 0xc]
add eax, 0x100
push eax
push dword [0x4fb81c]
call fcn.004c4e40
mov esi, eax
add esp, 8
test esi, esi
je 0x40d0cb
mov al, byte [edi + 0x17]
mov dword [0x4fb81c], esi
cmp al, 4
jne 0x40d01f
mov eax, dword [edi + 0x10]
push ebx
push esi
cmp eax, 0x464fb0
jne 0x40d12f
add dword [0x4f898c], 0xe8
call eax
add esp, 8
sub dword [0x4f898c], 0xe8
jmp 0x40d134
test al, al
jne 0x40d02d
mov eax, dword [edi + 0xc]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
jmp 0x40d03a
cmp al, 1
jne 0x40d134
mov edx, dword [edi]
mov ecx, dword [edi + 4]
mov eax, dword [0x4f898c]
cmp byte [eax + 0xd5], 0x44
jne 0x40d05a
push 0xa
push esi
push ecx
push edx
call fcn.004c3f77
add esp, 0x10
jmp 0x40d134
test ecx, ecx
jg 0x40d06f
jl 0x40d064
test edx, edx
jae 0x40d06f
mov byte [esi], 0x2d
inc esi
neg edx
adc ecx, 0
neg ecx
mov word [esi], 0x7830
add esi, 2
push 0x10
push esi
push ecx
push edx
call fcn.004c3f77
mov eax, dword [0x4f898c]
add esp, 0x10
cmp byte [eax + 0xd5], 0x48
jne 0x40d134
push esi
call dword [sym.imp.USER32.dll_CharUpperA]
jmp 0x40d134
cmp cl, 4
jne 0x40d0b4
mov eax, dword [edi + 0x10]
push ebx
push 0
call eax
add esp, 8
jmp 0x40d0b8
mov eax, dword [edi + 0xc]
inc eax
push eax
push dword [0x4fb81c]
call fcn.004c4e40
add esp, 8
test eax, eax
jne 0x40d0ff
push ebx
push str.Out_of_memory.
mov ecx, 0x4fda88
call fcn.0044dd10
mov eax, dword [esp + 0x10]
cmp dword [0x4fda50], eax
je 0x40d0f3
push dword [0x4fda54]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, 0x4e3371
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cl, byte [edi + 0x17]
mov dword [0x4fb81c], eax
test cl, cl
jne 0x40d116
mov ecx, dword [edi + 0xc]
push eax
call fcn.004b0610
jmp 0x40d134
cmp cl, 1
jne 0x40d125
push eax
mov ecx, edi
call fcn.004b0610
jmp 0x40d134
cmp cl, 4
jne 0x40d134
push ebx
push eax
mov eax, dword [edi + 0x10]
call eax
add esp, 8
mov eax, dword [esp + 0x10]
cmp dword [0x4fda50], eax
je 0x40d14c
push dword [0x4fda54]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, dword [0x4fb81c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret