Function at 0x421250
Capabilities:
Resolve function by parsing pe exports
Resume thread
Suspend thread
Terminate process

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x481458
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp dword [esi + 0x294], ebx
je 0x421632
cmp dword [esi + 0x544], ebx
jne 0x4212ac
cmp dword [esi + 0x4f8], ebx
je 0x421632
mov edi, dword [sym.imp.USER32.dll_PeekMessageA]
push 1
push ebx
push ebx
lea eax, [esp + 0x28]
push ebx
push eax
call edi
cmp dword [esi + 0x294], ebx
jne 0x421296
jmp 0x4212e7
mov edx, dword [esi + 0x290]
mov edi, dword [edx + 0x2c]
push edi
mov dword [esp + 0x18], edi
call dword [sym.imp.KERNEL32.dll_SuspendThread]
cmp eax, 0xffffffff
jne 0x42131b
cmp dword [esi + 0x294], ebx
je 0x4212e7
mov edi, dword [sym.imp.USER32.dll_PeekMessageA]
push 1
push ebx
push ebx
lea eax, [esp + 0x28]
push ebx
push eax
call edi
cmp dword [esi + 0x294], ebx
jne 0x4212d3
mov ecx, dword [esi + 0x298]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esi + 0x294], ebx
mov dword [esi + 0x298], ebx
mov dword [esi + 0x290], ebx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
add esp, 0x74
ret
mov eax, dword [esi + 0x4f4]
xor ebp, ebp
cmp eax, 0xffffffff
jne 0x4213a1
cmp dword [esi + 0x53c], ebx
jne 0x4213a1
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebp, eax
push edi
mov dword [esi + 0x4f4], ebp
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov edx, dword [esi + 0x504]
mov dword [esi + 0x518], 1
push edx
mov dword [esi + 0x528], 3
call dword [sym.imp.KERNEL32.dll_SetEvent]
cmp dword [esi + 0x4f4], ebx
je 0x4213a1
mov edi, dword [sym.imp.USER32.dll_PeekMessageA]
cmp dword [esi + 0x53c], ebx
jne 0x4213a1
cmp dword [esi + 0x4f8], ebx
jne 0x421447
push 1
push ebx
push ebx
lea eax, [esp + 0x28]
push ebx
push eax
call edi
cmp dword [esi + 0x4f4], ebx
jne 0x421379
cmp dword [esi + 0x4f8], ebx
jne 0x421447
mov ecx, dword [esi + 0x544]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
jne 0x421447
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp edi, 5
jne 0x4213e4
mov edx, dword [esi + 0x1a8]
push ebx
push edx
call fcn.00446780
add esp, 8
test eax, eax
je 0x421447
push edi
lea eax, [esp + 0x3c]
push 0x4a67e0
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea ecx, [esp + 0x38]
push ebx
push ebx
push ecx
call sub.MFC42.DLL_AfxMessageBox
cmp ebp, ebx
jne 0x421426
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
add esp, 0x74
ret
push ebp
call dword [sym.imp.KERNEL32.dll_SetEvent]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
add esp, 0x74
ret
mov eax, dword [0x4ba858]
cmp eax, ebx
jne 0x421454
xor eax, eax
jmp 0x421457
mov eax, dword [eax + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
push 0x812
push eax
call edi
mov eax, dword [esi + 0x50c]
mov dword [esi + 0x510], 1
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0x298]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi + 0x518]
mov dword [esi + 0x294], ebx
cmp eax, ebx
mov dword [esi + 0x298], ebx
jne 0x4214c4
mov edx, dword [esi + 0x504]
mov dword [esi + 0x518], 1
push edx
mov dword [esi + 0x528], 3
call dword [sym.imp.KERNEL32.dll_SetEvent]
cmp ebp, ebx
jne 0x4214d5
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
jmp 0x4214e3
push ebp
call dword [sym.imp.KERNEL32.dll_SetEvent]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esi + 0x290]
push 0xffffffffffffffff
mov edx, dword [ecx + 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi + 0x1b4]
mov dword [esi + 0x290], ebx
cmp eax, ebx
jne 0x421509
xor eax, eax
jmp 0x42150c
mov eax, dword [eax + 0x20]
push ebx
push ebx
push 0x802
push eax
call edi
mov eax, dword [0x4ba858]
cmp eax, ebx
je 0x421545
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.MFC42.DLL_CWnd::FromHandle
mov ecx, dword [eax + 0x20]
push ebx
push ebx
push 0x10
push ecx
call edi
mov edx, dword [esi + 0x1b4]
mov dword [edx + 0x19c], ebx
mov dword [0x4ba858], ebx
mov eax, dword [esi + 0x1b4]
mov dword [esi + 0x534], ebx
mov dword [esi + 0x538], ebx
mov dword [esi + 0x53c], ebx
mov eax, dword [eax + 0x20]
push ebx
push ebx
push 0x809
push eax
call edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_5
push 0x80
lea ecx, [esp + 0x14]
mov dword [esp + 0x84], ebx
call sub.MFC42.DLL_CString::LoadStringA
mov ecx, dword [esi + 0x1b0]
lea edx, [esp + 0x18]
add ecx, 0x9f8
push ecx
push 0x4a67d8
push edx
call sub.MFC42.DLL_operator_2
push 0x4a1554
push eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x88], 1
push eax
call sub.MFC42.DLL_operator_1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x84], 2
call fcn.0047e17a
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x80], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esi + 0x1b4]
cmp eax, ebx
je 0x421602
mov ebx, dword [eax + 0x20]
mov ecx, dword [esp + 0x10]
push ecx
push ebx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edx, dword [esi + 0x1b0]
lea ecx, [esp + 0x10]
mov dword [esp + 0x80], 0xffffffff
mov dword [edx + 0xe90], 1
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret