Function at 0x405f90
Capabilities:
Terminate process

Disassembly:
sub esp, 0x5cc
mov eax, dword [0x42610c]
xor eax, esp
mov dword [esp + 0x5c8], eax
cmp dword [0x428d8c], 0
mov eax, dword [esp + 0x5d0]
push ebx
mov ebx, dword [esp + 0x5e8]
push ebp
mov ebp, dword [esp + 0x5e4]
push edi
mov edi, dword [esp + 0x5f4]
mov dword [esp + 0x10], eax
mov byte [esp + 0xf], 0
je 0x405fe3
mov ecx, dword [esp + 0x5e0]
push ecx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
test byte [esp + 0x5f8], 2
je 0x405ff9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x14], eax
jmp 0x406001
mov dword [esp + 0x14], 0
mov eax, dword [0x427f14]
push esi
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x32
lea edx, [esp + 0x20]
push edx
push 0x65
push eax
mov dword [0x427448], 1
call esi
mov edx, dword [0x427f14]
push 0x32
lea ecx, [esp + 0x40]
push ecx
push 0x66
push edx
call esi
mov ecx, dword [0x427f14]
push 0x32
lea eax, [esp + 0x74]
push eax
push 0x67
push ecx
call esi
mov eax, dword [0x427f14]
push 0x32
lea edx, [esp + 0x94]
push edx
push 0x68
push eax
call esi
mov edx, dword [0x427f14]
push 0x14
lea ecx, [esp + 0x60]
push ecx
push 0x69
push edx
call esi
mov ecx, dword [esp + 0x5f0]
mov edx, dword [0x427f14]
push 0xc8
lea eax, [esp + 0x1f4]
push eax
push ecx
push edx
call esi
test ebp, ebp
jne 0x406093
lea ebp, [esp + 0x13]
test byte [esp + 0x5fc], 1
je 0x4060b8
push ebx
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esp + 0xcc]
push ecx
call fcn.0041246c
add esp, 0xc
jmp 0x4060d3
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x1f0]
mov byte [esp + eax + 0xc4], cl
inc eax
test cl, cl
jne 0x4060c0
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4060d8
sub eax, edx
cmp eax, 0x64
jb 0x4060e9
mov byte [ebp + 0x50], cl
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4060f0
sub eax, edx
cmp eax, 0x64
jb 0x406101
mov byte [edi + 0x50], cl
mov ebx, dword [esp + 0x5fc]
and ebx, 4
jne 0x40614f
test byte [esp + 0x5fc], 8
jne 0x40614f
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x5e4]
push edi
mov edi, dword [esp + 0x5ec]
push ebp
push edi
push edx
push esi
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xdc]
push ecx
lea edx, [esp + 0x58]
push edx
push str._s:__s_n_n_s:_A_d__d__d__s_n_n_s
lea eax, [esp + 0x214]
push eax
jmp 0x406185
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x5e4]
push edi
mov edi, dword [esp + 0x5ec]
push ebp
push edi
push ecx
push esi
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0x58]
push ecx
push str._s:__s_r_n_r_n_s:_A_d__d__d__s_r_n_r_n_s
lea edx, [esp + 0x214]
push edx
call fcn.0041246c
mov eax, dword [esp + 0x40]
add esp, 0x28
push ebp
push edi
push eax
push esi
push str.A_d__d__d__s
push 0x428da0
call fcn.0041246c
add esp, 0x18
test ebx, ebx
je 0x4061cc
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x1f0]
push ecx
push 0
push 0xc2
push 1
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
jmp 0x4062ab
mov cl, byte [esp + 0x5fc]
test cl, 8
je 0x406291
cmp esi, 0x3e8
jle 0x4061fd
lea edx, [esi - 0x3e9]
mov eax, 0x10624dd3
mul edx
shr edx, 6
inc edx
imul edx, edx, 0x3e8
sub esi, edx
cmp edi, 0x3e8
jle 0x40621e
lea edx, [edi - 0x3e9]
mov eax, 0x10624dd3
mul edx
shr edx, 6
inc edx
imul edx, edx, 0x3e8
sub edi, edx
cmp esi, 0x15
jl 0x406270
cmp edi, 0x15
jge 0x40622c
test edi, edi
jg 0x406270
test cl, 0x20
je 0x406252
mov ecx, dword [esp + 0x14]
push 0x851
push 0x4260d8
lea eax, [esp + 0x1f8]
push eax
push ecx
call fcn.00405f30
add esp, 0x10
jmp 0x4062ab
mov eax, dword [esp + 0x14]
push 0x51
push 0x4260d8
lea edx, [esp + 0x1f8]
push edx
push eax
call fcn.00405f30
add esp, 0x10
jmp 0x4062ab
mov edx, dword [esp + 0x14]
push 0x451
push 0x4260d8
lea ecx, [esp + 0x1f8]
push ecx
push edx
call fcn.00405f30
add esp, 0x10
jmp 0x4062ab
mov ecx, dword [esp + 0x14]
push 0x30
push 0x4260d8
lea eax, [esp + 0x1f8]
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 0x5d8]
pop esi
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.00411e16
add esp, 0x5cc
ret