Function at 0x407cdc
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0x178
mov eax, 0x45262c
call fcn.00435b4e
mov ebx, ecx
mov dword [ebp - 0x15c], ebx
cmp dword [ebx], 0
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x170], edi
mov dword [ebp - 0x16c], eax
je 0x4091f8
lea eax, [ebx + 0x1ec]
push 0
mov ecx, eax
mov dword [ebp - 0x168], eax
call fcn.0040b3cd
mov esi, eax
test esi, esi
je 0x407dc6
lea eax, [ebx + 0x1a4]
mov ebx, eax
mov ecx, dword [ebp - 0x168]
push 0
call fcn.0040b692
mov ecx, dword [esi + 0x108]
test ecx, ecx
je 0x407d67
add ecx, 0x38
call fcn.0040eb6b
test al, al
je 0x407d67
mov ecx, dword [esi + 0x108]
push esi
add ecx, 0x38
call fcn.0040eb81
mov ecx, ebx
xor edi, edi
call fcn.0042f2dc
test eax, eax
jle 0x407d8f
push edi
mov ecx, ebx
call fcn.0040b075
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx]
mov ecx, ebx
inc edi
call fcn.0042f2dc
cmp edi, eax
jl 0x407d74
mov ecx, esi
call fcn.00407083
push 0x120
push esi
call fcn.0043552d
pop ecx
pop ecx
mov ecx, dword [ebp - 0x168]
push 0
call fcn.0040b3cd
mov esi, eax
test esi, esi
jne 0x407d35
mov ebx, dword [ebp - 0x15c]
mov edi, dword [ebp - 0x170]
and dword [ebp - 0x158], 0
lea ecx, [ebx + 0x1c8]
call fcn.0042f2dc
mov esi, dword [ebp + 8]
test eax, eax
jle 0x407e32
mov ecx, dword [ebp - 0x158]
push ecx
lea ecx, [ebx + 0x1c8]
mov byte [ebp - 0x161], 0
call fcn.0040b075
lea ecx, [ebp - 0x161]
push ecx
push edi
push dword [ebp + 0xc]
mov edx, dword [eax]
mov ecx, eax
push esi
call dword [edx]
cmp byte [ebp - 0x161], 0
jne 0x407f55
inc dword [ebp - 0x158]
lea ecx, [ebx + 0x1c8]
call fcn.0042f2dc
mov ecx, dword [ebp - 0x158]
cmp ecx, eax
jl 0x407de5
mov eax, 0x112
cmp esi, eax
ja 0x4088fd
je 0x4088dd
cmp esi, 0x24
ja 0x4086c8
je 0x40868b
sub esi, 5
je 0x40863a
dec esi
sub esi, 1
je 0x4085dd
sub esi, 8
je 0x40802d
sub esi, 1
je 0x407f9d
sub esi, 4
je 0x407f8d
sub esi, 4
je 0x407f64
sub esi, 8
jne 0x40915a
xor eax, eax
inc eax
cmp di, ax
jne 0x40915a
cmp byte [ebx + 0x1a2], 0
jne 0x4091fa
and dword [ebp - 0x160], esi
lea eax, [ebp - 0x160]
and dword [ebp - 0x15c], esi
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x160]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x15c]
mov ecx, ebx
push dword [ebp - 0x160]
call fcn.00407607
mov esi, eax
test esi, esi
je 0x40915a
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
test al, 2
je 0x40915a
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x30], 0x18
mov dword [ebp - 0x20], eax
call fcn.00407c90
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x30]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x100]
jmp 0x407f5d
mov ecx, dword [ebp - 0x16c]
mov dword [ecx], eax
mov al, 1
jmp 0x4091fa
xor eax, eax
inc eax
cmp dword [ebp + 0xc], eax
jne 0x40915a
cmp byte [ebx + 0x1a0], 0
je 0x40915a
push eax
push 0
push dword [ebx]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x40915a
mov ecx, dword [ebp - 0x16c]
xor eax, eax
inc eax
mov dword [ecx], eax
jmp 0x4091fa
and dword [ebp - 0x30], 0
lea edi, [ebp - 0x2c]
push 7
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x150]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x154]
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x144]
mov dword [ebp - 0x28], eax
test ecx, ecx
je 0x407fe6
mov dword [ebp - 0x30], 0xa
lea edx, [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x100]
mov ecx, dword [ebx + 0x148]
test ecx, ecx
je 0x408006
mov dword [ebp - 0x30], 0xe
lea edx, [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x100]
push 0
mov ecx, ebx
call fcn.00409c2c
push 4
push dword [ebx]
call dword [sym.imp.USER32.dll_GetWindow]
test eax, eax
je 0x40915a
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x40915a
push 0
lea eax, [ebp - 0x50]
xorps xmm0, xmm0
push eax
push dword [ebx]
movups xmmword [ebp - 0x50], xmm0
call dword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
je 0x407f5d
xor eax, eax
push 0x40
push eax
cmp dword [ebx + 0x13c], eax
jne 0x408089
lea eax, [ebp - 0x154]
push eax
call fcn.004386a0
add esp, 0xc
lea eax, [ebp - 0x154]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_BeginPaint]
lea eax, [ebp - 0x154]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_EndPaint]
jmp 0x407f5d
lea eax, [ebp - 0x114]
push eax
call fcn.004386a0
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_BeginPaint]
xor eax, eax
inc eax
cmp byte [ebx + 0x19d], 0
je 0x4081b4
lea eax, [ebp - 0x20]
mov byte [ebx + 0x19d], 0
push eax
push dword [ebx]
xorps xmm0, xmm0
movups xmmword [ebp - 0x20], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x4081b1
mov ecx, dword [ebx + 0x13c]
call fcn.0040f5bf
test al, al
je 0x408142
push dword [ebx]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x408117
mov ecx, dword [ebx + 0x13c]
lea esi, [ebp - 0x20]
push 1
sub esp, 0x10
mov edi, esp
mov eax, dword [ecx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x34]
cmp dword [ebx + 0xc], 0
je 0x408126
push dword [ebx + 0xc]
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp dword [ebx + 0x10], 0
je 0x408135
push dword [ebx + 0x10]
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
jmp 0x40818d
mov ecx, dword [ebx + 0x13c]
push 0x80000001
push 0
push 0x40a53e
mov eax, dword [ecx]
call dword [eax + 0xf4]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x40818b
mov ebx, dword [eax]
mov ecx, eax
call dword [ebx + 0x30]
mov ecx, dword [ebp - 0x168]
mov esi, eax
push 1
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ebx + 0x34]
mov ebx, dword [ebp - 0x15c]
jmp 0x408142
xor eax, eax
cmp byte [ebx + 0x19c], 0
je 0x4081b1
push eax
push eax
push eax
push str.windowinit
push dword [ebx + 0x13c]
mov ecx, ebx
mov byte [ebx + 0x19c], al
call fcn.00409984
xor eax, eax
inc eax
cmp byte [ebx + 0x19e], 0
je 0x4081c5
push eax
mov ecx, ebx
call fcn.00409e71
cmp byte [ebx + 0x1a0], 0
je 0x408422
push 0xffffffffffffffec
push dword [ebx]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, 0x80000
test ecx, eax
jne 0x4081f2
or eax, ecx
push eax
push 0xffffffffffffffec
push dword [ebx]
call dword [sym.imp.USER32.dll_SetWindowLongW]
lea eax, [ebp - 0x40]
xorps xmm0, xmm0
push eax
push dword [ebx]
movups xmmword [ebp - 0x40], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
cmp byte [ebx + 0x28], 0
jne 0x408229
lea esi, [ebx + 0x18]
push esi
lea eax, [ebp - 0x50]
push eax
push eax
call dword [sym.imp.USER32.dll_UnionRect]
push 0x10
push 0
push esi
call fcn.004386a0
add esp, 0xc
jmp 0x408237
lea esi, [ebp - 0x40]
mov byte [ebx + 0x28], 0
lea edi, [ebp - 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
sub edi, dword [ebp - 0x40]
sub esi, dword [ebp - 0x3c]
cmp byte [ebx + 0x19f], 0
mov dword [ebp - 0x168], edi
je 0x4082e1
cmp dword [ebx + 0x10], 0
jne 0x4082e1
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0x2c
mov dword [ebx + 0xc], eax
lea eax, [ebp - 0x140]
push 0
push eax
call fcn.004386a0
add esp, 0xc
mov dword [ebp - 0x140], 0x28
mov eax, esi
mov dword [ebp - 0x13c], edi
neg eax
imul esi, edi
mov dword [ebp - 0x138], eax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x130], ecx
push 0x20
inc eax
mov dword [ebp - 0x120], ecx
mov word [ebp - 0x134], ax
pop eax
push ecx
push ecx
mov word [ebp - 0x132], ax
lea eax, [ebx + 0x14]
push eax
push ecx
lea eax, [ebp - 0x140]
shl esi, 2
push eax
push dword [ebx + 8]
mov dword [ebp - 0x12c], esi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebx + 0x10], eax
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebx + 0xc]
mov dword [ebp - 0x16c], eax
call dword [sym.imp.GDI32.dll_SaveDC]
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x50]
push eax
push edi
push dword [ebx + 0x14]
call fcn.00410f72
mov ecx, dword [ebx + 0x13c]
lea eax, [ebp - 0x50]
add esp, 0xc
mov edx, dword [ecx]
push eax
push dword [ebx + 0xc]
call dword [edx + 0x110]
lea eax, [ebp - 0x50]
mov ecx, ebx
push eax
push dword [ebx + 0xc]
call fcn.0040752d
lea ecx, [ebx + 0x1d4]
xor esi, esi
call fcn.0042f2dc
test eax, eax
jle 0x40837a
lea edi, [ebx + 0x1d4]
push esi
mov ecx, edi
call fcn.0040b075
lea ecx, [ebp - 0x10c]
push ecx
push dword [ebx + 0xc]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + pe_nt_image_headers32]
mov ecx, edi
inc esi
call fcn.0042f2dc
cmp esi, eax
jl 0x40834c
mov edi, dword [ebp - 0x168]
lea eax, [ebp - 0x50]
push eax
push edi
push dword [ebx + 0x14]
call fcn.004163b6
add esp, 0xc
push dword [ebp - 0x15c]
push dword [ebx + 0xc]
call dword [sym.imp.GDI32.dll_RestoreDC]
lea eax, [ebp - 0x20]
xorps xmm0, xmm0
push eax
push dword [ebx]
movups xmmword [ebp - 0x20], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
sub eax, ecx
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x14]
sub eax, edx
mov dword [ebp - 0x184], ecx
push 2
mov dword [ebp - 0x178], eax
xor ecx, ecx
lea eax, [ebp - 0x158]
mov dword [ebp - 0x180], edx
push eax
push ecx
lea eax, [ebp - 0x174]
mov dword [ebp - 0x174], ecx
push eax
push dword [ebx + 0xc]
lea eax, [ebp - 0x17c]
mov dword [ebp - 0x170], ecx
push eax
lea eax, [ebp - 0x184]
mov dword [ebp - 0x158], 0x1ff0000
push eax
push ecx
push dword [ebx]
call dword [sym.imp.USER32.dll_UpdateLayeredWindow]
push dword [ebp - 0x16c]
jmp 0x40855b
cmp byte [ebx + 0x19f], 0
je 0x408566
cmp dword [ebx + 0x10], 0
jne 0x40846e
lea eax, [ebp - 0x20]
xorps xmm0, xmm0
push eax
push dword [ebx]
movups xmmword [ebp - 0x20], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
push eax
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [ebx + 0x10], eax
cmp byte [ebx + 0x19f], 0
je 0x408566
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebx + 0xc]
mov dword [ebp - 0x15c], eax
call dword [sym.imp.GDI32.dll_SaveDC]
mov ecx, dword [ebx + 0x13c]
mov dword [ebp - 0x168], eax
lea eax, [ebp - 0x10c]
push eax
push dword [ebx + 0xc]
mov edx, dword [ecx]
call dword [edx + 0x110]
lea eax, [ebp - 0x10c]
mov ecx, ebx
push eax
push dword [ebx + 0xc]
call fcn.0040752d
lea edi, [ebx + 0x1d4]
xor esi, esi
mov ecx, edi
call fcn.0042f2dc
test eax, eax
jle 0x408500
push esi
mov ecx, edi
call fcn.0040b075
lea ecx, [ebp - 0x10c]
push ecx
push dword [ebx + 0xc]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + pe_nt_image_headers32]
mov ecx, edi
inc esi
call fcn.0042f2dc
cmp esi, eax
jl 0x4084d8
push dword [ebp - 0x168]
push dword [ebx + 0xc]
call dword [sym.imp.GDI32.dll_RestoreDC]
mov eax, dword [ebp - 0x100]
sub eax, dword [ebp - 0x108]
push 0xcc0020
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push dword [ebx + 0xc]
push eax
mov eax, dword [ebp - 0x104]
sub eax, dword [ebp - 0x10c]
push eax
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push dword [ebp - 0x114]
call dword [sym.imp.GDI32.dll_BitBlt]
push dword [ebp - 0x15c]
push dword [ebx + 0xc]
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x4085b0
push dword [ebp - 0x114]
call dword [sym.imp.GDI32.dll_SaveDC]
mov ecx, dword [ebx + 0x13c]
mov esi, eax
lea eax, [ebp - 0x10c]
push eax
push dword [ebp - 0x114]
mov edx, dword [ecx]
call dword [edx + 0x110]
lea eax, [ebp - 0x10c]
mov ecx, ebx
push eax
push dword [ebp - 0x114]
call fcn.0040752d
push esi
push dword [ebp - 0x114]
call dword [sym.imp.GDI32.dll_RestoreDC]
lea eax, [ebp - 0x114]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_EndPaint]
cmp byte [ebx + 0x19d], 0
je 0x407f5d
push 0
push 0
push dword [ebx]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x407f5d
mov edx, dword [ebx + 0x140]
test edx, edx
je 0x40915a
push 7
xor eax, eax
lea edi, [ebp - 0x130]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x134], 0x16
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x130], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x140]
lea edx, [ebp - 0x134]
mov dword [ebp - 0x12c], eax
jmp 0x408ca9
mov edx, dword [ebx + 0x140]
test edx, edx
je 0x408673
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x30], 0x17
mov dword [ebp - 0x2c], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x140]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x100]
mov ecx, dword [ebx + 0x13c]
test ecx, ecx
je 0x407f5d
call fcn.0040f61b
jmp 0x407f5d
mov eax, dword [ebx + 0x158]
test eax, eax
jle 0x408698
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x15c]
test eax, eax
jle 0x4086a5
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x160]
test eax, eax
jle 0x4086b2
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x164]
test eax, eax
jle 0x40915a
mov dword [edi + 0x24], eax
jmp 0x40915a
sub esi, 0x4e
je 0x4088bf
sub esi, 0x2d
je 0x408834
sub esi, 0x85
je 0x4087c8
sub esi, 1
je 0x408761
sub esi, 1
je 0x408710
sub esi, 0xf
jne 0x40915a
test edi, edi
je 0x40915a
push edi
push dword [ebp + 0xc]
push 0x2111
push edi
jmp 0x4088d2
cmp dword [ebx + 0x140], 0
je 0x40915a
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
mov word [ebp - 0x1c], ax
mov eax, dword [ebx + 0x150]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x154]
mov dword [ebp - 0x30], 5
mov dword [ebp - 0x20], eax
call fcn.00407c90
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x140]
jmp 0x408ca3
cmp dword [ebx + 0x14c], 0
je 0x40915a
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
mov word [ebp - 0x1c], ax
mov eax, dword [ebx + 0x150]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x154]
mov dword [ebp - 0x30], 4
mov dword [ebp - 0x20], eax
call fcn.00407c90
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x14c]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x100]
and dword [ebx + 0x14c], 0
jmp 0x40915a
cmp dword [ebx + 0x140], 0
je 0x40915a
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
mov word [ebp - 0x1c], ax
mov eax, dword [ebx + 0x150]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x154]
mov dword [ebp - 0x30], 3
mov dword [ebp - 0x20], eax
call fcn.00407c90
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x140]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x100]
mov eax, dword [ebx + 0x140]
mov dword [ebx + 0x14c], eax
jmp 0x40915a
movsx eax, di
mov dword [ebp - 0x160], eax
shr edi, 0x10
movsx eax, di
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x160]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
cmp dword [ebx + 0x148], 0
mov eax, dword [ebp - 0x160]
mov dword [ebx + 0x150], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebx + 0x154], eax
je 0x40915a
mov ecx, ebx
call fcn.004094d8
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebx + 0x148]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x30], 0x12
mov dword [ebp - 0x2c], ecx
mov word [ebp - 0x1a], ax
mov dword [ebp - 0x14], ecx
jmp 0x4089ab
test edi, edi
je 0x407f5d
push edi
push dword [ebp + 0xc]
push 0x204e
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x407f55
mov ecx, dword [ebp + 0xc]
xor eax, eax
and ecx, 0xfff0
inc eax
cmp ecx, 0xf120
jne 0x4091fa
mov byte [ebx + 0x28], al
jmp 0x4091fa
mov eax, 0x203
cmp esi, eax
ja 0x408d38
je 0x408cb7
mov eax, esi
sub eax, 0x113
je 0x408bff
sub eax, 0x20
je 0x408be7
sub eax, 5
je 0x408be7
sub eax, 0xc8
je 0x408a7b
sub eax, 1
je 0x4089d2
sub eax, 1
jne 0x40915a
mov ecx, ebx
call fcn.004094d8
mov eax, edi
movsx edx, di
shr eax, 0x10
movsx esi, ax
mov eax, dword [ebx + 0x148]
mov dword [ebx + 0x150], edx
mov dword [ebx + 0x154], esi
test eax, eax
je 0x40915a
push 7
xor eax, eax
lea edi, [ebp - 0x2c]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x148]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x30], 0xe
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x18], ecx
mov word [ebp - 0x1a], cx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x148]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x100]
and dword [ebx + 0x148], 0
jmp 0x40915a
push dword [ebx]
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, ebx
call fcn.00409a1c
mov eax, edi
movsx ecx, di
shr eax, 0x10
cwde
push eax
mov dword [ebp - 0x15c], ecx
mov dword [ebx + 0x150], ecx
push ecx
mov ecx, ebx
mov dword [ebp - 0x158], eax
mov dword [ebx + 0x154], eax
call fcn.00407607
mov esi, eax
test esi, esi
je 0x40915a
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x40915a
mov dword [ebx + 0x148], esi
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0xe8]
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x30], 0xd
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], eax
mov word [ebp - 0x1a], cx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x28], eax
jmp 0x408bda
cmp byte [ebx + 0x1a1], 0
jne 0x408ad8
xor eax, eax
lea edi, [ebp - 0x3c]
cmp dword [ebx + 0x2c], 0
stosd dword es:[edi], eax
push 3
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebx]
mov dword [ebp - 0x40], 0x10
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], eax
jne 0x408aad
mov dword [ebp - 0x34], 0x190
jmp 0x408ac1
push 0
push ecx
push 0x415
push dword [ebx + 0x2c]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.COMCTL32.dll__TrackMouseEvent]
mov edi, dword [ebp - 0x170]
mov byte [ebx + 0x1a1], 1
movsx eax, di
shr edi, 0x10
movsx ecx, di
push ecx
mov dword [ebp - 0x158], ecx
mov dword [ebx + 0x154], ecx
mov ecx, ebx
push eax
mov dword [ebp - 0x15c], eax
mov dword [ebx + 0x150], eax
call fcn.00407607
mov esi, eax
test esi, esi
je 0x408b17
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x40915a
and dword [ebp - 0x30], 0
lea edi, [ebp - 0x2c]
push 7
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x144]
mov dword [ebp - 0x28], eax
cmp esi, ecx
je 0x408b85
test ecx, ecx
je 0x408b85
mov dword [ebp - 0x30], 0xa
lea edx, [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x100]
and dword [ebx + 0x144], 0
cmp dword [ebx + 0x2c], 0
je 0x408b85
lea eax, [ebx + 0x30]
push eax
push 0
push 0x411
push dword [ebx + 0x2c]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, dword [ebx + 0x144]
je 0x408baf
test esi, esi
je 0x408baf
mov dword [ebp - 0x30], 0xb
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x2c], esi
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x100]
mov dword [ebx + 0x144], esi
mov ecx, dword [ebx + 0x148]
test ecx, ecx
je 0x408bc8
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x2c], ecx
jmp 0x408ca6
test esi, esi
je 0x40915a
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x2c], esi
mov eax, dword [esi]
lea ecx, [ebp - 0x30]
push ecx
mov ecx, esi
jmp 0x408cac
test edi, edi
je 0x40915a
push edi
push dword [ebp + 0xc]
lea eax, [esi + 0x2000]
push eax
jmp 0x40870a
mov esi, dword [ebp + 0xc]
mov eax, 0xf1
cmp ax, si
jne 0x408c26
lea eax, [ebx + 0x60]
mov ecx, ebx
push eax
call fcn.00407b50
cmp byte [ebx + 0x70], 0
sete al
mov byte [ebx + 0x70], al
jmp 0x40915a
lea ecx, [ebx + 0x1b0]
xor edi, edi
call fcn.0042f2dc
test eax, eax
jle 0x40915a
push edi
lea ecx, [ebx + 0x1b0]
call fcn.0040b075
mov edx, eax
mov dword [ebp - 0x15c], edx
mov ecx, dword [edx + 8]
cmp ecx, dword [ebx]
jne 0x408c64
movzx ecx, si
cmp dword [edx + 0xc], ecx
jne 0x408c64
cmp byte [edx + 0x10], 0
je 0x408c79
lea ecx, [ebx + 0x1b0]
inc edi
call fcn.0042f2dc
cmp edi, eax
jl 0x408c3b
jmp 0x40915a
push 7
xor eax, eax
lea edi, [ebp - 0x2c]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [edx]
mov dword [ebp - 0x2c], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x30], 0x19
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x15c]
mov ecx, dword [ecx]
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x30]
mov eax, dword [ecx]
push edx
call dword [eax + 0x100]
jmp 0x40915a
push dword [ebx]
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, ebx
call fcn.00409a1c
movsx eax, di
shr edi, 0x10
movsx ecx, di
push ecx
mov dword [ebp - 0x158], ecx
mov dword [ebx + 0x154], ecx
mov ecx, ebx
push eax
mov dword [ebp - 0x15c], eax
mov dword [ebx + 0x150], eax
call fcn.00407607
mov esi, eax
test esi, esi
je 0x40915a
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x40915a
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x30], 0x11
mov word [ebp - 0x1a], ax
jmp 0x40913a
sub esi, 0x204
je 0x4090b0
sub esi, 1
je 0x409047
sub esi, 5
je 0x408f78
sub esi, 0x97
je 0x408df7
dec esi
sub esi, 1
je 0x408db9
sub esi, 0x7d5e
jne 0x40915a
lea esi, [ebx + 0x1e0]
xor edi, edi
mov ecx, esi
call fcn.0042f2dc
test eax, eax
jle 0x408dad
push edi
mov ecx, esi
call fcn.0040b075
test eax, eax
je 0x408d9b
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov ecx, esi
inc edi
call fcn.0042f2dc
cmp edi, eax
jl 0x408d87
mov ebx, dword [ebp - 0x15c]
mov ecx, esi
call fcn.0040b269
jmp 0x40915a
cmp dword [ebx + 0x2c], 0
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
je 0x408dd5
lea eax, [ebx + 0x30]
push eax
push 0
push 0x411
push dword [ebx + 0x2c]
call esi
cmp byte [ebx + 0x1a1], 0
je 0x408deb
push 0xffffffffffffffff
push 0
push 0x200
push dword [ebx]
call esi
mov byte [ebx + 0x1a1], 0
jmp 0x40915a
movsx eax, di
shr edi, 0x10
movsx ecx, di
push ecx
mov dword [ebp - 0x158], ecx
mov ecx, ebx
push eax
mov byte [ebx + 0x1a1], 0
mov dword [ebp - 0x15c], eax
call fcn.00407607
mov esi, eax
mov dword [ebp - 0x16c], esi
test esi, esi
je 0x40915a
mov edx, dword [ebx + 0x144]
test edx, edx
je 0x408e77
push 7
xor eax, eax
lea edi, [ebp - 0x2c]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 0xc
mov dword [ebp - 0x2c], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x144]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x100]
mov eax, dword [esi]
lea ecx, [ebp - 0xd4]
push ecx
mov ecx, esi
call dword [eax + 0x90]
and dword [ebp - 4], 0
lea ecx, [ebp - 0xd4]
call fcn.0040b594
test al, al
je 0x408eab
lea ecx, [ebp - 0xd4]
call fcn.0040af8f
jmp 0x407f5d
push 0x30
lea edi, [ebx + 0x30]
push 0
push edi
call fcn.004386a0
mov eax, dword [ebx]
lea ecx, [ebp - 0xd4]
add esp, 0xc
mov dword [edi], 0x30
mov dword [ebx + 0x34], 1
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], eax
mov eax, dword [0x46d6d8]
mov dword [ebx + 0x50], eax
call fcn.0040b436
mov dword [ebx + 0x54], eax
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x30]
mov esi, eax
lea edi, [ebx + 0x40]
xor ecx, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebx + 0x2c], ecx
jne 0x408f3b
push ecx
push dword [0x46d6d8]
mov eax, 0x80000000
push ecx
push dword [ebx]
push eax
push eax
push eax
push eax
push 0x80000003
push ecx
push str.tooltips_class32
push ecx
call dword [sym.imp.USER32.dll_CreateWindowExW]
lea edi, [ebx + 0x30]
mov dword [ebx + 0x2c], eax
push edi
push 0
push 0x432
push eax
call esi
jmp 0x408f3e
lea edi, [ebx + 0x30]
mov ecx, dword [ebp - 0x16c]
mov eax, dword [ecx]
call dword [eax + 0x9c]
push eax
push 0
push 0x418
push dword [ebx + 0x2c]
call esi
push edi
push 0
push 0x436
push dword [ebx + 0x2c]
call esi
push edi
push 1
push 0x411
push dword [ebx + 0x2c]
call esi
jmp 0x408e9b
movsx eax, di
mov dword [ebp - 0x160], eax
mov eax, edi
shr eax, 0x10
cwde
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x160]
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x160]
push eax
mov dword [ebx + 0x150], ecx
push ecx
mov ecx, ebx
mov dword [ebx + 0x154], eax
call fcn.00407607
mov esi, eax
test esi, esi
je 0x40915a
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x40915a
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
shr eax, 0x10
shr eax, 0xf
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x30], 0x13
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x14], eax
call fcn.00407c90
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x30]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x100]
movzx ecx, word [ebx + 0x154]
movzx eax, word [ebx + 0x150]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 0x200
push dword [ebx]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x40915a
mov ecx, ebx
call fcn.004094d8
mov eax, edi
movsx esi, di
shr eax, 0x10
mov ecx, ebx
cwde
push eax
push esi
mov dword [ebp - 0x15c], eax
mov dword [ebx + 0x150], esi
mov dword [ebx + 0x154], eax
call fcn.00407607
mov edx, eax
mov dword [ebx + 0x148], edx
test edx, edx
je 0x40915a
push 7
xor eax, eax
lea edi, [ebp - 0x2c]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x30], 0x10
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
jmp 0x4089a1
push dword [ebx]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, edi
movsx ecx, di
shr eax, 0x10
cwde
push eax
mov dword [ebp - 0x15c], ecx
mov dword [ebx + 0x150], ecx
push ecx
mov ecx, ebx
mov dword [ebp - 0x158], eax
mov dword [ebx + 0x154], eax
call fcn.00407607
mov esi, eax
test esi, esi
je 0x40915a
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x40915a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xe8]
mov ecx, ebx
call fcn.00409a1c
xor eax, eax
lea edi, [ebp - 0x2c]
push 7
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], eax
mov word [ebp - 0x1a], cx
mov dword [ebp - 0x2c], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x30]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x100]
mov dword [ebx + 0x148], esi
lea edi, [ebx + 0x1ec]
push 0
mov ecx, edi
call fcn.0040b3cd
mov esi, eax
test esi, esi
je 0x4091f8
add ebx, 0x1a4
push 0
mov ecx, edi
call fcn.0040b692
mov ecx, dword [esi + 0x108]
test ecx, ecx
je 0x4091a7
add ecx, 0x38
call fcn.0040eb6b
test al, al
je 0x4091a7
mov ecx, dword [esi + 0x108]
push esi
add ecx, 0x38
call fcn.0040eb81
mov ecx, ebx
xor edi, edi
call fcn.0042f2dc
test eax, eax
jle 0x4091cf
push edi
mov ecx, ebx
call fcn.0040b075
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx]
mov ecx, ebx
inc edi
call fcn.0042f2dc
cmp edi, eax
jl 0x4091b4
mov ecx, esi
call fcn.00407083
push 0x120
push esi
call fcn.0043552d
mov edi, dword [ebp - 0x168]
pop ecx
pop ecx
push 0
mov ecx, edi
call fcn.0040b3cd
mov esi, eax
test esi, esi
jne 0x409179
xor al, al
call fcn.00435b09
ret 0x10