Function at 0x40a213
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8dc
push ebx
push esi
xor eax, eax
push edi
lea ecx, [ebp - 0x64]
push eax
push ecx
push eax
push 0x30
mov dword [ebp - 0x28], eax
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov eax, dword [ebp - 0x64]
push 0x3ed
sub dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
push dword [ebp + 8]
sub dword [ebp - 0x58], eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
mov dword [ebp - 4], eax
call dword [sym.imp.USER32.dll_GetDC]
push dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0xdc]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov edi, dword [ebp - 0xdc]
cmp edi, 0x10
mov dword [ebp - 0x4c], edi
jge 0x40a28a
push 0x10
pop edi
mov dword [ebp - 0x4c], edi
mov esi, dword [ebp + 0x10]
lea eax, [edi - 0x10]
sar eax, 1
test byte [esi + 8], 0xf0
lea ecx, [eax + 0x1e]
mov dword [ebp - 0x24], ecx
je 0x40a2a1
lea ecx, [eax + 0x50]
mov dword [ebp - 0x20], ecx
lea ecx, [eax + 0x18]
mov dword [ebp - 0x44], ecx
lea ecx, [eax + 0x1c]
mov dword [ebp - 0x48], ecx
lea ecx, [eax + 0x10]
add eax, 0x14
mov ebx, edi
mov dword [ebp - 0x68], eax
lea eax, [edi + edi*4]
shl eax, 4
imul ebx, ebx, 0xe
sar eax, 4
mov dword [ebp - 0x1c], eax
mov eax, edi
imul eax, eax, 0x1a
and dword [ebp + 0xc], 0
mov dword [ebp - 0x40], eax
sar eax, 4
sar ebx, 4
cmp dword [esi + 0xc], 0
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x50], ebx
jbe 0x40a3ee
lea eax, [esi + 0x10]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x8dc]
push 0x800
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItemTextA]
mov al, byte [ebp - 0x8dc]
and dword [ebp + 0x10], 0
lea ecx, [ebp - 0x8db]
mov byte [ebp - 8], al
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x8db]
mov dword [ebp - 0xc], ecx
test al, al
je 0x40a384
cmp word [ebp + 0x10], 1
je 0x40a36b
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x40a352
mov dword [ebp + 0x10], 1
jmp 0x40a36f
cmp byte [ebp - 8], 0x26
jne 0x40a36b
cmp word [ebp + 0x10], 0
jne 0x40a36b
dec dword [ebp - 0xc]
mov dword [ebp + 0x10], 2
jmp 0x40a36f
and dword [ebp + 0x10], 0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
inc dword [ebp - 0x14]
inc dword [ebp - 0xc]
mov al, byte [eax]
mov byte [ebp - 8], al
mov byte [ecx], al
jmp 0x40a331
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x8dc]
push eax
call fcn.0042bfb0
pop ecx
push eax
lea eax, [ebp - 0x8dc]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
lea eax, [edi + edi*2]
shl eax, 3
mov ecx, eax
mov eax, dword [ebp - 0x74]
sar ecx, 4
add eax, ecx
lea ecx, [edi + edi*4]
shl ecx, 1
mov edx, ecx
mov ecx, dword [ebp - 0x70]
sar edx, 4
add ecx, edx
cmp eax, dword [ebp - 0x1c]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
jle 0x40a3d3
mov dword [ebp - 0x1c], eax
cmp ecx, dword [ebp - 0x2c]
jle 0x40a3db
mov dword [ebp - 0x2c], ecx
inc dword [ebp + 0xc]
add dword [ebp - 0x10], 4
mov eax, dword [ebp + 0xc]
cmp eax, dword [esi + 0xc]
jb 0x40a2f8
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
sar eax, 3
lea edi, [ebx + ecx]
mov dword [ebp + 0xc], eax
imul edi, dword [esi + 0xc]
sub edi, ebx
push 0x10
add edi, eax
lea eax, [ebp - 0x3c]
push 0
push eax
mov dword [ebp - 0x40], edi
call fcn.0042b620
add esp, 0xc
push 0xffffffffffffffec
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
push eax
push 0
push 0xfffffffffffffff0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x34]
lea eax, [eax + ecx - 0x14]
cmp edi, eax
mov dword [ebp - 8], eax
jle 0x40a46a
mov ecx, dword [esi + 0xc]
mov edi, eax
mov dword [ebp - 0x40], edi
lea edx, [ecx - 1]
imul edx, ebx
sub eax, edx
xor edx, edx
sub eax, dword [ebp + 0xc]
div ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + ecx]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x84], edx
add ecx, eax
mov eax, 0x96
add ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x44]
cmp edi, eax
mov dword [ebp - 0x80], ecx
jge 0x40a495
mov edi, eax
mov eax, dword [ebp - 0x38]
sub dword [ebp - 8], edx
sub eax, dword [ebp - 0x30]
mov ebx, dword [sym.imp.KERNEL32.dll_MulDiv]
sub edi, edx
sub eax, ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x48], edi
lea eax, [eax + ecx - 0x14]
mov ecx, dword [esi + 0x1c]
cmp ecx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
jle 0x40a4fb
mov eax, dword [esi + 0x24]
push 1
pop edi
cmp eax, edi
jle 0x40a4c9
mov edi, eax
push ecx
push dword [ebp - 8]
push dword [esi + 0x20]
call ebx
cmp eax, edi
jle 0x40a4e6
push dword [esi + 0x1c]
push dword [ebp - 8]
push dword [esi + 0x20]
call ebx
mov dword [ebp + 0x10], eax
jmp 0x40a4f6
mov eax, dword [esi + 0x24]
push 1
pop ecx
mov dword [ebp + 0x10], eax
cmp eax, ecx
jg 0x40a4f6
mov dword [ebp + 0x10], ecx
mov eax, dword [ebp - 8]
jmp 0x40a529
mov eax, dword [esi + 0x20]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x4c]
imul eax, eax, 0x1f4
sar eax, 4
sub eax, edx
cmp eax, ecx
mov dword [ebp + 0xc], eax
jg 0x40a519
mov dword [ebp + 0xc], ecx
cmp dword [ebp + 0xc], edi
jge 0x40a521
mov dword [ebp + 0xc], edi
mov eax, dword [ebp - 8]
cmp dword [ebp + 0xc], eax
jle 0x40a52c
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0xc]
mov ecx, eax
and ecx, 0xfffffff8
cmp ecx, 8
jle 0x40a544
sar eax, 3
mov dword [ebp - 0x14], eax
jmp 0x40a54b
mov dword [ebp - 0x14], 1
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x40a57e
push dword [esi + 0x20]
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push dword [ebp + 0x10]
call edi
cmp eax, 1
jle 0x40a573
push dword [esi + 0x20]
push dword [esi + 0x1c]
push dword [ebp + 0x10]
call edi
jmp 0x40a576
push 1
pop eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xc], eax
jmp 0x40a582
and dword [ebp - 0xc], 0
xor edi, edi
xor ebx, ebx
mov eax, dword [esi + ebx*4]
test eax, eax
je 0x40a5f5
test ebx, ebx
je 0x40a594
add edi, dword [ebp - 0x68]
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x3c]
push 0xc10
push ecx
push 0xffffffffffffffff
push eax
push dword [ebp - 0x18]
mov dword [ebp - 0x34], edx
call dword [sym.imp.USER32.dll_DrawTextA]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x30]
mov eax, ebx
add ecx, edi
shl eax, 4
mov dword [ebp + eax - 0xa0], ecx
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [ebp - 0xc]
mov dword [ebp + eax - 0x9c], ecx
mov dword [ebp + eax - 0x98], edx
jle 0x40a5e7
mov dword [ebp - 0xc], ecx
add edi, edx
test ebx, ebx
jne 0x40a604
cmp dword [esi + 0x1c], ebx
je 0x40a604
add edi, dword [ebp - 0x68]
test ebx, ebx
jne 0x40a604
cmp dword [esi + 0x1c], ebx
je 0x40a604
mov dword [ebp - 0x78], edi
add edi, dword [ebp + 0x10]
inc ebx
cmp ebx, 2
jb 0x40a586
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0xc], eax
jge 0x40a619
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x84]
mov edx, dword [esi + 0x1c]
add eax, ecx
mov ecx, dword [ebp - 0x80]
mov ebx, edx
add ecx, edi
mov dword [ebp - 0x34], eax
neg ebx
sbb ebx, ebx
mov dword [ebp - 0x30], ecx
and ebx, 0xffffffe8
add ebx, 0x40
imul ebx, ecx
shl eax, 5
cmp eax, ebx
jl 0x40a64d
cmp edi, dword [ebp - 0x10]
jle 0x40a6b3
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
cmp eax, ecx
jl 0x40a69a
test edx, edx
je 0x40a6b3
cmp word [ebp - 0x28], 0
jne 0x40a6b3
cmp edi, dword [ebp - 0x10]
jle 0x40a6b3
mov ecx, dword [esi + 0x24]
push 1
pop ebx
mov edx, ecx
cmp ecx, ebx
jg 0x40a675
mov edx, ebx
mov eax, dword [ebp + 0x10]
sub eax, edi
mov edi, dword [ebp - 0x10]
add eax, edi
cmp eax, edx
jle 0x40a688
mov dword [ebp + 0x10], eax
jmp 0x40a692
cmp ecx, ebx
mov dword [ebp + 0x10], ecx
jg 0x40a692
mov dword [ebp + 0x10], ebx
mov dword [ebp - 0x28], ebx
jmp 0x40a54b
mov edx, dword [ebp - 0x14]
add eax, edx
cmp eax, ecx
jge 0x40a6ab
mov dword [ebp + 0xc], eax
jmp 0x40a54b
mov dword [ebp + 0xc], ecx
jmp 0x40a54b
push dword [ebp - 0x7c]
push dword [ebp - 0x18]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x18]
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edi, dword [sym.imp.USER32.dll_MoveWindow]
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x10], 0x440998
sub dword [ebp - 0x10], esi
mov dword [ebp + 0xc], esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], 2
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x40a73b
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
push dword [eax + ecx]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x14]
push 0
push dword [eax + 4]
push dword [eax]
push dword [eax - 4]
push dword [ebp - 0x20]
push dword [ebp - 4]
call edi
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 1
push dword [ebp - 4]
call ebx
add dword [ebp - 0x14], 0x10
add dword [ebp + 0xc], 4
dec dword [ebp - 0x28]
jne 0x40a6f4
test byte [esi + 8], 0xf0
je 0x40a7a9
push 0x3f1
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [ebp - 0x20]
push 1
push 0
push 0
push dword [ebp - 0x4c]
mov dword [ebp - 4], eax
sar ecx, 2
push ecx
push eax
call edi
push 1
push dword [ebp - 4]
call ebx
mov eax, dword [esi + 8]
shr eax, 4
and eax, 0xf
movzx eax, word [eax*4 + 0x4409b8]
push eax
push 0
call dword [sym.imp.USER32.dll_LoadIconA]
push 0
push eax
push 0x170
push 0x3f1
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
cmp dword [esi + 0x1c], 0
je 0x40a7e9
push 0x3ef
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [ebp - 0x44]
push 0
push dword [ebp + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x78]
push dword [ebp - 0x24]
add eax, ecx
push eax
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x24]
sar eax, 1
add eax, dword [ebp - 0x20]
push eax
push dword [ebp - 4]
call edi
push 1
push dword [ebp - 4]
call ebx
mov eax, dword [ebp - 0x34]
and dword [ebp + 0xc], 0
sub eax, dword [ebp - 0x40]
sar eax, 1
add eax, dword [ebp - 0x54]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x6c]
cmp dword [esi + 0xc], 0
mov dword [ebp - 0x54], eax
jbe 0x40a86e
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x1c]
add eax, ecx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0xc]
push dword [esi + eax*4 + 0x10]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push 1
mov dword [ebp - 4], eax
push dword [ebp - 0x2c]
push dword [ebp - 0x1c]
push dword [ebp - 0x54]
push dword [ebp + 0x10]
push eax
call edi
push 1
push dword [ebp - 4]
call ebx
push 1
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_EnableWindow]
cmp dword [ebp + 0xc], 0
jne 0x40a85d
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [ebp - 0x50]
add dword [ebp + 0x10], eax
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [esi + 0xc]
jb 0x40a818
mov esi, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xffffffffffffffec
push dword [ebp + 8]
call esi
xor ebx, ebx
push eax
push ebx
push 0xfffffffffffffff0
push dword [ebp + 8]
call esi
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRectEx]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x30]
sub esi, dword [ebp - 0x38]
sub eax, ecx
mov dword [ebp - 0x34], ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x64]
sar eax, 1
add eax, edx
mov dword [ebp - 0x30], esi
cmp eax, ebx
jle 0x40a8b8
mov ebx, eax
mov eax, dword [ebp - 0x58]
sub eax, esi
cdq
sub eax, edx
mov edx, dword [ebp - 0x60]
sar eax, 1
add eax, edx
test eax, eax
jg 0x40a8cd
xor eax, eax
push 1
push esi
push ecx
push eax
push ebx
push dword [ebp + 8]
call edi
pop edi
pop esi
pop ebx
leave
ret 0xc