Function at 0x401fa0
Capabilities:
Create thread

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x80
cmp eax, 0x3fb
push ebx
push esi
push edi
jg 0x402298
je 0x402245
add eax, 0xfffffc12
cmp eax, 0xc
ja case.0x401fd4.1012
xor ecx, ecx
mov cl, byte [eax + 0x402440]
jmp dword [ecx*4 + 0x402424]
mov esi, 0x405298
mov eax, 0x405264
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40200d
test cl, cl
je 0x402009
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40200d
add eax, 2
add esi, 2
test cl, cl
jne 0x401fe5
xor eax, eax
jmp 0x402012
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402039
push eax
mov eax, dword [esp + 0x94]
push 0x4050f4
push 0x4053b8
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0xc]
push 0x405264
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x10]
push 0x4053a0
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [esp + 0x9c]
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0xc
lea edx, [esp + 0xc]
push 4
push 0x4050f4
push edx
push esi
call edi
cmp eax, 6
jne case.0x401fd4.1012
push esi
call fcn.00402910
add esp, 4
test eax, eax
push 0
push 0x4050f4
jne 0x4020a9
push 0x405394
push esi
call edi
pop edi
pop esi
pop ebx
add esp, 0x80
ret
push 0x405388
push esi
call edi
push 0
push 0
push esi
push 0x4012a0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
mov eax, dword [esp + 0x9c]
test eax, eax
jbe case.0x401fd4.1012
cmp eax, 2
ja case.0x401fd4.1012
mov ebx, dword [esp + 0x90]
push ebp
push 0x3ee
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov esi, eax
push 0
push 0x188
push esi
call ebp
mov edx, eax
mov ecx, 0xc
xor eax, eax
mov edi, 0x405264
rep stosd dword es:[edi], eax
push 0x405264
push edx
push 0x189
push esi
stosw word es:[edi], ax
call ebp
push ebx
call fcn.00402530
add esp, 4
test eax, eax
pop ebp
jne 0x40214b
push eax
push eax
push 0x40536c
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push 0
push ebx
push 0x4027b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
mov eax, dword [esp + 0x90]
push 0xfffffffffffffffa
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push 0
push 0x401370
push 0
push 0x69
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
push 0x405298
push 0x405264
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x4021cc
mov ecx, dword [esp + 0x90]
push eax
push 0x4050f4
push 0x405358
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
mov edx, dword [esp + 0x90]
push 0xfffffffffffffffa
push edx
call dword [sym.imp.USER32.dll_GetWindowLongA]
push 0x405264
push 0x401a40
push 0
push 0x6a
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
mov eax, dword [esp + 0x90]
push 0
push 0
push eax
push 0x402c90
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
mov ecx, dword [esp + 0x90]
push 0
push 0
push ecx
push 0x402ed0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
push 0x405298
push 0x405264
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x402269
push eax
push 0x4050f4
push 0x405344
jmp 0x40240c
mov eax, dword [esp + 0x90]
push 0xfffffffffffffffa
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push 0x405264
push 0x403110
push 0
push 0x6b
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
mov esi, dword [esp + 0x90]
cmp eax, 0x40d
jg 0x4023bd
cmp eax, 0x40d
je 0x402380
sub eax, 0x3fc
je 0x4022cd
dec eax
je 0x4023e2
pop edi
pop esi
pop ebx
add esp, 0x80
ret
push 0x405818
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x4022ff
mov ecx, dword [esp + 0x90]
push eax
push 0x4050f4
push 0x405330
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
push 0x405898
push 0x405818
lea edx, [esp + 0x14]
push 0x405314
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [esp + 0xa0]
mov ebx, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0x10
lea eax, [esp + 0xc]
push 4
push 0x4050f4
push eax
push esi
call ebx
cmp eax, 6
jne case.0x401fd4.1012
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push esi
push 0x402b90
push 0
push 0
call edi
push 0
push 0x4050f4
push 0x405388
push esi
call ebx
push 0
push 0
push esi
push 0x4027b0
push 0
push 0
call edi
pop edi
pop esi
pop ebx
add esp, 0x80
ret
push 0x405298
push 0x405264
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je case.0x401fd4.1012
mov ecx, dword [esp + 0x90]
push 0
push 0
push ecx
push 0x4027b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
sub eax, 0x9c41
je 0x402400
dec eax
jne case.0x401fd4.1012
push 0xfffffffffffffffa
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
push 0
push 0x401d90
push 0
push 0x6d
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0
push 0
push esi
push 0x4012a0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
pop ebx
add esp, 0x80
ret
push 0
push 0x4050f4
push 0x4052bc
mov edx, dword [esp + 0x9c]
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebx
add esp, 0x80
ret