Function at 0x401cf7
Capabilities:
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x403d58
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0xc]
call fcn.00403650
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], 0
dec eax
je 0x401e86
dec eax
je 0x401e62
sub eax, 2
jne 0x401ff9
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
cmp ecx, 3
mov dword [esi + 0x34], 4
mov edi, eax
ja case.default.0x401d3e
jmp dword [ecx*4 + 0x402020]
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0x38]
sub ecx, ebx
cmp eax, ecx
jle case.default.0x401d3e
sub eax, dword [esi + 0x50]
cmp eax, ecx
mov dword [esi + 0x48], eax
jge case.default.0x401d3e
mov dword [esi + 0x48], ecx
jmp case.default.0x401d3e
mov ecx, dword [esi + 0x24]
mov ebx, dword [esi + 0x3c]
sub ecx, ebx
cmp edx, ecx
jle case.default.0x401d3e
mov ebx, dword [esi + 0x50]
mov eax, edx
sub eax, ebx
cmp eax, ecx
mov dword [esi + 0x4c], eax
jge case.default.0x401d3e
jmp 0x401da7
mov ecx, dword [esi + 0x28]
cmp eax, ecx
jge case.default.0x401d3e
mov ebx, dword [esi + 0x50]
add eax, ebx
cmp eax, ecx
mov dword [esi + 0x48], eax
jle case.default.0x401d3e
mov dword [esi + 0x48], ecx
jmp case.default.0x401d3e
mov ecx, dword [esi + 0x2c]
cmp edx, ecx
jge case.default.0x401d3e
mov eax, dword [esi + 0x50]
add eax, edx
cmp eax, ecx
mov dword [esi + 0x4c], eax
jle case.default.0x401d3e
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x48]
cmp eax, edi
jne 0x401e2d
cmp dword [esi + 0x4c], edx
jne 0x401e2d
push 4
lea ecx, [esi + 4]
call fcn.004032d0
mov eax, dword [esi + 0x74]
mov dword [esi + 0x34], 2
test eax, eax
je 0x401dd6
push 0
call dword [sym.imp.MSVCRT.dll_exit]
call dword [sym.imp.MSVCRT.dll___p___argv]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x24]
push edx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
test eax, eax
je 0x401ff9
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x401e17
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
mov eax, dword [eax + 0x100]
push eax
call fcn.004029d0
add esp, 4
jmp 0x401ff9
xor eax, eax
mov eax, dword [eax + 0x100]
push eax
call fcn.004029d0
add esp, 4
jmp 0x401ff9
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x38]
push 0x4110
push ecx
mov ecx, dword [esi + 0x4c]
push edx
mov edx, dword [esi + 0x6c]
push ecx
neg edx
push eax
mov eax, dword [esi + 0x30]
sbb edx, edx
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [esi + 0x30]
push 4
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x401ff9
lea edi, [esi + 4]
push 2
mov ecx, edi
call fcn.004032d0
mov edx, dword [esi + 0x68]
push 5
push esi
push 0x401cd0
push edx
mov ecx, edi
call fcn.00403290
jmp 0x401ff9
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
cmp ecx, 3
mov dword [esi + 0x34], 1
mov edi, eax
ja case.default.0x401e9d
jmp dword [ecx*4 + 0x402030]
mov ecx, dword [esi + 0x20]
cmp eax, ecx
jge case.default.0x401e9d
mov ebx, dword [esi + 0x50]
add eax, ebx
cmp eax, ecx
mov dword [esi + 0x48], eax
jle case.default.0x401e9d
mov dword [esi + 0x48], ecx
jmp case.default.0x401e9d
mov ecx, dword [esi + 0x24]
cmp edx, ecx
jge case.default.0x401e9d
mov eax, dword [esi + 0x50]
add eax, edx
cmp eax, ecx
mov dword [esi + 0x4c], eax
jle case.default.0x401e9d
jmp 0x401f06
mov ecx, dword [esi + 0x28]
mov ebx, dword [esi + 0x38]
sub ecx, ebx
cmp eax, ecx
jle case.default.0x401e9d
sub eax, dword [esi + 0x50]
cmp eax, ecx
mov dword [esi + 0x48], eax
jge case.default.0x401e9d
mov dword [esi + 0x48], ecx
jmp case.default.0x401e9d
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 0x3c]
sub ecx, ebx
cmp edx, ecx
jle case.default.0x401e9d
mov ebx, dword [esi + 0x50]
mov eax, edx
sub eax, ebx
cmp eax, ecx
mov dword [esi + 0x4c], eax
jge case.default.0x401e9d
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x48]
cmp eax, edi
jne 0x401f9f
cmp dword [esi + 0x4c], edx
jne 0x401f9f
lea edi, [esi + 4]
push 1
mov ecx, edi
call fcn.004032d0
mov eax, dword [esi + 0x60]
cmp eax, 0xffffffff
je 0x401f41
push 2
push esi
push 0x401cd0
push eax
mov ecx, edi
call fcn.00403290
mov edi, dword [sym.imp.MSVCRT.dll___p___argv]
mov dword [esi + 0x34], 2
call edi
mov ecx, dword [eax]
mov ebx, dword [sym.imp.MSVCRT.dll_atoi]
mov edx, dword [ecx + 0x30]
push edx
call ebx
add esp, 4
test eax, eax
je 0x401ff9
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x401f7d
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
test eax, eax
jne 0x401f81
xor esi, esi
jmp 0x401f84
mov esi, dword [eax + 0x20]
push 0
call edi
mov eax, dword [eax]
mov ecx, dword [eax + 0x30]
push ecx
call ebx
add esp, 4
push eax
push 1
push esi
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x401ff9
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x38]
push 0x10
push edx
mov edx, dword [esi + 0x4c]
push ecx
mov ecx, dword [esi + 0x30]
push edx
push eax
mov eax, dword [esi + 0x6c]
neg eax
sbb eax, eax
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x401fd2
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x401fd4
xor eax, eax
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x401ff0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x401ff2
xor eax, eax
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetFocus
lea ecx, [esp + 0xc]
mov dword [esp + 0x18], 0xffffffff
call fcn.00403656
mov ecx, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 4