Function at 0x405d40
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x120
mov eax, dword [0x421fbc]
xor eax, esp
mov dword [esp + 0x11c], eax
push ebx
mov ebx, dword [esp + 0x128]
push esi
xor esi, esi
cmp dword [0x442a38], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
je 0x406681
cmp dword [0x4429e4], esi
push ebp
mov ebp, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push edi
mov edi, dword [0x442a3c]
mov dword [esp + 0x1c], edi
mov dword [0x442a3c], esi
jle 0x405f3a
jmp 0x405da0
mov eax, dword [esi*4 + 0x42106c]
push 0
push 0
push pe_nt_image_headers32
push eax
push ebx
call ebp
cmp eax, 1
jne 0x405dbf
add dword [0x442a3c], eax
mov eax, dword [0x4429e4]
add esi, 1
cmp esi, eax
jl 0x405da0
cmp dword [0x442a3c], 7
jne 0x405f3a
cmp edi, 6
jne 0x405e8c
xor esi, esi
test eax, eax
jle 0x405f3a
jmp 0x405df0
mov edi, dword [esi*4 + 0x42106c]
mov ebp, dword [0x43d878]
push edi
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x405e5a
mov ecx, dword [0x43a758]
mov dword [ecx*4 + 0x43c878], ebp
push edi
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x405e47
mov edx, dword [0x43a758]
mov eax, dword [edx*4 + 0x438754]
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x405e49
xor eax, eax
mov edx, dword [0x438750]
push eax
mov eax, dword [edx + 8]
mov ecx, 0x438750
call eax
mov ecx, dword [esi*4 + 0x42106c]
push 0
push 1
push 0xf1
push ecx
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
add esi, 1
cmp esi, dword [0x4429e4]
jl 0x405df0
mov ebp, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
jmp 0x405f3a
cmp edi, 8
jne 0x405f3a
lea esi, [eax - 1]
test esi, esi
jl 0x405f3a
mov edx, dword [esi*4 + 0x42106c]
push 0
push 0
push pe_nt_image_headers32
push edx
push ebx
call ebp
cmp eax, 1
je 0x405ec0
sub esi, 1
jns 0x405ea0
jmp 0x405f3a
mov edi, dword [esi*4 + 0x42106c]
push edi
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x405f26
mov eax, dword [0x43a758]
push edi
mov ecx, 0x438750
mov dword [eax*4 + 0x43c878], 0
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x405f14
mov ecx, dword [0x43a758]
mov edx, dword [ecx*4 + 0x438754]
push edi
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x405f16
xor eax, eax
push eax
mov eax, dword [0x438750]
mov edx, dword [eax + 8]
mov ecx, 0x438750
call edx
mov eax, dword [esi*4 + 0x42106c]
push 0
push 0
push 0xf1
push eax
push ebx
call ebp
push 0
push 0
push pe_nt_image_headers32
push 0x43f
push ebx
mov dword [0x442a3c], 0
call ebp
mov esi, 1
cmp eax, esi
push 0x42d
mov ecx, 0x431618
jne 0x405f7e
call fcn.004041d0
push 0x430
mov ecx, 0x431618
call fcn.004041d0
jmp 0x405f92
call fcn.00404150
push 0x430
mov ecx, 0x431618
call fcn.00404150
cmp dword [0x4429e4], esi
jl 0x406495
mov edi, edi
mov eax, dword [esp + 0x138]
cmp eax, dword [esi*4 + 0x421088]
je 0x405fc2
cmp eax, dword [esi*4 + 0x4210a8]
je 0x405fc2
cmp eax, dword [esi*4 + 0x421184]
jne 0x405fd2
push 0
push 0x66
push 0x400
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi*4 + 0x4210a8]
mov edi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0
push 0
push pe_nt_image_headers32
push ecx
push ebx
call edi
test eax, eax
je 0x405ff5
add dword [esp + 0x10], 1
mov edx, dword [esi*4 + 0x421068]
push 0
push 0
push pe_nt_image_headers32
push edx
push ebx
call edi
test eax, eax
mov edi, dword [esi*4 + 0x4210a8]
mov ecx, 0x438750
push edi
jne 0x406203
call fcn.00404150
push edi
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x406082
mov eax, dword [0x43a758]
push edi
mov ecx, 0x438750
mov dword [eax*4 + 0x43c878], 0
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x406070
mov ecx, dword [0x43a758]
mov edx, dword [ecx*4 + 0x438754]
push edi
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x406072
xor eax, eax
push eax
mov eax, dword [0x438750]
mov edx, dword [eax + 8]
mov ecx, 0x438750
call edx
push 0
push edi
mov ecx, 0x438750
call fcn.004018b0
mov eax, dword [0x4429d4]
mov byte [eax + esi + 0x477], 0x2d
mov edi, dword [esi*4 + 0x421184]
push edi
mov ecx, 0x4233a8
call fcn.00404150
push 0xf
call dword [sym.imp.USER32.dll_GetSysColorBrush]
push edi
mov ecx, 0x4233a8
mov ebp, eax
call fcn.004010c0
cmp eax, dword [0x4253ac]
jge 0x406115
mov ecx, dword [0x4253b0]
mov dword [ecx*4 + 0x4274d0], ebp
push edi
mov ecx, 0x4233a8
call fcn.004010c0
cmp eax, dword [0x4253ac]
jge 0x406102
mov edx, dword [0x4253b0]
mov eax, dword [edx*4 + 0x4233ac]
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x406104
xor eax, eax
mov edx, dword [0x4233a8]
push eax
mov eax, dword [edx + 8]
mov ecx, 0x4233a8
call eax
mov edi, dword [esi*4 + 0x421088]
push edi
mov ecx, 0x438750
call fcn.00404150
push edi
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x406188
mov ecx, dword [0x43a758]
mov dword [ecx*4 + 0x43c878], 0
push edi
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x406175
mov edx, dword [0x43a758]
mov eax, dword [edx*4 + 0x438754]
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x406177
xor eax, eax
mov edx, dword [0x438750]
push eax
mov eax, dword [edx + 8]
mov ecx, 0x438750
call eax
push 0
push edi
mov ecx, 0x438750
call fcn.004018b0
mov ecx, dword [0x4429d4]
mov byte [ecx + esi + 0x457], 0x2d
mov edx, dword [esi*4 + 0x421128]
push edx
mov ecx, 0x431618
call fcn.00404150
mov eax, dword [esi*4 + 0x421108]
push eax
mov ecx, 0x431618
call fcn.00404150
mov edi, dword [esi*4 + 0x4210c8]
push 0
push edi
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 0x41c7e4
push edi
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ecx, dword [esi*4 + 0x4210e8]
push ecx
mov ecx, 0x4233a8
call fcn.00404150
jmp 0x406486
add dword [0x442a3c], 1
call fcn.004041d0
push edi
mov ecx, 0x438750
call fcn.004011d0
mov ebp, eax
test ebp, ebp
push edi
mov ecx, 0x438750
je 0x406273
mov ebx, dword [0x43d878]
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x4062ce
mov edx, dword [0x43a758]
push edi
mov ecx, 0x438750
mov dword [edx*4 + 0x43c878], ebx
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x4062bb
mov eax, dword [0x43a758]
mov ecx, dword [eax*4 + 0x438754]
push edi
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x4062bd
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x4062ce
mov ecx, dword [0x43a758]
mov dword [ecx*4 + 0x43c878], 0
push edi
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x4062bb
mov edx, dword [0x43a758]
mov eax, dword [edx*4 + 0x438754]
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x4062bd
xor eax, eax
mov edx, dword [0x438750]
push eax
mov eax, dword [edx + 8]
mov ecx, 0x438750
call eax
mov edx, dword [0x4429d4]
test ebp, ebp
sete cl
test ebp, ebp
lea ecx, [ecx + ecx + 0x2b]
mov byte [edx + esi + 0x477], cl
mov edi, dword [esi*4 + 0x421184]
push edi
mov ecx, 0x4233a8
je 0x406308
call fcn.004041d0
mov eax, dword [0x4429d4]
mov ebp, dword [eax + esi*4 + 0xa2c]
jmp 0x406317
call fcn.00404150
push 0xf
call dword [sym.imp.USER32.dll_GetSysColorBrush]
mov ebp, eax
push edi
mov ecx, 0x4233a8
call fcn.004010c0
cmp eax, dword [0x4253ac]
jge 0x406374
mov ecx, dword [0x4253b0]
mov dword [ecx*4 + 0x4274d0], ebp
push edi
mov ecx, 0x4233a8
call fcn.004010c0
cmp eax, dword [0x4253ac]
jge 0x406361
mov edx, dword [0x4253b0]
mov eax, dword [edx*4 + 0x4233ac]
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x406363
xor eax, eax
mov edx, dword [0x4233a8]
push eax
mov eax, dword [edx + 8]
mov ecx, 0x4233a8
call eax
mov edi, dword [esi*4 + 0x421088]
push edi
mov ecx, 0x438750
call fcn.004041d0
push edi
mov ecx, 0x438750
call fcn.004011d0
mov ebp, eax
test ebp, ebp
push edi
mov ecx, 0x438750
je 0x4063bf
mov ebx, dword [0x43d878]
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x40641a
mov ecx, dword [0x43a758]
mov dword [ecx*4 + 0x43c878], ebx
jmp 0x4063dd
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x40641a
mov ecx, dword [0x43a758]
mov dword [ecx*4 + 0x43c878], 0
push edi
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x406407
mov edx, dword [0x43a758]
mov eax, dword [edx*4 + 0x438754]
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x406409
xor eax, eax
mov edx, dword [0x438750]
push eax
mov eax, dword [edx + 8]
mov ecx, 0x438750
call eax
mov edx, dword [0x4429d4]
test ebp, ebp
sete cl
lea ecx, [ecx + ecx + 0x2b]
mov byte [edx + esi + 0x457], cl
mov eax, dword [esi*4 + 0x421128]
push eax
mov ecx, 0x431618
call fcn.004041d0
mov ecx, dword [esi*4 + 0x421108]
push ecx
mov ecx, 0x431618
call fcn.004041d0
mov eax, dword [esi*4 + 0x4210c8]
mov edx, dword [esp + 0x14]
push 1
push eax
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [esi*4 + 0x4210e8]
push eax
mov ecx, 0x4233a8
call fcn.004041d0
mov ebx, dword [esp + 0x14]
add esi, 1
cmp esi, dword [0x4429e4]
jle 0x405fa0
mov ecx, dword [0x442948]
test ecx, ecx
je 0x4064a4
call fcn.004080a0
mov eax, dword [0x442a3c]
test eax, eax
je 0x4064b4
cmp dword [esp + 0x10], 0
jne 0x406524
push 2
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x4064e0
mov ecx, dword [0x43a758]
mov edx, dword [ecx*4 + 0x438754]
push 2
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x4064e2
xor eax, eax
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
mov ecx, 0x438750
call fcn.004010c0
cmp eax, dword [0x43a754]
jge 0x406516
mov eax, dword [0x43a758]
mov ecx, dword [eax*4 + 0x438754]
push 2
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
jmp 0x406518
xor eax, eax
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [0x442a3c]
test eax, eax
je 0x406674
cmp dword [0x4429e4], 0
fild dword [0x442a3c]
mov edx, dword [eax*4 + 0x421f34]
mov dword [esp + 0x10], edx
fdivr qword [0x41c708]
mov dword [esp + 0x14], 0
fstp qword [esp + 0x24]
jle 0x406674
mov ebp, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov esi, 0x4b0
mov edi, 0x42106c
mov eax, 0x4210cc
sub edi, esi
sub eax, esi
mov dword [esp + 0x18], eax
lea esp, [esp]
mov eax, dword [edi + esi]
push 0
push 0
push pe_nt_image_headers32
push eax
push ebx
call ebp
test eax, eax
je 0x40665a
mov eax, dword [0x4429d4]
mov ecx, dword [esi + eax]
fild dword [esi + eax]
test ecx, ecx
jge 0x4065ad
fadd qword [0x41c7a8]
fld qword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
fld st(0)
fdivrp st(2)
je 0x4065d0
cmp ecx, dword [0x442a3c]
je 0x4065d0
fstp st(1)
mov dword [esi + eax], 1
jmp 0x4065f8
xor ecx, ecx
fstp st(0)
cmp dword [str.__.98_26], ecx
jle 0x4065f8
mov edx, dword [esp + 0x10]
fld qword [edx + ecx*8]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x4065f8
add ecx, 1
cmp ecx, dword [ecx*4 + str.__.98_26]
jl 0x4065e0
sub esp, 8
fstp qword [esp]
call fcn.00405ca0
push eax
lea edx, [esp + 0x38]
push 0x41c7e0
push edx
call fcn.0040ab25
lea eax, [esp + 0x40]
add esp, 0x14
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x406620
sub eax, edx
cmp eax, 2
jbe 0x406646
lea eax, [esp + 0x2c]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x406637
sub eax, edx
mov byte [esp + eax + 0x2a], cl
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + esi]
lea eax, [esp + 0x2c]
push eax
push edx
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [esp + 0x14]
add eax, 1
add esi, 4
cmp eax, dword [0x4429e4]
mov dword [esp + 0x14], eax
jl 0x406580
push 0
push 0
push ebx
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop ebp
mov ecx, dword [esp + 0x124]
pop esi
pop ebx
xor ecx, esp
call fcn.0040a66a
add esp, 0x120
ret