Function at 0x420ae0
Capabilities:
Create thread
Resume thread

Disassembly:
sub esp, 0xc
push ebp
push esi
mov esi, ecx
xor ebp, ebp
cmp dword [esi + 0x20], ebp
jne 0x420d16
push ebx
lea eax, [esi + 0x2cf4]
push edi
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push ebp
call ebx
push 0x1f4
call ebx
push ebp
call ebx
mov eax, dword [esi + 0x2cbc]
mov dword [esp + 0x10], ebp
mov edi, dword [eax]
cmp edi, eax
je 0x420b5f
mov dword [esp + 0x10], 1
mov ebx, dword [edi + 8]
test ebx, ebx
mov ebp, dword [ebx + 0x2218]
je 0x420b4d
mov ecx, ebx
call fcn.00408320
push ebx
call fcn.00451f5e
add esp, 4
mov edi, dword [edi]
mov eax, dword [esi + 0x2cbc]
cmp edi, eax
jne 0x420b30
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x2cbc]
lea edi, [esi + 0x2cb8]
push eax
mov ecx, dword [eax]
lea eax, [esp + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.004225b0
mov eax, dword [esi + 0x2cb4]
test eax, eax
jne 0x420cb8
mov ecx, esi
call fcn.004232d0
mov eax, dword [esi + 0x2cb0]
lea ecx, [esi + 0x2cac]
push eax
mov edx, dword [eax]
push edx
lea edx, [esp + 0x20]
push edx
call fcn.004225b0
mov eax, dword [edi + 4]
push eax
mov ecx, dword [eax]
lea eax, [esp + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.004225b0
mov eax, dword [esi + 0x2cc8]
lea ecx, [esi + 0x2cc4]
push eax
mov edx, dword [eax]
push edx
lea edx, [esp + 0x20]
push edx
call fcn.004225b0
mov eax, dword [esi + 0x1574]
xor edi, edi
cmp eax, edi
je 0x420c02
push edi
push edi
push 0x12
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x5a4
jne 0x420c02
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
call ebx
mov eax, dword [0x485b10]
cmp eax, edi
je 0x420c21
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x485b10], edi
mov dword [0x485b14], edi
cmp dword [esp + 0x10], edi
je 0x420cae
test ebp, ebp
je 0x420cae
mov eax, dword [0x481bac]
test eax, eax
je 0x420c59
lea eax, [esp + 0x18]
push eax
push 4
push esi
push 0x4244c0
push 0
push 0
call fcn.0045233c
mov edi, eax
add esp, 0x18
test edi, edi
je 0x420cae
jmp 0x420c81
mov eax, dword [0x481ba4]
test eax, eax
je 0x420cae
lea ecx, [esp + 0x18]
push ecx
push 4
push esi
push 0x424140
push 0
push 0
call fcn.0045233c
mov edi, eax
add esp, 0x18
test edi, edi
je 0x420c9a
push 0xfffffffffffffff1
push edi
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push edi
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x420cae
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47356c
call fcn.00446e00
add esp, 8
mov eax, dword [esi + 0x2cb4]
test eax, eax
je 0x420d09
mov eax, dword [esi + 0x2cb0]
mov ebx, dword [eax]
cmp ebx, eax
je 0x420d01
mov edi, dword [ebx + 8]
mov eax, dword [edi + 0x2074]
test eax, eax
je 0x420cf5
mov eax, dword [edi + 0x21fc]
test eax, eax
jne 0x420cf5
mov ecx, edi
call fcn.00408850
test eax, eax
je 0x420cf5
mov ecx, edi
call fcn.00408c10
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [ebx]
mov eax, dword [esi + 0x2cb0]
cmp ebx, eax
jne 0x420cc4
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop ebx
pop esi
pop ebp
add esp, 0xc
ret