Function at 0x45b110
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x496dab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x674
push esi
push edi
mov edi, ecx
mov dword [esp + 0x66c], edi
mov edx, dword [edi + 0x10]
cmp edx, 0x2af8
jb 0x45b15a
push 0x49bc4d
push str.Too_many_controls.
mov ecx, 0x4ae9b0
call fcn.0042ce80
jmp 0x45e475
mov eax, dword [edi + 0x14]
cmp edx, eax
jb 0x45b186
lea eax, [eax + eax*4]
add eax, 0x1388
shl eax, 2
push eax
push dword [edi + 0x18]
call fcn.00485cbd
add esp, 8
test eax, eax
je 0x45b141
add dword [edi + 0x14], 0x3e8
mov dword [edi + 0x18], eax
mov eax, dword [edi + 0x10]
xorps xmm0, xmm0
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x18]
movdqu xmmword [eax + ecx*4], xmm0
mov dword [eax + ecx*4 + 0x10], 0
lea esi, [eax + ecx*4]
push esi
lea eax, [esp + 0x478]
mov dword [esp + 0x678], esi
push eax
call fcn.00461360
mov al, byte [esp + 0x68c]
cmp al, 0x14
jne 0x45b1d0
or byte [esi + 5], 0x80
mov byte [esp + 0x68c], 0x13
jmp 0x45b1ec
cmp al, 0x15
jne 0x45b1e8
mov byte [esp + 0x68c], 0x13
mov word [esp + 0x606], 0x301
jmp 0x45b1ec
cmp al, 0x13
jne 0x45b238
cmp byte [edi + 0xb8], 0xff
jne 0x45b20e
push 0x49bc4d
push str.Too_many_tab_controls.
mov ecx, 0x4ae9b0
call fcn.0042ce80
jmp 0x45e475
mov byte [esi + 6], 0xff
mov ecx, edi
mov al, byte [edi + 0xb8]
mov byte [esi + 7], al
movzx eax, byte [edi + 0xb9]
push eax
call fcn.00465860
test eax, eax
je 0x45b273
push eax
mov ecx, edi
call fcn.00465c80
jmp 0x45b273
cmp al, 0x19
jne 0x45b261
cmp dword [edi + 8], 0
je 0x45b25b
push 0x49bc4d
push str.Too_many_status_bars.
mov ecx, 0x4ae9b0
call fcn.0042ce80
jmp 0x45e475
mov byte [esi + 6], 0xff
jmp 0x45b273
mov al, byte [edi + 0xb9]
mov byte [esi + 6], al
mov al, byte [edi + 0xba]
mov byte [esi + 7], al
cmp dword [edi + 0x10], 0
mov edx, dword [sym.imp.KERNEL32.dll_MulDiv]
jne 0x45b2fa
cmp dword [edi + 0x78], 0x80000000
jne 0x45b2bb
imul ecx, dword [edi + 0x50], 0x54
mov eax, dword [0x4ae904]
push 0x60
push dword [0x4ae95c]
movd xmm0, dword [ecx + eax + 0x44]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x4a4258]
cvttsd2si eax, xmm0
push eax
call edx
mov edx, dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [edi + 0x78], eax
cmp dword [edi + 0x7c], 0x80000000
jne 0x45b2f1
imul ecx, dword [edi + 0x50], 0x54
mov eax, dword [0x4ae904]
push 0x60
push dword [0x4ae95c]
movd xmm0, dword [ecx + eax + 0x44]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x4a4240]
cvttsd2si eax, xmm0
push eax
call edx
mov dword [edi + 0x7c], eax
mov eax, dword [edi + 0x78]
mov dword [edi + 0x80], eax
mov dl, byte [esp + 0x68c]
mov byte [esi + 4], dl
mov ecx, dword [esp + 0x474]
mov al, byte [edi + 0x45]
or ecx, 0x10000000
mov dword [esp + 0x474], ecx
mov byte [esp + 0x604], al
cmp dl, 6
jne 0x45b349
or ecx, 0x4000
cmp byte [edi + 0x44], 0
mov dword [esp + 0x474], ecx
jne 0x45b370
or ecx, 0x20000
mov dword [esp + 0x474], ecx
jmp 0x45b370
cmp byte [edi + 0x44], 0
je 0x45b35c
or ecx, 0x20000
mov dword [esp + 0x474], ecx
cmp dl, 2
je 0x45b397
cmp dl, 0x10
je 0x45b397
cmp dl, 0x11
je 0x45b397
cmp dl, 0x12
je 0x45b397
cmp byte [esi + 4], 0xa
mov byte [esp + 0x64f], 1
je 0x45b38b
mov eax, dword [edi + 0x54]
mov dword [esi + 0x10], eax
mov ecx, dword [esp + 0x474]
mov eax, dword [edi + 0x54]
mov dword [esp + 0x4d0], eax
jmp 0x45b3b2
mov byte [esp + 0x64f], 0
cmp dl, 0x12
jne 0x45b3b2
mov dword [esi + 0x10], 0xff000000
mov ecx, dword [esp + 0x474]
movzx eax, dl
mov dword [esp + 0x614], eax
add eax, 0xfffffffc
cmp eax, 0x15
ja case.0x45b3c8.6
jmp dword [eax*4 + 0x45e490]
or ecx, 0x210000
jmp 0x45b4ad
or ecx, 0x210042
jmp 0x45b4ad
or ecx, 0x210080
or dword [esp + 0x47c], 0x200
jmp 0x45b4ad
or dword [esp + 0x484], 0x30
or ecx, 0x10008
or dword [esp + 0x47c], 0x200
mov dword [esp + 0x488], 1
jmp 0x45b4ad
or ecx, 0x10027
or dword [esp + 0x47c], 0x200
jmp 0x45b4ad
or ecx, 0x10000
or dword [esp + 0x47c], 0x200
jmp 0x45b4ad
or ecx, 0x36
jmp 0x45b4ad
or ecx, 0x1000c
jmp 0x45b4ad
or ecx, 1
jmp 0x45b4ad
movzx eax, byte [esp + 0x604]
xor edx, edx
cmp byte [esp + 0x606], dl
cmove eax, edx
or ecx, 0x10200
mov byte [esp + 0x604], al
jmp 0x45b4ad
or ecx, 0x4000000
jmp 0x45b4ad
test dword [edi + 0x3c], 0x40000
je 0x45b496
or ecx, 0x100
or ecx, 0x800
jmp 0x45b4ad
cmp byte [0x4af183], 0
je case.0x45b3c8.6
or ecx, 0x10000
mov dword [esp + 0x474], ecx
push 0
push 0xffffffffffffffff
push esi
lea eax, [esp + 0x480]
mov ecx, edi
push eax
push dword [esp + 0x6a0]
call fcn.0045efd0
test eax, eax
je 0x45e475
mov dl, byte [esp + 0x68c]
mov eax, dword [esp + 0x4d0]
cmp dl, 0xa
je 0x45b4ed
mov eax, dword [esi + 0x10]
cmp eax, 0xff000000
mov eax, dword [esp + 0x4d4]
setne byte [esp + 0x602]
cmp eax, 0xff000000
jne 0x45b51a
cmp dl, 0xb
je 0x45b53c
mov dword [esp + 0x4d4], 0xffffffff
jmp 0x45b53c
cmp eax, 0xffffffff
jne 0x45b53c
mov ecx, dword [edi + 0x5c]
cmp ecx, 0xff000000
je 0x45b53c
cmp dl, 0x12
je 0x45b53c
cmp dl, 0x19
cmovne eax, ecx
mov dword [esp + 0x4d4], eax
cmp dword [esp + 0x49c], 0x80000000
mov esi, dword [esp + 0x478]
jne 0x45b588
cmp dword [esp + 0x4a0], 0x80000000
jne 0x45b588
movss xmm0, dword [esp + 0x4a4]
comiss xmm0, dword [0x4a4228]
ja 0x45b588
mov ecx, dword [esp + 0x694]
mov edx, 0x4a33c0
call fcn.00409840
test eax, eax
jne 0x45b588
xor edx, edx
jmp 0x45b592
mov edx, esi
not edx
and edx, 0x2000
mov eax, dword [esp + 0x480]
mov ecx, esi
not eax
mov dword [esp + 0x470], edx
and eax, dword [esp + 0x47c]
not ecx
and ecx, dword [esp + 0x474]
mov dword [esp + 0x658], eax
or ecx, 0x40000000
mov eax, dword [esp + 0x614]
add eax, 0xfffffffd
mov dword [esp + 0x670], ecx
mov dword [esp + 0x610], eax
cmp eax, 0x10
ja case.0x45b5e5.10
movzx eax, byte [eax + 0x45e510]
jmp dword [eax*4 + 0x45e4e8]
and ecx, 0xfffffff7
or ecx, 7
jmp 0x45b601
test cl, 1
je 0x45b653
and ecx, 0xfffffff1
or ecx, 1
or ecx, edx
mov dword [esp + 0x670], ecx
mov edx, dword [esp + 0x674]
cmp byte [esp + 0x68c], 4
jne 0x45b8d2
cmp dword [edx + 0xc], 0
lea esi, [edx + 0xc]
jne 0x45b8d2
test byte [edx + 5], 1
jne 0x45b8d2
mov ecx, dword [edi]
cmp byte [ecx], 0x31
jne 0x45b7ae
cmp byte [ecx + 1], 0
jne 0x45b7ae
mov byte [esp + 0xc], 0
jmp 0x45b7c1
and ecx, 0xfffffff0
jmp 0x45b5ff
mov eax, ecx
and eax, 6
cmp al, 6
jne 0x45b669
and ecx, 0xfffffff6
or ecx, 6
jmp 0x45b5ff
and ecx, 0xfffffff3
or ecx, 3
jmp 0x45b5ff
and ecx, 0xfffffff9
or ecx, 9
test ecx, 0x20000
je 0x45b5ff
test esi, 0x10000
jne 0x45b5ff
or ecx, 0x10000
jmp 0x45b5ff
or ecx, 3
jmp 0x45b601
mov edx, dword [esp + 0x674]
test cl, 1
je 0x45b6bc
and ecx, 0xfffffff1
or ecx, 1
mov dword [esp + 0x670], ecx
jmp 0x45b60f
and ecx, 0xfffffff2
or ecx, 2
mov dword [esp + 0x670], ecx
jmp 0x45b60f
or ecx, 1
jmp 0x45b601
movss xmm0, dword [esp + 0x4a4]
comiss xmm0, dword [0x4a4228]
ja 0x45b70b
push 0xa
push dword [esp + 0x698]
call fcn.004855e4
mov esi, dword [esp + 0x480]
add esp, 8
mov ecx, dword [esp + 0x670]
test eax, eax
je 0x45b71b
mov eax, esi
not eax
and eax, 4
or ecx, eax
mov dword [esp + 0x670], ecx
test cl, 4
je case.0x45b5e5.10
not esi
and esi, 0x201040
or ecx, esi
jmp 0x45b601
mov edx, dword [esp + 0x674]
or ecx, 0x4000000
cmp dword [edi + 0x60], 0
je 0x45b74c
test byte [edx + 5], 0x20
je 0x45b755
cmp dword [edx + 0x10], 0xff000000
je 0x45b765
or ecx, 0x2000
mov byte [esp + 0x604], 0
jmp 0x45b76b
and ecx, 0xffffdfff
cmp dword [esp + 0x49c], 0x80000000
mov al, byte [esp + 0x607]
mov dword [esp + 0x670], ecx
je 0x45b78f
and al, 0xfe
mov byte [esp + 0x607], al
cmp dword [esp + 0x4a0], 0x80000000
je 0x45b60f
and al, 0xfd
mov byte [esp + 0x607], al
jmp 0x45b60f
lea edx, [esp + 0xc]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x45b7b4
push dword [esp + 0x694]
lea eax, [esp + 0x10]
push str.Button_s
push 0x400
push eax
call fcn.00471620
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x49bc4d
mov edx, 0x4a33d0
lea ecx, [esp + 0x34]
call fcn.00471db0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x49bc4d
mov edx, 0x4a2508
lea ecx, [esp + 0x4c]
call fcn.00471db0
add esp, 0x40
lea ecx, [esp + 0xc]
mov edx, 0x49bc80
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x49bc4d
call fcn.00471db0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x49bc4d
mov edx, 0x4a1058
lea ecx, [esp + 0x3c]
call fcn.00471db0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x49bc4d
mov edx, 0x4a2d9c
lea ecx, [esp + 0x54]
call fcn.00471db0
add esp, 0x48
lea ecx, [esp + 0xc]
mov edx, 0x4a33d4
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x49bc4d
call fcn.00471db0
add esp, 0x18
cmp byte [esp + 0xc], 0
je 0x45b8c8
lea eax, [esp + 0xc]
mov ecx, 0x4ae9b0
push eax
call fcn.00419dc0
test eax, eax
jne 0x45b8ca
push eax
push eax
lea eax, [esp + 0x14]
mov ecx, 0x4ae9b0
push eax
call fcn.0041efb0
test eax, eax
je 0x45b8c8
cmp dword [eax + 0x14], 4
jle 0x45b8ca
xor eax, eax
push eax
mov ecx, esi
call fcn.004015d0
mov esi, dword [esp + 0x674]
mov ecx, edi
mov al, byte [esi + 6]
push eax
mov dword [esp + 0x694], eax
call fcn.00465860
mov edx, eax
mov dword [esp + 0x41c], 0
mov dword [esp + 0x648], edx
mov dword [esp + 0x684], 0
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x45b926
lea edx, [ecx + ecx*4]
mov ecx, dword [edi + 0x18]
lea edx, [edx - 5]
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x648]
jmp 0x45b92d
lea eax, [esp + 0x410]
cmp dword [esp + 0x494], 0x80000000
mov dword [esp + 0x640], eax
jne 0x45ba18
cmp dword [esp + 0x498], 0x80000000
jne 0x45ba18
test edx, edx
je 0x45b9a5
movzx eax, byte [esi + 7]
mov ecx, edi
push eax
push dword [esp + 0x694]
call fcn.004659c0
test eax, eax
jne 0x45b9a5
mov eax, dword [esp + 0x648]
mov ecx, edi
push eax
lea eax, [esp + 0x638]
push eax
call fcn.00465ae0
mov eax, dword [edi + 0x78]
add eax, dword [esp + 0x634]
mov dword [esp + 0x494], eax
mov eax, dword [edi + 0x7c]
add eax, dword [esp + 0x638]
jmp 0x45b9c1
mov eax, dword [edi + 0x80]
mov dword [esp + 0x494], eax
mov eax, dword [edi + 0x8c]
add eax, dword [edi + 0x84]
add eax, dword [edi + 0x7c]
mov dh, byte [esp + 0x68c]
mov dword [esp + 0x498], eax
cmp dh, 1
je 0x45b9d9
cmp dh, 0x17
jne 0x45ba1f
cmp dword [edi + 0x10], 0
je 0x45ba1f
mov ecx, dword [esp + 0x640]
mov al, byte [ecx + 4]
cmp al, 1
je 0x45b9f1
cmp al, 0x17
jne 0x45ba1f
mov al, byte [ecx + 6]
cmp al, byte [esi + 6]
jne 0x45ba1f
mov al, byte [ecx + 7]
cmp al, byte [esi + 7]
jne 0x45ba1f
push 0x60
push dword [0x4ae95c]
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [esp + 0x498], eax
mov dh, byte [esp + 0x68c]
cmp dh, 0xe
je 0x45ba32
cmp dh, 0xa
je 0x45ba32
cmp dh, 0xb
je 0x45ba32
xor dl, dl
jmp 0x45ba34
mov dl, 1
test dl, dl
mov byte [esp + 0x693], dl
sete byte [esp + 0x66b]
cmp dword [esp + 0x4a0], 0x80000000
jne 0x45bc34
movss xmm1, dword [0x4a4218]
comiss xmm1, dword [esp + 0x4a4]
jbe 0x45bc34
mov esi, dword [esp + 0x610]
cmp esi, 0x15
ja case.0x45ba83.1
movzx eax, byte [esi + 0x45e550]
jmp dword [eax*4 + 0x45e524]
mov ecx, dword [esp + 0x670]
mov dword [esp + 0x4a4], 0x40400000
test cl, 1
je 0x45baa6
test cl, 2
je 0x45bab8
mov eax, ecx
and eax, 0x400
neg eax
sbb al, al
and byte [esp + 0x66b], al
mov dword [esp + 0x660], 0
mov dword [esp + 0x650], 0
jmp 0x45bc8c
mov dword [esp + 0x4a4], 0x40000000
mov dword [esp + 0x660], 0
mov dword [esp + 0x650], 0
jmp 0x45bc8c
mov eax, dword [esp + 0x694]
cmp byte [eax], 0
jne case.0x45ba83.1
test byte [esp + 0x670], 4
je 0x45bb39
mov dword [esp + 0x4a4], 0x40400000
mov dword [esp + 0x660], 0
mov dword [esp + 0x650], 0
jmp 0x45bc8c
mov dword [esp + 0x4a4], 0x3f800000
jmp case.0x45ba83.1
mov dword [esp + 0x4a4], 0x3f800000
mov dword [esp + 0x660], 0
mov dword [esp + 0x650], 0
jmp 0x45bc8c
test byte [esp + 0x670], 0x40
je 0x45bbb1
imul ecx, dword [edi + 0x50], 0x54
mov eax, dword [0x4ae904]
push 0x60
push dword [0x4ae95c]
mov eax, dword [ecx + eax + 0x44]
add eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dl, byte [esp + 0x693]
mov dh, byte [esp + 0x68c]
mov dword [esp + 0x4a0], eax
jmp case.0x45ba83.1
mov dword [esp + 0x4a4], 0x40a00000
jmp case.0x45ba83.1
mov ecx, dword [esp + 0x670]
test cl, 2
je 0x45bbf3
mov dword [esp + 0x4a4], 0x40a00000
mov dword [esp + 0x660], 0
mov dword [esp + 0x650], 0
jmp 0x45bc8c
push dword [esp + 0x4c0]
push ecx
call fcn.00465090
mov dl, byte [esp + 0x693]
mov dh, byte [esp + 0x68c]
mov dword [esp + 0x4a0], eax
jmp case.0x45ba83.1
test byte [esp + 0x670], 4
je 0x45bb79
jmp case.0x45ba83.7
mov dword [esp + 0x4a4], 0x41200000
jmp case.0x45ba83.1
cmp dh, 7
je 0x45bc3e
cmp dh, 8
jne 0x45bc52
mov ecx, dword [esp + 0x670]
or ecx, 0x400
mov dword [esp + 0x670], ecx
mov esi, dword [esp + 0x610]
movss xmm0, dword [esp + 0x4a4]
xorps xmm1, xmm1
comiss xmm0, xmm1
mov dword [esp + 0x660], 0
mov dword [esp + 0x650], 0
jbe case.0x45bd62.2
movss xmm1, dword [0x4a4218]
cmp dh, 3
je 0x45bc99
mov al, dh
sub al, 7
cmp al, 1
ja 0x45bcaf
movss xmm0, dword [esp + 0x4a4]
addss xmm0, xmm1
movss dword [esp + 0x4a4], xmm0
cmp byte [esp + 0x66b], 0
je 0x45bde5
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetDC]
imul edx, dword [edi + 0x50], 0x54
mov ecx, dword [0x4ae904]
mov dword [esp + 0x660], eax
push dword [edx + ecx + 0x50]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x650], eax
lea eax, [esp + 0x424]
push eax
push dword [esp + 0x664]
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
movss xmm2, dword [esp + 0x4a4]
cvtps2pd xmm0, xmm2
movd xmm1, dword [esp + 0x424]
addsd xmm0, qword [0x4a4238]
cvtdq2ps xmm1, xmm1
cvttsd2si ecx, xmm0
mulss xmm1, xmm2
lea eax, [ecx - 1]
imul eax, dword [esp + 0x434]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
addsd xmm0, qword [0x4a4238]
cvttsd2si eax, xmm0
mov dword [esp + 0x4a0], eax
cmp esi, 0x15
ja case.0x45bd62.2
movzx eax, byte [esi + 0x45e57c]
jmp dword [eax*4 + 0x45e568]
push 0x60
push dword [0x4ae95c]
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [esp + 0x4a0], eax
test dword [esp + 0x670], 0x100000
je case.0x45bd62.2
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add dword [esp + 0x4a0], eax
jmp case.0x45bd62.2
imul ecx, dword [edi + 0x50], 0x54
mov eax, dword [0x4ae904]
push 0x60
push dword [0x4ae95c]
mov eax, dword [ecx + eax + 0x44]
add eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [esp + 0x4a0], eax
jmp case.0x45bd62.2
mov eax, dword [edi + 0x7c]
imul eax, ecx
add dword [esp + 0x4a0], eax
jmp case.0x45bd62.2
lea eax, [ecx + 1]
imul eax, dword [edi + 0x7c]
add dword [esp + 0x4a0], eax
jmp case.0x45bd62.2
test dl, dl
jne case.0x45bd62.2
push 0x60
push dword [0x4ae95c]
push 0x1e
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x4a0], eax
cmp dword [esp + 0x4a0], 0x80000000
mov byte [esp + 0x64d], 0
je 0x45be26
cmp dword [esp + 0x49c], 0x80000000
jne 0x45c526
xor eax, eax
mov esi, 0x400
mov dword [esp + 0x664], eax
mov dword [esp + 0x60c], eax
mov eax, dword [esp + 0x614]
dec eax
mov dword [esp + 0x63c], esi
cmp eax, 0x16
ja case.0x45be5a.2
movzx eax, byte [eax + 0x45e5a0]
jmp dword [eax*4 + 0x45e594]
mov eax, dword [esp + 0x694]
cmp byte [eax], 0
je case.0x45be5a.2
mov eax, dword [esp + 0x660]
test eax, eax
jne 0x45beb0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetDC]
imul ecx, dword [edi + 0x50], 0x54
mov edx, eax
mov eax, dword [0x4ae904]
mov dword [esp + 0x660], edx
push dword [ecx + eax + 0x50]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x650], eax
mov eax, dword [esp + 0x660]
lea ecx, [esp + 0x424]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov esi, dword [esp + 0x438]
add esi, 4
test dword [esp + 0x670], 0x200000
mov dword [esp + 0x664], esi
je 0x45beee
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add esi, eax
mov dword [esp + 0x664], esi
mov esi, dword [esp + 0x694]
cmp byte [esi], 0
je 0x45bf27
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45bf00
sub ecx, edx
cmp byte [ecx + esi - 1], 0xa
jne 0x45bf27
mov eax, dword [esp + 0x434]
mov ecx, dword [esp + 0x424]
add eax, ecx
mov dword [esp + 0x60c], eax
mov esi, 0x2c40
mov dword [esp + 0x63c], esi
mov eax, dword [esp + 0x660]
test eax, eax
jne 0x45bf72
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetDC]
imul ecx, dword [edi + 0x50], 0x54
mov edx, eax
mov eax, dword [0x4ae904]
mov dword [esp + 0x660], edx
push dword [ecx + eax + 0x50]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x650], eax
mov eax, dword [esp + 0x660]
mov cl, byte [esp + 0x68c]
cmp cl, 1
jne 0x45bfa9
mov eax, dword [esp + 0x670]
or esi, 0x40
mov edi, dword [esp + 0x664]
mov dword [esp + 0x63c], esi
test al, al
jns 0x45bffb
or esi, 0x800
mov dword [esp + 0x63c], esi
jmp 0x45bffb
cmp cl, 5
je 0x45bfb3
cmp cl, 6
jne 0x45bfed
lea ecx, [esp + 0x424]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
push 0x47
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edi, dword [esp + 0x664]
add eax, dword [esp + 0x438]
add edi, 2
mov cl, byte [esp + 0x68c]
add edi, eax
mov dword [esp + 0x664], edi
jmp 0x45bff4
mov edi, dword [esp + 0x664]
mov eax, dword [esp + 0x670]
test eax, 0x800000
je 0x45c030
cmp cl, 1
je 0x45c00c
cmp cl, 0x17
jne 0x45c030
push 5
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edi, eax
add edi, edi
push 6
mov dword [esp + 0x668], edi
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, eax
mov dword [esp + 0x60c], eax
cmp dword [esp + 0x49c], 0x80000000
je 0x45c047
or esi, 0x10
mov dword [esp + 0x63c], esi
cmp dword [esp + 0x49c], 0x80000000
mov dword [esp + 0x45c], 0
mov dword [esp + 0x460], 0
jne 0x45c077
mov dword [esp + 0x464], 0
jmp 0x45c087
mov eax, dword [esp + 0x49c]
sub eax, edi
mov dword [esp + 0x464], eax
mov eax, dword [esp + 0x4a0]
xor ecx, ecx
cmp eax, 0x80000000
cmove eax, ecx
mov dword [esp + 0x468], eax
xor al, al
cmp byte [esp + 0x68c], 0x17
mov byte [esp + 0x693], al
jne 0x45c2a7
test byte [esp + 0x670], 4
je 0x45c0cd
or esi, 0x800
mov dword [esp + 0x63c], esi
mov ecx, dword [esp + 0x694]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c0d7
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.0048578d
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x694]
mov edi, ecx
mov esi, eax
mov dword [esp + 0x46c], ecx
mov dword [esp + 0x644], esi
mov dword [esp + 0x618], edi
cmp byte [eax], 0
je 0x45c22d
cmp byte [esi], 0x3c
jne 0x45c209
mov cl, byte [esi + 1]
call fcn.00409810
cmp al, 0x41
jne 0x45c209
add esi, 2
mov al, byte [esi]
cmp al, 0x20
je 0x45c13d
cmp al, 9
jne 0x45c140
inc esi
jmp 0x45c133
cmp byte [esi], 0x3e
je 0x45c1a2
movzx eax, byte [esi]
test eax, 0xffffff80
jne 0x45c164
push 0x107
push eax
call fcn.00485bac
add esp, 8
test eax, eax
je 0x45c164
inc esi
jmp 0x45c145
cmp byte [esi], 0x3d
jne 0x45c202
cmp byte [esi + 1], 0x22
jne 0x45c202
lea eax, [esi + 2]
push 0x22
push eax
call fcn.004855e4
add esp, 8
test eax, eax
je 0x45c202
lea esi, [eax + 1]
lea esp, [esp]
mov al, byte [esi]
cmp al, 0x20
je 0x45c19a
cmp al, 9
jne 0x45c19d
inc esi
jmp 0x45c190
cmp byte [esi], 0x3e
jne 0x45c145
inc esi
je 0x45c202
mov edx, str.__a_
mov ecx, esi
call fcn.00471970
mov edi, eax
mov dword [esp + 0x638], edi
test edi, edi
je 0x45c1fb
mov edx, edi
xor eax, eax
sub edx, esi
xor ecx, ecx
cmp esi, edi
cmova edx, eax
test edx, edx
je 0x45c1ef
mov edi, dword [esp + 0x618]
mov al, byte [esi + ecx]
inc ecx
mov byte [edi], al
inc edi
cmp ecx, edx
jb 0x45c1d6
mov dword [esp + 0x618], edi
mov edi, dword [esp + 0x638]
lea esi, [edi + 3]
mov edi, dword [esp + 0x618]
jmp 0x45c215
mov edi, dword [esp + 0x618]
mov esi, dword [esp + 0x644]
mov al, byte [esi]
mov byte [edi], al
inc edi
mov dword [esp + 0x618], edi
inc esi
mov dword [esp + 0x644], esi
cmp byte [esi], 0
jne 0x45c117
mov ecx, dword [esp + 0x46c]
mov byte [edi], 0
cmp edi, ecx
jbe 0x45c23e
mov al, byte [edi - 1]
mov byte [esp + 0x693], al
push dword [esp + 0x63c]
cmp byte [ecx], 0
lea eax, [esp + 0x460]
push eax
push 0xffffffffffffffff
mov eax, 0x4a33e0
cmovne eax, ecx
push eax
push dword [esp + 0x670]
call dword [sym.imp.USER32.dll_DrawTextA]
push dword [esp + 0x46c]
mov edi, eax
call fcn.00485ba7
add esp, 4
mov cl, byte [esp + 0x693]
mov esi, dword [esp + 0x464]
mov eax, dword [esp + 0x614]
sub esi, dword [esp + 0x45c]
dec eax
je 0x45c2f9
sub eax, 3
je 0x45c2ef
sub eax, 8
je 0x45c2f9
jmp 0x45c328
push esi
mov esi, dword [esp + 0x698]
lea eax, [esp + 0x460]
push eax
push 0xffffffffffffffff
mov eax, 0x4a33e0
cmp byte [esi], cl
cmovne eax, esi
push eax
push dword [esp + 0x670]
call dword [sym.imp.USER32.dll_DrawTextA]
cmp byte [esi], 0
mov edi, eax
je 0x45c279
mov ecx, esi
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45c2e0
sub ecx, edx
mov cl, byte [ecx + esi - 1]
jmp 0x45c280
cmp dword [esp + 0x470], 0
jne 0x45c328
test cl, cl
je 0x45c328
movsx eax, cl
lea ecx, [esp + 0x630]
push ecx
push eax
push eax
push dword [esp + 0x66c]
call dword [sym.imp.GDI32.dll_GetCharABCWidthsA]
test eax, eax
je 0x45c328
mov eax, dword [esp + 0x638]
test eax, eax
jns 0x45c328
sub esi, eax
mov eax, dword [esp + 0x4a0]
mov cl, byte [esp + 0x68c]
cmp eax, 0x80000000
je 0x45c34e
cmp edi, eax
jle 0x45c47b
cmp cl, 0xc
je 0x45c47b
mov edx, dword [esp + 0x60c]
add edx, edi
mov dword [esp + 0x4a0], edx
cmp cl, 0xc
jne 0x45c44d
push 0x60
push dword [0x4ae95c]
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [esp + 0x4a0], eax
test dword [esp + 0x670], 0x100000
je 0x45c39a
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add dword [esp + 0x4a0], eax
mov edi, dword [esp + 0x66c]
mov cl, byte [esp + 0x68c]
mov eax, dword [esp + 0x49c]
cmp eax, 0x80000000
je 0x45c3ba
cmp esi, eax
jle case.0x45be5a.2
mov eax, dword [esp + 0x664]
add eax, esi
mov byte [esp + 0x64d], 1
mov dword [esp + 0x49c], eax
cmp cl, 4
jne case.0x45be5a.2
push 0x2d
call dword [sym.imp.USER32.dll_GetSystemMetrics]
imul edx, dword [edi + 0x50], 0x54
mov ecx, dword [0x4ae904]
mov ecx, dword [edx + ecx + 0x44]
lea eax, [ecx + eax*2]
add dword [esp + 0x49c], eax
cmp dword [esp + 0x49c], 0x80000000
mov esi, dword [sym.imp.KERNEL32.dll_MulDiv]
jne case.0x45c446.1
imul ecx, dword [edi + 0x50], 0x54
mov eax, dword [0x4ae904]
push 0x60
push dword [0x4ae95c]
mov eax, dword [ecx + eax + 0x44]
mov ecx, eax
shl ecx, 4
sub ecx, eax
push ecx
call esi
mov edx, eax
mov eax, dword [esp + 0x610]
cmp eax, 0x15
ja case.0x45c446.1
movzx ecx, byte [eax + 0x45e5d8]
jmp dword [ecx*4 + 0x45e5b8]
mov edi, dword [esp + 0x66c]
cmp cl, 4
jne 0x45c3a8
imul ecx, dword [edi + 0x50], 0x54
mov eax, dword [0x4ae904]
mov eax, dword [ecx + eax + 0x44]
add eax, 2
add eax, edx
mov dword [esp + 0x4a0], eax
jmp 0x45c3a1
mov edi, dword [esp + 0x66c]
jmp 0x45c3a8
mov dword [esp + 0x49c], edx
jmp case.0x45c446.1
lea eax, [edx + edx]
mov dword [esp + 0x49c], eax
jmp case.0x45c446.1
mov eax, dword [esp + 0x670]
test al, 0x40
je 0x45c4e2
mov dword [esp + 0x49c], edx
jmp 0x45c533
mov eax, dword [esp + 0x670]
test al, 2
je 0x45c4ad
push dword [esp + 0x4c0]
push eax
call fcn.00465090
mov dword [esp + 0x49c], eax
jmp case.0x45c446.1
mov eax, dword [esp + 0x670]
test al, 4
je 0x45c4ad
imul ecx, dword [edi + 0x50], 0x54
mov eax, dword [0x4ae904]
push 0x60
push dword [0x4ae95c]
mov eax, dword [ecx + eax + 0x44]
add eax, eax
push eax
call esi
mov dword [esp + 0x49c], eax
jmp case.0x45c446.1
mov eax, dword [edi + 0x78]
lea eax, [edx + eax*2]
mov dword [esp + 0x49c], eax
jmp case.0x45c446.1
mov eax, dword [edi + 0x78]
lea eax, [eax + eax*2]
lea eax, [eax + edx*2]
mov dword [esp + 0x49c], eax
jmp case.0x45c446.1
mov esi, dword [sym.imp.KERNEL32.dll_MulDiv]
mov eax, dword [esp + 0x670]
cmp byte [esp + 0x68c], 0xc
jne 0x45c663
test al, 4
jne 0x45c663
movss xmm0, dword [0x4a4218]
comiss xmm0, dword [esp + 0x4a4]
jbe 0x45c663
mov eax, dword [esp + 0x660]
test eax, eax
jne 0x45c59e
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetDC]
imul ecx, dword [edi + 0x50], 0x54
mov edx, eax
mov eax, dword [0x4ae904]
mov dword [esp + 0x660], edx
push dword [ecx + eax + 0x50]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x650], eax
mov eax, dword [esp + 0x660]
lea ecx, [esp + 0x424]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
push 0x60
push dword [0x4ae95c]
push 8
call esi
mov esi, dword [esp + 0x4a0]
mov edx, dword [esp + 0x424]
sub esi, eax
mov ecx, dword [esp + 0x670]
sub esi, edx
test ecx, 0x100000
je 0x45c5f2
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [esp + 0x424]
sub esi, eax
mov ecx, dword [esp + 0x670]
test esi, esi
jle 0x45c658
mov eax, dword [esp + 0x434]
add eax, edx
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
addss xmm1, dword [0x4a4218]
comiss xmm1, dword [0x4a4228]
movss dword [esp + 0x4a4], xmm1
jbe 0x45c663
mov edx, dword [esp + 0x478]
not edx
mov eax, edx
and eax, 4
or ecx, eax
mov dword [esp + 0x670], ecx
test cl, 4
je 0x45c663
and edx, 0x201040
or ecx, edx
mov dword [esp + 0x670], ecx
jmp 0x45c663
mov dword [esp + 0x4a4], 0x3f800000
cmp byte [esp + 0x604], 0
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
sete byte [esp + 0x64e]
push eax
mov byte [esp + 0x65b], 0
add esi, 3
mov dword [esp + 0x668], eax
mov byte [esp + 0x663], 0
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x45c6b3
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsIconic]
mov byte [esp + 0x693], 1
test eax, eax
je 0x45c6bb
mov byte [esp + 0x693], 0
mov eax, dword [esp + 0x674]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov byte [esp + 0x64c], 0
cmp byte [eax + 6], 0xff
jae 0x45c79d
mov eax, dword [esp + 0x648]
test eax, eax
je 0x45c7bc
push str.ahk_dlg
push dword [eax]
call dword [sym.imp.USER32.dll_GetPropA]
test eax, eax
je 0x45c754
mov ecx, dword [esp + 0x494]
mov dword [esp + 0x634], ecx
mov ecx, dword [esp + 0x498]
push 1
mov dword [esp + 0x63c], ecx
lea ecx, [esp + 0x638]
push ecx
push eax
mov dword [esp + 0x670], eax
mov eax, dword [esp + 0x678]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0x634]
mov dword [esp + 0x494], eax
mov eax, dword [esp + 0x638]
mov dword [esp + 0x498], eax
mov eax, dword [esp + 0x648]
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x10000000
je 0x45c7bc
mov eax, dword [esp + 0x648]
push 0
push 0
push 0x130b
push dword [eax]
call edi
mov edx, dword [esp + 0x674]
movzx ecx, byte [edx + 7]
cmp eax, ecx
jne 0x45c7bc
mov al, byte [esp + 0x693]
mov byte [esp + 0x64c], al
mov edx, dword [esp + 0x670]
mov eax, dword [esp + 0x614]
dec eax
cmp eax, 0x18
ja case.0x45c7b5.20
jmp dword [eax*4 + 0x45e5f0]
mov edx, dword [esp + 0x670]
and edx, 0xefffffff
mov dword [esp + 0x670], edx
jmp 0x45c7a4
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push dword [esp + 0x6b8]
push str.static
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
jmp case.0x45c7b5.20
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push dword [esp + 0x6b8]
push str.SysLink
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
jmp case.0x45c7b5.20
mov ecx, dword [esp + 0x49c]
xor eax, eax
cmp ecx, 0x80000000
cmove ecx, eax
mov eax, dword [esp + 0x4a0]
xor edi, edi
mov dword [esp + 0x49c], ecx
push edi
push dword [0x4ad120]
cmp eax, 0x80000000
push esi
push dword [esp + 0x670]
mov esi, dword [esp + 0x6a4]
cmove eax, edi
push eax
push ecx
push dword [esp + 0x4b0]
mov dword [esp + 0x4bc], eax
push dword [esp + 0x4b0]
push edx
push esi
push str.static
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
test eax, eax
je case.0x45c7b5.20
push dword [esp + 0x4e4]
push dword [esp + 0x4a4]
push dword [esp + 0x4a4]
push esi
push ecx
call fcn.00461630
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
mov edi, dword [esp + 0x66c]
test eax, eax
je 0x45df77
mov byte [esp + 0x657], 1
jmp 0x45df77
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push dword [esp + 0x6b8]
push str.button
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
jmp case.0x45c7b5.20
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push dword [esp + 0x6b8]
push str.button
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
test eax, eax
je case.0x45c7b5.20
test byte [esp + 0x670], 1
je case.0x45c7b5.20
mov esi, dword [esp + 0x66c]
mov eax, dword [esi + 0x1c]
cmp eax, dword [esi + 0x10]
jae 0x45ca28
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x18]
push 1
push 0xfffffffffffffff0
push dword [eax + ecx*4]
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0xfffe
push eax
mov eax, dword [esi + 0x1c]
push 0xf4
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x18]
push dword [eax + ecx*4]
call edi
mov eax, dword [esi + 0x10]
push 0
mov dword [esi + 0x1c], eax
add eax, 3
push eax
push 0x401
push dword [esi + 4]
call edi
mov eax, dword [esp + 0x670]
push 1
movzx eax, ax
push eax
mov eax, dword [esp + 0x67c]
push 0xf4
push dword [eax]
jmp 0x45df68
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push dword [esp + 0x6b8]
push str.button
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
test eax, eax
je case.0x45c7b5.20
mov ecx, dword [esp + 0x4e0]
test ecx, ecx
je case.0x45c7b5.20
push 0
push ecx
push 0xf1
jmp 0x45df67
cmp dword [esp + 0x4d8], 0
je 0x45caf2
mov eax, dword [esp + 0x674]
cmp byte [eax + 4], 8
jne 0x45caf2
and edx, 0xffffffbf
mov dword [esp + 0x670], edx
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.Combobox
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [esp + 0x674]
mov dword [esi], eax
test eax, eax
je case.0x45c7b5.20
movzx ecx, byte [esp + 0x693]
push ecx
mov ecx, dword [esp + 0x670]
imul edx, dword [ecx + 0x50], 0x54
mov ecx, dword [0x4ae904]
push dword [edx + ecx + 0x50]
push 0x30
push eax
call edi
cmp byte [esp + 0x66b], 0
mov byte [esp + 0x65f], 1
je 0x45cc15
push 0
push 0
push 0x154
push dword [esi]
call edi
mov edi, eax
mov eax, dword [esp + 0x670]
test al, 1
je 0x45cba3
mov esi, 4
test al, 2
je 0x45cba8
mov esi, 2
push 0x60
push dword [0x4ae95c]
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x4a0]
add eax, esi
lea eax, [eax + edi*2]
cmp ecx, eax
jge 0x45cbd3
mov ecx, eax
mov dword [esp + 0x4a0], ecx
jmp 0x45cc1c
movss xmm0, dword [esp + 0x4a4]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x45cc1c
push 0x60
push dword [0x4ae95c]
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x4a4]
cvttss2si ecx, xmm0
add ecx, esi
add ecx, eax
mov dword [esp + 0x4a0], ecx
jmp 0x45cc1c
mov ecx, dword [esp + 0x4a0]
mov eax, dword [esp + 0x674]
mov esi, dword [sym.imp.USER32.dll_MoveWindow]
push 1
push ecx
push dword [esp + 0x4a4]
push dword [esp + 0x4a4]
push dword [esp + 0x4a4]
push dword [eax]
call esi
mov byte [esp + 0x657], 1
jmp case.0x45c7b5.20
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.Listbox
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [esp + 0x674]
mov dword [esi], eax
test eax, eax
je case.0x45c7b5.20
mov ecx, dword [esp + 0x5b0]
test ecx, ecx
je 0x45ccc3
lea edx, [esp + 0x4e8]
push edx
push ecx
push 0x192
push eax
call edi
movzx eax, byte [esp + 0x693]
push eax
mov eax, dword [esp + 0x670]
imul ecx, dword [eax + 0x50], 0x54
mov eax, dword [0x4ae904]
push dword [ecx + eax + 0x50]
push 0x30
push dword [esi]
call edi
push 0
push 0
push 0x1a1
push dword [esi]
mov byte [esp + 0x66f], 1
call edi
push 0x60
push dword [0x4ae95c]
mov edi, eax
push 8
mov dword [esp + 0x644], edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
lea esi, [edi + eax]
mov edi, dword [esp + 0x670]
and edi, 0x100000
je 0x45cd30
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add esi, eax
mov ecx, dword [esp + 0x4a0]
cmp ecx, esi
jge 0x45cd3f
mov ecx, esi
jmp 0x45cd97
movss xmm0, dword [esp + 0x4a4]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x45cd9e
push 0x60
push dword [0x4ae95c]
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
movd xmm0, dword [esp + 0x638]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x4a4]
cvttss2si ecx, xmm0
add ecx, eax
mov dword [esp + 0x4a0], ecx
test edi, edi
je 0x45cd9e
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esp + 0x4a0]
add ecx, eax
mov dword [esp + 0x4a0], ecx
mov eax, dword [esp + 0x674]
mov esi, dword [sym.imp.USER32.dll_MoveWindow]
push 1
push ecx
push dword [esp + 0x4a4]
push dword [esp + 0x4a4]
push dword [esp + 0x4a4]
push dword [eax]
call esi
mov byte [esp + 0x657], 1
jmp case.0x45c7b5.20
mov eax, dword [esp + 0x488]
cmp eax, 4
je 0x45cdec
and edx, 0xfffffffc
or edx, eax
mov dword [esp + 0x670], edx
mov eax, dword [esp + 0x4a0]
mov ecx, 0xc8
push 0
push dword [0x4ad120]
cmp eax, 0x80000000
push esi
push dword [esp + 0x670]
cmove eax, ecx
push eax
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.SysListView32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
mov eax, dword [esp + 0x674]
mov dword [eax], esi
test esi, esi
je case.0x45c7b5.20
push 0x3f8
call fcn.00484535
mov ecx, dword [esp + 0x678]
add esp, 4
mov dword [ecx + 0x10], eax
test eax, eax
jne 0x45ce85
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [esp + 0x674]
mov dword [eax], 0
jmp case.0x45c7b5.20
mov esi, dword [esp + 0x66c]
push 0x3f8
push 0
mov dword [esi + 0x48], ecx
push dword [ecx + 0x10]
call fcn.0048e820
mov edx, dword [esp + 0x680]
add esp, 0xc
mov eax, dword [edx + 0x10]
mov dword [eax], 0xffffffff
mov ecx, dword [edx + 0x10]
mov al, byte [esp + 0x605]
mov byte [ecx + 5], al
mov eax, dword [esp + 0x648]
test eax, eax
je 0x45cecd
or byte [eax + 5], 0x80
cmp dword [esp + 0x488], 4
jne 0x45ceeb
push 0
push 4
push 0x108e
push dword [edx]
call edi
mov edx, dword [esp + 0x674]
mov eax, dword [esp + 0x484]
test eax, eax
je 0x45cf02
push eax
push 0
push 0x1036
push dword [edx]
call edi
lea eax, [esp + 0x474]
push eax
push dword [esp + 0x678]
call fcn.004651f0
cmp dword [esp + 0x4a0], 0x80000000
jne case.0x45c7b5.20
imul ecx, dword [esi + 0x50], 0x54
movzx eax, byte [esp + 0x693]
push eax
mov eax, dword [0x4ae904]
push dword [ecx + eax + 0x50]
mov eax, dword [esp + 0x67c]
push 0x30
push dword [eax]
call edi
mov eax, dword [esp + 0x488]
mov byte [esp + 0x65f], 1
dec eax
je 0x45d0b8
sub eax, 3
je 0x45d085
mov eax, dword [esp + 0x660]
test eax, eax
jne 0x45cfa8
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDC]
imul ecx, dword [esi + 0x50], 0x54
mov edx, eax
mov eax, dword [0x4ae904]
mov dword [esp + 0x660], edx
push dword [ecx + eax + 0x50]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x650], eax
mov eax, dword [esp + 0x660]
lea ecx, [esp + 0x424]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
cmp dword [esp + 0x488], 0
jne 0x45d048
mov eax, dword [esp + 0x674]
push 0
push 0
push 0x1033
push dword [eax]
call edi
movss xmm1, dword [esp + 0x4a4]
subss xmm1, dword [0x4a4218]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4a4390]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
call fcn.00494ac0
mov esi, eax
push 0xc
shr esi, 0x10
call dword [sym.imp.USER32.dll_GetSystemMetrics]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [esp + 0x424]
cvtdq2ps xmm0, xmm0
add eax, 0x10
mulss xmm0, dword [esp + 0x4a4]
addss xmm0, xmm1
cvttss2si ecx, xmm0
add eax, ecx
jmp 0x45d0e0
push 0x32
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esp + 0x424]
cmp eax, ecx
movss xmm0, dword [esp + 0x4a4]
cmovg ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
subss xmm0, dword [0x4a4218]
addss xmm1, xmm0
cvttss2si eax, xmm1
add eax, 0xb
jmp 0x45d0e0
mov eax, dword [esp + 0x674]
push 0
push 0
push 0x1033
push dword [eax]
call edi
shr eax, 0x10
sub eax, 3
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x4a4]
cvttss2si eax, xmm0
add eax, 7
jmp 0x45d0e0
movss xmm0, dword [esp + 0x4a4]
push 0xffffffffffffffff
call fcn.00494ac0
dec eax
push eax
mov eax, dword [esp + 0x67c]
push 0x1040
push dword [eax]
call edi
shr eax, 0x10
add eax, 4
push 1
push eax
push dword [esp + 0x4a4]
mov dword [esp + 0x4ac], eax
push dword [esp + 0x4a4]
mov eax, dword [esp + 0x684]
push dword [esp + 0x4a4]
mov esi, dword [sym.imp.USER32.dll_MoveWindow]
push dword [eax]
call esi
jmp case.0x45c7b5.20
mov eax, dword [esp + 0x4a0]
mov ecx, 0xc8
push 0
push dword [0x4ad120]
cmp eax, 0x80000000
push esi
push dword [esp + 0x670]
cmove eax, ecx
push eax
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.SysTreeView32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
test eax, eax
je case.0x45c7b5.20
cmp dword [esp + 0x4e0], 0
mov esi, dword [esp + 0x66c]
mov dword [esi + 0x4c], ecx
je 0x45d1ab
mov eax, dword [esp + 0x670]
or eax, 0x100
push eax
mov eax, dword [sym.imp.USER32.dll_SetWindowLongA]
push 0xfffffffffffffff0
push dword [ecx]
call eax
mov ecx, dword [esp + 0x674]
lea eax, [esp + 0x474]
push eax
push ecx
call fcn.004652a0
mov eax, dword [esp + 0x48c]
test eax, eax
je 0x45d1d7
push eax
mov eax, dword [esp + 0x678]
push 0
push 0x1109
push dword [eax]
call edi
cmp dword [esp + 0x4a0], 0x80000000
jne case.0x45c7b5.20
imul ecx, dword [esi + 0x50], 0x54
movzx eax, byte [esp + 0x693]
push eax
mov eax, dword [0x4ae904]
push dword [ecx + eax + 0x50]
mov eax, dword [esp + 0x67c]
push 0x30
push dword [eax]
call edi
mov eax, dword [esp + 0x674]
push 0
push 0
push 0x111c
push dword [eax]
mov byte [esp + 0x66f], 1
call edi
mov dword [esp + 0x4a0], eax
cmp eax, 2
jge 0x45d242
imul ecx, dword [esi + 0x50], 0x54
mov eax, dword [0x4ae904]
mov eax, dword [ecx + eax + 0x44]
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x4a4]
cvttss2si eax, xmm0
jmp 0x45d0dd
test dl, 4
jne 0x45d289
cmp dword [esp + 0x4d8], 0
jge 0x45d272
and edx, 0xffefff7f
jmp 0x45d282
mov eax, dword [esp + 0x478]
not eax
and eax, 0x80
or edx, eax
mov dword [esp + 0x670], edx
mov eax, dword [esp + 0x694]
cmp byte [eax], 0
je 0x45d2b3
test dl, 4
je 0x45d2b3
mov ecx, eax
call fcn.004722e0
mov edx, dword [esp + 0x670]
mov edi, eax
mov eax, dword [esp + 0x694]
jmp 0x45d2b5
mov edi, eax
push 0
push dword [0x4ad120]
test edi, edi
push esi
push dword [esp + 0x670]
cmovne eax, edi
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push eax
push str.edit
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
mov edx, eax
mov eax, dword [esp + 0x674]
mov dword [eax], edx
test edx, edx
je 0x45d37d
test byte [esp + 0x670], 0x20
je 0x45d332
mov cl, byte [esp + 0x600]
test cl, cl
je 0x45d332
push 0
movsx eax, cl
push eax
push 0xcc
push edx
call esi
mov eax, dword [esp + 0x4d8]
xor ecx, ecx
test eax, eax
push ecx
cmovs eax, ecx
push eax
mov dword [esp + 0x4e0], eax
mov eax, dword [esp + 0x67c]
push 0xc5
push dword [eax]
call esi
mov eax, dword [esp + 0x5b0]
test eax, eax
je 0x45d37d
lea ecx, [esp + 0x4e8]
push ecx
push eax
mov eax, dword [esp + 0x67c]
push 0xcb
push dword [eax]
call esi
test edi, edi
je 0x45df70
cmp edi, dword [esp + 0x694]
je 0x45df70
push edi
call fcn.004843d4
add esp, 4
jmp 0x45df70
mov eax, dword [esp + 0x694]
mov byte [esp + 0x66b], 0
cmp byte [eax], 0
je 0x45d414
push str.LongDate
push eax
call fcn.00484212
add esp, 8
test eax, eax
jne 0x45d3dc
mov eax, dword [esp + 0x670]
and eax, 0xfffffff6
or eax, 4
mov dword [esp + 0x670], eax
jmp 0x45d41b
push str.Time
push dword [esp + 0x698]
call fcn.00484212
add esp, 8
test eax, eax
mov eax, dword [esp + 0x670]
jne 0x45d40a
and eax, 0xfffffffb
or eax, 9
mov dword [esp + 0x670], eax
jmp 0x45d41b
mov byte [esp + 0x66b], 1
jmp 0x45d41b
mov eax, dword [esp + 0x670]
cmp dword [esp + 0x4a8], 2
jne 0x45d42f
or eax, 2
mov dword [esp + 0x670], eax
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push eax
push 0x49bc4d
push str.SysDateTimePick32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [esp + 0x674]
mov dword [esi], eax
test eax, eax
je case.0x45c7b5.20
cmp byte [esp + 0x66b], 0
je 0x45d49f
push dword [esp + 0x694]
push 0
push 0x1005
push eax
call edi
mov eax, dword [esp + 0x5f8]
test eax, eax
je 0x45d4bc
lea ecx, [esp + 0x5d4]
push ecx
push eax
push 0x1004
push dword [esi]
call edi
mov ecx, dword [esp + 0x4a8]
test ecx, ecx
je 0x45d4e1
lea eax, [esp + 0x5b4]
push eax
xor eax, eax
cmp ecx, 1
setne al
push eax
push 0x1002
push dword [esi]
call edi
mov eax, dword [esi + 0x10]
cmp eax, 0xff000000
je case.0x45c7b5.20
push eax
push 1
push 0x1006
push dword [esi]
jmp 0x45df68
cmp dword [esp + 0x5f4], 0
jne 0x45d536
mov eax, dword [esp + 0x694]
cmp byte [eax], 0
je 0x45d536
lea edx, [esp + 0x5b4]
mov ecx, eax
call fcn.00471060
mov dword [esp + 0x5f4], eax
cmp eax, 3
jne 0x45d536
or dword [esp + 0x670], 2
mov eax, dword [esp + 0x4a0]
mov ecx, 0x64
push 0
push dword [0x4ad120]
cmp eax, 0x80000000
push esi
push dword [esp + 0x670]
cmove eax, ecx
push eax
mov eax, dword [esp + 0x4b0]
test eax, eax
cmovs eax, ecx
push eax
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x690]
push 0x49bc4d
push str.SysMonthCal32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
test eax, eax
je case.0x45c7b5.20
mov esi, dword [esp + 0x670]
and esi, 2
je 0x45d5c7
push 0
push 0x16e
push 0x1004
push eax
call edi
mov ecx, dword [esp + 0x674]
mov eax, dword [esp + 0x5f8]
test eax, eax
je 0x45d5e4
lea edx, [esp + 0x5d4]
push edx
push eax
push 0x1012
push dword [ecx]
call edi
mov eax, dword [esp + 0x5f4]
test eax, eax
je 0x45d635
test esi, esi
je 0x45d61b
cmp eax, 1
jne 0x45d60a
movdqu xmm0, xmmword [esp + 0x5b4]
movdqu xmmword [esp + 0x5c4], xmm0
lea eax, [esp + 0x5b4]
push eax
push 0
push 0x1006
jmp 0x45d62a
lea eax, [esp + 0x5b4]
push eax
push 0
push 0x1002
mov eax, dword [esp + 0x680]
push dword [eax]
call edi
mov ecx, dword [esp + 0x674]
mov eax, dword [ecx + 0x10]
cmp eax, 0xff000000
je 0x45d652
push eax
push 1
push 0x100a
push dword [ecx]
call edi
mov esi, dword [esp + 0x66c]
movzx eax, byte [esp + 0x693]
push eax
mov eax, dword [0x4ae904]
imul ecx, dword [esi + 0x50], 0x54
push dword [ecx + eax + 0x50]
mov eax, dword [esp + 0x67c]
push 0x30
push dword [eax]
call edi
cmp dword [esp + 0x49c], 0x80000000
mov byte [esp + 0x65f], 1
je 0x45d6a2
cmp dword [esp + 0x4a0], 0x80000000
jne case.0x45c7b5.20
lea eax, [esp + 0x61c]
push eax
mov eax, dword [esp + 0x678]
push 0
push 0x1009
push dword [eax]
call edi
test eax, eax
je case.0x45c7b5.20
mov ecx, dword [esp + 0x49c]
test ecx, ecx
jns 0x45d72c
test byte [esp + 0x670], 0x10
je 0x45d6e2
mov eax, dword [esp + 0x624]
jmp 0x45d70c
mov eax, dword [esp + 0x674]
push 0
push 0
push 0x1015
push dword [eax]
call edi
cmp eax, dword [esp + 0x624]
mov ecx, dword [esp + 0x49c]
cmovl eax, dword [esp + 0x624]
cmp ecx, 0x80000000
jne 0x45d718
mov ecx, eax
jmp 0x45d725
add eax, 6
imul eax, ecx
mov ecx, 0xfffffffa
sub ecx, eax
mov dword [esp + 0x49c], ecx
mov edx, dword [esp + 0x4a0]
cmp edx, 0x80000000
jne 0x45d829
movss xmm0, dword [esp + 0x4a4]
xorps xmm1, xmm1
comiss xmm0, xmm1
mov edx, dword [esp + 0x628]
mov dword [esp + 0x4a0], edx
jbe 0x45d829
ucomiss xmm0, dword [0x4a4218]
lahf
test ah, 0x44
jnp 0x45d829
mov eax, dword [esp + 0x660]
test eax, eax
jne 0x45d7b2
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDC]
imul ecx, dword [esi + 0x50], 0x54
mov edx, eax
mov eax, dword [0x4ae904]
mov dword [esp + 0x660], edx
push dword [ecx + eax + 0x50]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x650], eax
mov eax, dword [esp + 0x660]
lea ecx, [esp + 0x424]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
test byte [esp + 0x670], 0x10
mov ecx, dword [esp + 0x424]
mov eax, dword [esp + 0x4a0]
je 0x45d7de
add eax, 4
add eax, ecx
movss xmm2, dword [esp + 0x4a4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
subss xmm2, dword [0x4a4218]
cvttss2si eax, xmm0
movd xmm1, eax
lea eax, [ecx - 2]
mov ecx, dword [esp + 0x49c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm2
subss xmm1, xmm0
cvttss2si edx, xmm1
mov dword [esp + 0x4a0], edx
push 1
push edx
push ecx
jmp 0x45d0f1
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.msctls_hotkey32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [esp + 0x674]
mov dword [esi], eax
test eax, eax
je case.0x45c7b5.20
mov eax, dword [esp + 0x694]
cmp byte [eax], 0
je 0x45d8a9
push 0
mov ecx, eax
call fcn.00464e50
movzx eax, ax
push eax
push 0x401
push dword [esi]
call edi
mov eax, dword [esp + 0x4d8]
test eax, eax
jle case.0x45c7b5.20
push 6
push eax
push 0x403
push dword [esi]
jmp 0x45df68
test dl, 0x10
je 0x45d8fe
mov eax, dword [esp + 0x66c]
cmp dword [eax + 8], 0
jne 0x45d8ea
mov eax, dword [esp + 0x648]
test eax, eax
je 0x45d8fe
test byte [eax + 5], 0x80
je 0x45d8fe
and edx, 0xffffffef
mov byte [esp + 0x66b], 1
mov dword [esp + 0x670], edx
jmp 0x45d907
xor al, al
mov byte [esp + 0x66b], al
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.msctls_updown32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edx, dword [esp + 0x674]
mov ecx, eax
mov dword [edx], ecx
test ecx, ecx
je case.0x45c7b5.20
mov al, byte [esp + 0x66b]
test al, al
je 0x45d98a
mov eax, dword [esp + 0x640]
push 0
push dword [eax]
push 0x469
push ecx
call edi
mov al, byte [esp + 0x66b]
mov edx, dword [esp + 0x674]
mov esi, dword [esp + 0x66c]
cmp dword [esi + 0x10], 0
je 0x45db58
test byte [esp + 0x670], 0x10
jne 0x45d9ad
test al, al
je 0x45db58
lea eax, [esp + 0x61c]
push eax
push dword [edx]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [esp + 0x620]
push eax
push dword [esp + 0x66c]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov ecx, dword [esp + 0x61c]
mov eax, dword [esp + 0x624]
mov edx, dword [esp + 0x620]
sub eax, ecx
mov dword [esp + 0x49c], eax
mov eax, dword [esp + 0x628]
sub eax, edx
mov dword [esp + 0x494], ecx
mov dword [esp + 0x4a0], eax
lea eax, [esp + 0x62c]
push eax
mov eax, dword [esp + 0x644]
mov dword [esp + 0x49c], edx
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [esp + 0x630]
push eax
push dword [esp + 0x66c]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
cmp byte [esi + 0xbf], 0
je 0x45dad9
test byte [esp + 0x670], 4
mov esi, dword [sym.imp.USER32.dll_MoveWindow]
je 0x45da9a
mov eax, dword [esp + 0x49c]
mov ecx, dword [esp + 0x494]
add dword [esp + 0x624], eax
add ecx, eax
push 1
push dword [esp + 0x4a4]
mov dword [esp + 0x49c], ecx
push eax
push dword [esp + 0x4a4]
mov eax, dword [esp + 0x684]
push ecx
push dword [eax]
call esi
mov edx, dword [esp + 0x634]
mov eax, dword [esp + 0x638]
mov ecx, dword [esp + 0x630]
sub eax, ecx
add edx, dword [esp + 0x49c]
push 1
push eax
mov eax, dword [esp + 0x634]
mov dword [esp + 0x63c], edx
sub edx, eax
push edx
push ecx
push eax
mov eax, dword [esp + 0x654]
push dword [eax]
call esi
mov ecx, dword [esp + 0x670]
test cl, 4
je 0x45db05
mov ecx, dword [esp + 0x62c]
mov eax, dword [esp + 0x624]
mov dword [esp + 0x494], ecx
sub eax, ecx
mov ecx, dword [esp + 0x670]
jmp 0x45db13
mov eax, dword [esp + 0x634]
sub eax, dword [esp + 0x61c]
cmp byte [esp + 0x601], 0
mov dword [esp + 0x49c], eax
jne 0x45db75
mov eax, dword [esp + 0x640]
cmp byte [eax + 4], 9
jne 0x45db62
mov byte [esp + 0x601], 1
test cl, 0x40
je 0x45db4b
mov dword [esp + 0x4b0], 0x7fff
jmp 0x45db75
mov dword [esp + 0x4ac], 0x7fff
jmp 0x45db75
cmp byte [esp + 0x601], 0
jne 0x45db75
mov byte [esp + 0x601], 1
mov dword [esp + 0x4b0], 0x64
mov esi, dword [esp + 0x674]
lea eax, [esp + 0x474]
push eax
mov ecx, esi
call fcn.00465030
mov ecx, dword [esp + 0x694]
call fcn.0040dd10
test byte [esi + 5], 0x80
mov ecx, 0x471
push eax
mov eax, 0x467
push 0
cmovne eax, ecx
push eax
push dword [esi]
jmp 0x45df68
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.msctls_trackbar32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [esp + 0x674]
mov dword [esi], eax
test eax, eax
je case.0x45c7b5.20
lea eax, [esp + 0x474]
push eax
push esi
call fcn.00465120
mov eax, dword [esp + 0x694]
cmp byte [eax], 0
je case.0x45c7b5.20
mov ecx, eax
call fcn.0040dd10
test byte [esi + 5], 0x80
je 0x45dc3b
push eax
mov ecx, esi
call fcn.004650e0
push eax
push 1
push 0x405
push dword [esi]
jmp 0x45df68
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.msctls_progress32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [esp + 0x674]
mov dword [esi], eax
test eax, eax
je case.0x45c7b5.20
push dword [esp + 0x670]
mov ecx, dword [esp + 0x670]
lea eax, [esp + 0x478]
push eax
push esi
call fcn.00465300
mov eax, dword [esp + 0x694]
cmp byte [eax], 0
je 0x45dcda
push 0
mov ecx, eax
call fcn.0040dd10
push eax
push 0x402
push dword [esi]
call edi
mov byte [esp + 0x64e], 0
jmp case.0x45c7b5.20
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push 0x49bc4d
push str.SysTabControl32
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [esp + 0x674]
mov dword [esi], eax
test eax, eax
je case.0x45c7b5.20
cmp byte [esp + 0x606], 0
mov edi, dword [esp + 0x66c]
je 0x45dd7a
lea eax, [esp + 0x474]
mov ecx, edi
push eax
push esi
call fcn.00465f20
test eax, eax
jne 0x45dd7a
push dword [esi]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [esi], 0
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x45df77
mov al, byte [esp + 0x607]
test al, al
je 0x45dd96
movsx eax, al
push eax
push str.ahk_autosize
push dword [esi]
call dword [sym.imp.USER32.dll_SetPropA]
mov al, byte [edi + 0xb8]
mov byte [edi + 0xb9], al
inc al
push 0x464960
mov byte [edi + 0xb8], al
mov eax, dword [sym.imp.USER32.dll_SetWindowLongA]
push 0xfffffffffffffffc
mov byte [edi + 0xba], 0
push dword [esi]
call eax
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [0x4adaf8], eax
jmp 0x45df77
cmp byte [0x4b045c], 0
jne 0x45de19
push 0x4a2fc0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x45de19
push str.AtlAxWinInit
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x45de09
call eax
test eax, eax
setne al
mov byte [0x4b045c], al
jmp 0x45de0e
mov al, byte [0x4b045c]
test al, al
jne 0x45de19
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0
push dword [0x4ad120]
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x690]
push dword [esp + 0x6b8]
push str.AtlAxWin
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, dword [esp + 0x674]
mov dword [esi], eax
test eax, eax
je case.0x45c7b5.20
mov ecx, eax
call fcn.004543e0
mov ecx, eax
test ecx, ecx
jne 0x45de96
push dword [esi]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [esi], 0
jmp case.0x45c7b5.20
mov eax, dword [esi + 8]
push ecx
test eax, eax
je 0x45deaa
mov ecx, eax
call fcn.004747c0
jmp case.0x45c7b5.20
mov eax, dword [ecx]
call dword [eax + 8]
jmp case.0x45c7b5.20
mov ax, word [esp + 0x608]
test ax, ax
jne 0x45deda
push 0x49bc4d
push str.A_window_class_is_required.
mov ecx, 0x4ae9b0
call fcn.0042ce80
jmp 0x45e475
push 0
push dword [0x4ad120]
movzx eax, ax
push esi
push dword [esp + 0x670]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push dword [esp + 0x4b0]
push edx
push dword [esp + 0x6b8]
push eax
push dword [esp + 0x684]
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
jmp case.0x45c7b5.20
push esi
mov esi, dword [esp + 0x670]
push dword [esi + 4]
push dword [esp + 0x69c]
push edx
call dword [sym.imp.COMCTL32.dll_CreateStatusWindowA]
mov ecx, dword [esp + 0x674]
mov dword [ecx], eax
test eax, eax
je case.0x45c7b5.20
mov ecx, dword [esp + 0x4d4]
mov dword [esi + 8], eax
cmp ecx, 0xffffffff
je case.0x45c7b5.20
push ecx
push 0
push 0x2001
push eax
call edi
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
mov edi, dword [esp + 0x66c]
mov eax, dword [esp + 0x660]
test eax, eax
je 0x45dfa6
mov ecx, dword [esp + 0x650]
test ecx, ecx
je 0x45df9c
push ecx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x660]
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edx, dword [esp + 0x674]
cmp dword [edx], 0
jne 0x45dfcb
push 0x49bc4d
push str.Cant_create_control.
mov ecx, 0x4ae9b0
call fcn.0042ce80
jmp 0x45e475
inc dword [edi + 0x10]
mov al, byte [esp + 0x64d]
mov ecx, dword [esp + 0x490]
mov byte [edi + 0xbf], al
test ecx, ecx
je 0x45dff4
push dword [edx]
call fcn.00473c70
mov edx, dword [esp + 0x674]
cmp byte [edx + 4], 6
jne 0x45e020
mov ecx, dword [esp + 0x4e0]
test ecx, ecx
je 0x45e01a
mov eax, dword [edi + 0x10]
push ecx
dec eax
mov ecx, edi
push eax
push edx
call fcn.00464f70
mov edx, dword [esp + 0x674]
mov byte [edi + 0x44], 1
jmp 0x45e024
mov byte [edi + 0x44], 0
test dword [esp + 0x478], 0x10000000
je 0x45e035
or byte [edx + 5], 8
test dword [esp + 0x474], 0x8000000
je 0x45e046
or byte [edx + 5], 0x10
cmp byte [esp + 0x64e], 0
jne 0x45e074
cmp dword [edx + 0x10], 0xff000000
je 0x45e068
mov al, byte [edx + 4]
cmp al, 5
je 0x45e074
cmp al, 6
je 0x45e074
cmp al, 3
je 0x45e074
cmp byte [edx + 4], 3
jne 0x45e086
test byte [edx + 5], 0x40
je 0x45e086
push ecx
mov ecx, dword [edx]
call fcn.00473880
mov edx, dword [esp + 0x678]
add esp, 4
cmp byte [esp + 0x65f], 0
jne 0x45e0b6
cmp byte [esp + 0x64f], 0
je 0x45e0b6
imul ecx, dword [edi + 0x50], 0x54
movzx eax, byte [esp + 0x693]
push eax
mov eax, dword [0x4ae904]
push dword [ecx + eax + 0x50]
push 0x30
push dword [edx]
call esi
cmp dword [esp + 0x5fc], 4
jne 0x45e0d1
mov eax, dword [esp + 0x674]
push 0
push 0
push 0xb
push dword [eax]
call esi
mov eax, dword [esp + 0x694]
cmp byte [eax], 0
je 0x45e0f3
push dword [esp + 0x4a8]
mov ecx, edi
push eax
push dword [esp + 0x67c]
call fcn.004613d0
mov ecx, dword [esp + 0x674]
mov al, byte [ecx + 4]
cmp al, 0x13
jne 0x45e1f8
movss xmm0, dword [esp + 0x4a4]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x45e1da
lea eax, [esp + 0x61c]
push eax
push dword [ecx]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x670]
test al, 2
je 0x45e158
test al, al
js 0x45e158
and eax, 0xfffffffd
mov byte [esp + 0x697], 1
push eax
mov eax, dword [esp + 0x678]
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_SetWindowLongA]
jmp 0x45e160
mov byte [esp + 0x697], 0
lea eax, [esp + 0x61c]
push eax
mov eax, dword [esp + 0x678]
push 1
push 0x1328
push dword [eax]
call esi
cmp byte [esp + 0x697], 0
je 0x45e19c
push dword [esp + 0x670]
mov eax, dword [esp + 0x678]
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [esp + 0x628]
sub eax, dword [esp + 0x620]
push 1
push eax
push dword [esp + 0x4a4]
mov dword [esp + 0x4ac], eax
push dword [esp + 0x4a4]
mov eax, dword [esp + 0x684]
push dword [esp + 0x4a4]
push dword [eax]
call dword [sym.imp.USER32.dll_MoveWindow]
jmp 0x45e1f1
cmp al, 0x13
jne 0x45e1f8
cmp byte [esp + 0x606], 0
je 0x45e1f8
push dword [ecx]
mov ecx, edi
call fcn.00465ff0
mov ecx, dword [esp + 0x674]
cmp byte [esp + 0x657], 0
je 0x45e27b
lea eax, [esp + 0x61c]
push eax
push dword [ecx]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x628]
mov ecx, dword [esp + 0x624]
sub eax, dword [esp + 0x620]
sub ecx, dword [esp + 0x61c]
cmp byte [esp + 0x68c], 9
mov dword [esp + 0x4a0], eax
mov dword [esp + 0x49c], ecx
jne 0x45e27b
test dword [esp + 0x670], 0x100000
je 0x45e27b
mov eax, dword [esp + 0x4dc]
test eax, eax
jns 0x45e268
lea eax, [ecx + ecx*2]
mov dword [esp + 0x4dc], eax
push 0
push eax
mov eax, dword [esp + 0x67c]
push 0x194
push dword [eax]
call esi
mov ecx, dword [esp + 0x648]
mov esi, dword [sym.imp.USER32.dll_SetWindowPos]
test ecx, ecx
je 0x45e305
mov eax, dword [esp + 0x664]
cmp eax, dword [edi + 4]
jne 0x45e305
cmp byte [esp + 0x64c], 0
je 0x45e2e8
lea eax, [esp + 0x61c]
push eax
mov eax, dword [esp + 0x678]
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [esp + 0x620]
push eax
push dword [edi + 4]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
push 0
lea eax, [esp + 0x620]
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x648]
test byte [ecx + 5], 0x80
je 0x45e305
mov eax, dword [esp + 0x674]
push 0x13
push 0
push 0
push 0
push 0
push dword [eax]
push dword [ecx]
call esi
mov eax, dword [edi + 8]
test eax, eax
je 0x45e31b
push 0x13
push 0
push 0
push 0
push 0
push 1
push eax
call esi
cmp byte [esp + 0x68c], 0x19
je 0x45e470
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x664]
cmp edx, ecx
je 0x45e383
mov eax, dword [esp + 0x494]
mov dword [esp + 0x634], eax
mov eax, dword [esp + 0x498]
push 1
mov dword [esp + 0x63c], eax
lea eax, [esp + 0x638]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov esi, dword [esp + 0x634]
mov edi, dword [esp + 0x638]
mov dword [esp + 0x494], esi
mov dword [esp + 0x498], edi
jmp 0x45e391
mov edi, dword [esp + 0x498]
mov esi, dword [esp + 0x494]
mov edx, dword [esp + 0x66c]
mov ecx, dword [esp + 0x49c]
mov eax, dword [esp + 0x4a0]
mov dword [edx + 0x88], ecx
mov dword [edx + 0x8c], eax
mov dword [edx + 0x80], esi
mov dword [edx + 0x84], edi
lea edx, [esi + ecx]
lea ecx, [edi + eax]
mov eax, dword [esp + 0x66c]
mov dword [esp + 0x68c], ecx
mov ecx, dword [esp + 0x664]
cmp ecx, dword [eax + 4]
mov ecx, dword [esp + 0x68c]
jne 0x45e40b
cmp byte [esp + 0x607], 0
jne 0x45e40b
cmp edx, dword [eax + 0x90]
jle 0x45e3fd
mov dword [eax + 0x90], edx
cmp ecx, dword [eax + 0x94]
jle 0x45e40b
mov dword [eax + 0x94], ecx
cmp byte [esp + 0x603], 0
jne 0x45e458
mov eax, dword [eax + 0x10]
cmp eax, 1
je 0x45e451
cmp eax, 2
jne 0x45e432
mov eax, dword [esp + 0x66c]
mov eax, dword [eax + 0x18]
cmp byte [eax + 4], 0x19
je 0x45e451
mov eax, dword [esp + 0x66c]
cmp edx, dword [eax + 0xa0]
jle 0x45e447
mov dword [eax + 0xa0], edx
cmp ecx, dword [eax + 0xa4]
jle 0x45e470
jmp 0x45e46a
mov eax, dword [esp + 0x66c]
mov dword [eax + 0x98], esi
mov dword [eax + 0x9c], edi
mov dword [eax + 0xa0], edx
mov dword [eax + 0xa4], ecx
mov eax, 1
mov ecx, dword [esp + 0x67c]
pop edi
mov dword fs:[0], ecx
pop esi
add esp, 0x680
ret 0xc