Function at 0x415eab
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push 0x168
mov eax, 0x4851bc
call fcn.0045ae52
mov ebx, ecx
mov dword [ebp - 0x144], ebx
cmp dword [ebx + 8], 0
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x14c], eax
je 0x4172ff
lea eax, [ebx + 0x11c]
push 0
mov ecx, eax
mov dword [ebp - 0x154], eax
call fcn.00418fca
mov esi, eax
test esi, esi
je 0x415f9f
lea eax, [ebx + 0xd4]
mov edi, eax
mov ecx, dword [ebp - 0x154]
push 0
call fcn.00419276
mov ecx, dword [esi + 0x108]
test ecx, ecx
je 0x415f40
add ecx, 0x38
call fcn.0041f3a9
test al, al
je 0x415f40
mov ecx, dword [esi + 0x108]
push esi
add ecx, 0x38
call fcn.0041f3bd
mov ecx, edi
xor ebx, ebx
call fcn.00419043
test eax, eax
jle 0x415f68
push ebx
mov ecx, edi
call fcn.00418bf3
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx]
mov ecx, edi
inc ebx
call fcn.00419043
cmp ebx, eax
jl 0x415f4d
mov ecx, esi
call fcn.0041467a
push 0x120
push esi
call fcn.0045a4d5
pop ecx
pop ecx
mov ecx, dword [ebp - 0x154]
push 0
call fcn.00418fca
mov esi, eax
test esi, esi
jne 0x415f0e
mov ebx, dword [ebp - 0x144]
mov edi, dword [ebp - 0x138]
and dword [ebp - 0x134], 0
lea ecx, [ebx + 0xf8]
call fcn.00419043
mov esi, dword [ebp + 8]
test eax, eax
jle 0x41600e
mov ecx, dword [ebp - 0x134]
push ecx
lea ecx, [ebx + 0xf8]
mov byte [ebp - 0x13d], 0
call fcn.00418bf3
lea ecx, [ebp - 0x13d]
push ecx
push edi
push dword [ebp - 0x12c]
mov edx, dword [eax]
mov ecx, eax
push esi
call dword [edx]
cmp byte [ebp - 0x13d], 0
jne 0x41609f
inc dword [ebp - 0x134]
lea ecx, [ebx + 0xf8]
call fcn.00419043
mov ecx, dword [ebp - 0x134]
cmp ecx, eax
jl 0x415fbe
mov eax, 0x113
cmp esi, eax
ja 0x416a03
je 0x41690a
cmp esi, 0x4e
ja 0x4166d4
je 0x4166b3
sub esi, 5
je 0x416641
sub esi, 0xa
je 0x416230
sub esi, 1
je 0x4161a2
sub esi, 4
je 0x416192
sub esi, 0xc
je 0x4160ae
sub esi, 4
jne 0x417261
mov eax, dword [ebx + 0x88]
test eax, eax
jle 0x41606f
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x8c]
test eax, eax
jle 0x41607c
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x90]
test eax, eax
jle 0x416089
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x94]
test eax, eax
jle 0x417261
mov dword [edi + 0x24], eax
jmp 0x417261
mov ecx, dword [ebp - 0x14c]
mov dword [ecx], eax
mov al, 1
jmp 0x417301
xor eax, eax
inc eax
cmp di, ax
jne 0x417261
cmp byte [ebx + 0xd1], 0
jne 0x417301
lea eax, [ebp - 0x150]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x150], xmm0
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x150]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x14c]
mov ecx, ebx
push dword [ebp - 0x150]
call fcn.00415176
mov esi, eax
test esi, esi
je 0x417261
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
test al, 2
je 0x417261
mov eax, dword [ebp - 0x12c]
xorps xmm0, xmm0
and dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x14c]
movlpd qword [ebp - 0x170], xmm0
mov dword [ebp - 0x174], 0x17
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x164], eax
call fcn.00415e5f
mov word [ebp - 0x15e], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x16c], eax
lea ecx, [ebp - 0x174]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x10c]
xor eax, eax
inc eax
jmp 0x417301
mov ecx, dword [ebp - 0x14c]
xor eax, eax
inc eax
mov dword [ecx], eax
jmp 0x417301
mov eax, dword [ebx + 0x80]
xorps xmm0, xmm0
and dword [ebp - 0x14], 0
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x84]
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x74]
mov dword [ebp - 0x28], eax
test ecx, ecx
je 0x4161eb
mov dword [ebp - 0x30], 0xa
lea edx, [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x10c]
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x416208
mov dword [ebp - 0x30], 0xe
lea edx, [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x10c]
push 0
mov ecx, ebx
call fcn.0041816d
push 4
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetWindow]
test eax, eax
je 0x417261
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x417261
xor eax, eax
lea edi, [ebp - 0x50]
stosd dword es:[edi], eax
push 0x40
push 0
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x64]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0xa4]
push eax
call fcn.0045c240
add esp, 0xc
lea eax, [ebp - 0x50]
xor esi, esi
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
xor eax, eax
inc eax
cmp dword [ebx + 0x6c], esi
je 0x41628a
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x416287
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
je 0x41628e
xor eax, eax
inc eax
mov esi, eax
jmp 0x416291
xor eax, eax
inc eax
cmp byte [ebx + 0xce], 0
je 0x4162a2
push eax
mov ecx, ebx
call fcn.004184ca
lea eax, [ebp - 0x50]
mov ecx, ebx
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00415838
test al, al
push 1
pop eax
cmove esi, eax
test esi, esi
je 0x4162c9
mov ecx, ebx
call fcn.00415002
jmp 0x4160a7
cmp byte [ebx + 0xcd], 0
je 0x416304
mov ecx, dword [ebx + 0x6c]
mov byte [ebx + 0xcd], 0
call fcn.0041d677
test al, al
je 0x4162f9
cmp byte [ebx + 0x2f9], 0
je 0x4162f9
lea eax, [ebx + 0x24]
mov ecx, ebx
push eax
call fcn.00417805
lea eax, [ebp - 0x50]
mov ecx, ebx
push eax
call fcn.00418757
lea eax, [ebp - 0xa4]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_BeginPaint]
cmp byte [ebx + 0xcf], 0
je 0x41657e
mov ecx, dword [ebp - 0x48]
lea edi, [ebx + 0x10]
mov eax, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x50]
sub eax, dword [ebp - 0x4c]
cmp dword [edi], 0
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x144], eax
je 0x416350
cmp dword [ebx + 0x1c], ecx
jne 0x416350
cmp dword [ebx + 0x20], eax
jne 0x416350
lea esi, [ebx + 0xc]
jmp 0x41637f
push edi
mov ecx, ebx
call fcn.00417805
push edi
push dword [ebp - 0x144]
lea esi, [ebx + 0xc]
mov ecx, ebx
push dword [ebp - 0x134]
mov dword [ebp - 0x12c], esi
push dword [esi]
call fcn.00414f44
test al, al
je 0x4165bf
cmp byte [ebx + 0x2f9], 0
mov dword [ebp - 0x154], esi
je 0x4163ff
lea ecx, [ebx + 0x274]
call fcn.0041918e
test al, al
jne 0x4163ff
lea edx, [ebx + 0x24]
mov dword [ebp - 0x12c], esi
cmp dword [edx], 0
mov ecx, esi
je 0x4163cf
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x12c], esi
cmp dword [ebx + 0x30], eax
jne 0x4163cf
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x12c], esi
cmp dword [ebx + 0x34], eax
je 0x4163ff
push edx
mov ecx, ebx
call fcn.00417805
lea eax, [ebx + 0x24]
mov ecx, ebx
push eax
push dword [ebp - 0x144]
push dword [ebp - 0x134]
push dword [esi]
call fcn.00414f44
test al, al
je 0x4165bf
mov byte [ebx + 0x2f8], 1
push dword [edi]
call dword [sym.imp.GDI32.dll_SaveDC]
cmp byte [ebx + 0x2f9], 0
mov dword [ebp - 0x138], eax
je 0x416439
movzx ecx, byte [ebx + 0x2f8]
lea eax, [ebx + 0x24]
push ecx
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x64]
push ecx
push eax
push edi
mov ecx, ebx
call fcn.0041504c
mov byte [ebx + 0x2f8], 0
sub esp, 0x10
lea esi, [ebp - 0x64]
mov edi, esp
mov ecx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x10]
push dword [esi]
call fcn.004174c6
mov al, byte [ebx + 0x2f9]
test al, al
je 0x41652a
lea eax, [ebp - 0x50]
mov ecx, ebx
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebx + 0x24]
push eax
push esi
call fcn.00414e1f
mov al, byte [ebx + 0x2f9]
test al, al
je 0x41652a
xor eax, eax
lea edi, [ebp - 0x20]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x20]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov al, byte [ebx + 0x270]
xor ecx, ecx
mov byte [ebp - 0x132], al
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x4c]
push 2
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x134]
push eax
push ecx
lea eax, [ebp - 0x148]
mov word [ebp - 0x134], cx
push eax
push dword [esi]
mov esi, dword [ebp - 0x154]
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x38]
mov byte [ebp - 0x131], 1
push eax
push dword [esi]
mov dword [ebp - 0x148], ecx
push dword [ebx + 8]
mov dword [ebp - 0x144], ecx
call dword [0x4aa268]
test eax, eax
jne 0x416522
mov ecx, dword [ebx + 0x6c]
test ecx, ecx
je 0x416522
call fcn.0041d6d2
mov dword [ebp - 0x12c], esi
jmp 0x41656d
mov eax, dword [ebp - 0x58]
lea esi, [ebx + 0xc]
sub eax, dword [ebp - 0x60]
push 0xcc0020
push dword [ebp - 0x60]
mov dword [ebp - 0x12c], esi
push dword [ebp - 0x64]
push dword [ebx + 0x10]
push eax
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x64]
push eax
push dword [ebp - 0x60]
push dword [ebp - 0x64]
push dword [esi]
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
jne 0x41656d
mov ecx, dword [ebx + 0x6c]
test ecx, ecx
je 0x41656d
call fcn.0041d6d2
push dword [ebp - 0x138]
push dword [ebx + 0x10]
call dword [sym.imp.GDI32.dll_RestoreDC]
jmp 0x4165bf
lea eax, [ebx + 0xc]
push dword [eax]
mov dword [ebp - 0x12c], eax
call dword [sym.imp.GDI32.dll_SaveDC]
sub esp, 0x10
mov ecx, dword [ebp - 0x144]
mov edi, esp
lea esi, [ebp - 0x64]
mov ebx, eax
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 [ebp - 0x12c]
push dword [esi]
call fcn.004174c6
push ebx
push dword [esi]
call dword [sym.imp.GDI32.dll_RestoreDC]
mov ebx, dword [ebp - 0x144]
cmp byte [ebx + 0x68], 0
je 0x416618
cmp byte [ebx + 0x2f9], 0
jne 0x416618
push dword [0x4aa26c]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push dword [esi]
call edi
push 5
mov esi, eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
mov eax, dword [ebp - 0x12c]
push dword [eax]
call edi
push dword [ebp - 0x58]
mov eax, dword [ebp - 0x12c]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [ebp - 0x64]
push dword [eax]
call dword [sym.imp.GDI32.dll_Rectangle]
mov eax, dword [ebp - 0x12c]
push esi
push dword [eax]
call edi
lea eax, [ebp - 0xa4]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_EndPaint]
cmp byte [ebx + 0xcd], 0
je 0x4160a7
mov ecx, ebx
call fcn.004159e5
jmp 0x4160a7
xor eax, eax
inc eax
cmp dword [ebp - 0x12c], eax
je 0x4166a6
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x416687
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0x16
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
movlpd qword [ebp - 0x18], xmm0
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x70]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x10c]
mov ecx, dword [ebx + 0x6c]
test ecx, ecx
je 0x416693
call fcn.0041d6d2
cmp byte [ebx + 0x2f9], 0
je 0x4166a3
mov ecx, ebx
call fcn.004159e5
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x14c]
mov dword [ecx], eax
jmp 0x4172ff
test edi, edi
je 0x4160a7
push edi
push dword [ebp - 0x12c]
push 0x204e
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x41609f
sub esi, 0x7b
je 0x416853
push 3
pop ecx
sub esi, ecx
je 0x416847
sub esi, 0x82
je 0x4167df
sub esi, 1
je 0x416775
sub esi, 1
je 0x41671e
sub esi, 0xf
jne 0x417261
test edi, edi
je 0x417261
push edi
push dword [ebp - 0x12c]
push 0x2111
push edi
jmp 0x4166c9
cmp dword [ebx + 0x70], 0
je 0x417261
xor eax, eax
mov dword [ebp - 0x30], 5
mov word [ebp - 0x12], ax
xorps xmm0, xmm0
mov eax, dword [ebp - 0x12c]
mov word [ebp - 0x1c], ax
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x84]
movlpd qword [ebp - 0x2c], xmm0
movlpd qword [ebp - 0x1a], xmm0
mov dword [ebp - 0x20], eax
call fcn.00415e5f
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x70]
jmp 0x4169ef
cmp dword [ebx + 0x7c], 0
je 0x417261
xor eax, eax
mov dword [ebp - 0x30], 4
mov word [ebp - 0x12], ax
xorps xmm0, xmm0
mov eax, dword [ebp - 0x12c]
mov word [ebp - 0x1c], ax
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x84]
movlpd qword [ebp - 0x2c], xmm0
movlpd qword [ebp - 0x1a], xmm0
mov dword [ebp - 0x20], eax
call fcn.00415e5f
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x7c]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x10c]
and dword [ebx + 0x7c], 0
jmp 0x417261
cmp dword [ebx + 0x70], 0
je 0x417261
xor eax, eax
mov dword [ebp - 0x30], ecx
mov word [ebp - 0x12], ax
xorps xmm0, xmm0
mov eax, dword [ebp - 0x12c]
mov word [ebp - 0x1c], ax
mov eax, dword [ebx + 0x80]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x84]
movlpd qword [ebp - 0x2c], xmm0
movlpd qword [ebp - 0x1a], xmm0
mov dword [ebp - 0x20], eax
call fcn.00415e5f
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x70]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x10c]
mov eax, dword [ebx + 0x70]
mov dword [ebx + 0x7c], eax
jmp 0x417261
mov ecx, ebx
call fcn.004159e5
jmp 0x417261
mov ecx, ebx
call fcn.004177f3
movsx eax, di
mov dword [ebp - 0x13c], eax
shr edi, 0x10
movsx eax, di
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x13c]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [ebx + 0x78]
mov eax, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x138]
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x84], edx
test ecx, ecx
jne 0x4168c0
push edx
push eax
mov ecx, ebx
call fcn.00415176
mov ecx, eax
mov dword [ebx + 0x78], ecx
test ecx, ecx
je 0x417261
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x13c]
and dword [ebp - 0x28], 0
xor esi, esi
and dword [ebp - 0x18], esi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x12c]
mov word [ebp - 0x1c], si
mov dword [ebp - 0x30], 0x11
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], edx
mov word [ebp - 0x1a], ax
mov dword [ebp - 0x14], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x78]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x10c]
and dword [ebx + 0x78], esi
jmp 0x417261
mov eax, dword [ebp - 0x12c]
mov ecx, 0x2000
movzx eax, ax
mov dword [ebp - 0x138], eax
cmp ax, cx
jne 0x416970
cmp byte [ebx + 0x2f9], 0
je 0x416970
lea esi, [ebx + 0x2fc]
push esi
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x416970
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x417261
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x417261
push 1
push esi
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x417261
lea esi, [ebx + 0xe0]
xor edi, edi
mov ecx, esi
call fcn.00419043
test eax, eax
jle 0x417261
push edi
mov ecx, esi
call fcn.00418bf3
mov esi, eax
mov ecx, dword [esi + 8]
cmp ecx, dword [ebx + 8]
jne 0x4169ad
mov eax, dword [ebp - 0x138]
movzx ecx, ax
cmp dword [esi + 0xc], ecx
jne 0x4169ad
cmp byte [esi + 0x10], 0
je 0x4169c4
lea esi, [ebx + 0xe0]
inc edi
mov ecx, esi
call fcn.00419043
cmp edi, eax
jl 0x416987
jmp 0x417261
mov eax, dword [esi]
xorps xmm0, xmm0
and dword [ebp - 0x14], 0
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 4]
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0x30], 0x18
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx]
lea edx, [ebp - 0x30]
push edx
call dword [eax + 0x10c]
jmp 0x417261
mov eax, 0x204
cmp esi, eax
ja 0x416dfb
je 0x416d6a
mov eax, esi
sub eax, 0x133
je 0x416d4f
sub eax, 5
je 0x416d4f
sub eax, 0xc8
je 0x416bf8
sub eax, 1
je 0x416b54
sub eax, 1
je 0x416af0
sub eax, 1
jne 0x417261
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_SetFocus]
movsx eax, di
mov ecx, ebx
shr edi, 0x10
movsx edi, di
push edi
push eax
mov dword [ebp - 0x138], eax
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x84], edi
call fcn.00415176
mov esi, eax
test esi, esi
je 0x417261
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x417261
mov ecx, ebx
call fcn.00417ef6
and dword [ebp - 0x28], 0
xorps xmm0, xmm0
xor eax, eax
movlpd qword [ebp - 0x18], xmm0
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x30], 0x10
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x2c], esi
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 + 0x10c]
mov dword [ebx + 0x78], esi
jmp 0x417261
mov ecx, ebx
call fcn.004177f3
mov eax, edi
movsx ecx, di
shr eax, 0x10
movsx edx, ax
mov eax, dword [ebx + 0x78]
mov dword [ebx + 0x80], ecx
mov dword [ebx + 0x84], edx
test eax, eax
je 0x417261
and dword [ebp - 0x28], 0
xor esi, esi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x12c]
mov word [ebp - 0x1c], si
mov dword [ebp - 0x30], 0xe
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], edx
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x78]
and dword [ebx + 0x78], esi
jmp 0x4169ef
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, edi
movsx ecx, di
shr eax, 0x10
cwde
push eax
mov dword [ebp - 0x138], ecx
mov dword [ebx + 0x80], ecx
push ecx
mov ecx, ebx
mov dword [ebp - 0x144], eax
mov dword [ebx + 0x84], eax
call fcn.00415176
mov esi, eax
test esi, esi
je 0x417261
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x417261
mov dword [ebx + 0x78], esi
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0xf4]
mov ecx, ebx
call fcn.00417ef6
mov ecx, dword [ebp - 0x138]
xor eax, eax
and dword [ebp - 0x28], 0
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x30], 0xd
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x20], ecx
mov word [ebp - 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x28], eax
jmp 0x416d42
cmp byte [ebx + 0xd0], 0
jne 0x416c48
cmp dword [ebx + 0x38], 0
mov eax, dword [ebx + 8]
push 3
pop ecx
mov dword [ebp - 0x50], 0x10
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], eax
jne 0x416c23
mov dword [ebp - 0x44], 0x190
jmp 0x416c37
push 0
push ecx
push 0x415
push dword [ebx + 0x38]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.COMCTL32.dll__TrackMouseEvent]
mov byte [ebx + 0xd0], 1
mov eax, edi
movsx ecx, di
shr eax, 0x10
cwde
push eax
mov dword [ebp - 0x138], ecx
mov dword [ebx + 0x80], ecx
push ecx
mov ecx, ebx
mov dword [ebp - 0x144], eax
mov dword [ebx + 0x84], eax
call fcn.00415176
mov esi, eax
test esi, esi
je 0x416c87
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x417261
mov eax, dword [ebp - 0x138]
and dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x74]
mov dword [ebp - 0x28], eax
mov eax, ecx
cmp esi, ecx
je 0x416cf7
test ecx, ecx
je 0x416cf7
mov dword [ebp - 0x30], 0xa
lea edx, [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ecx]
push edx
call dword [eax + 0x10c]
and dword [ebx + 0x74], 0
xor eax, eax
cmp dword [ebx + 0x38], eax
je 0x416cf7
lea eax, [ebx + 0x3c]
push eax
push 0
push 0x411
push dword [ebx + 0x38]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebx + 0x74]
cmp esi, eax
je 0x416d1a
test esi, esi
je 0x416d1a
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 + 0x10c]
mov dword [ebx + 0x74], esi
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x416d30
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x2c], ecx
jmp 0x4169f2
test esi, esi
je 0x417261
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x2c], esi
mov eax, dword [esi]
lea ecx, [ebp - 0x30]
push ecx
mov ecx, esi
jmp 0x4169f8
test edi, edi
je 0x417261
push edi
push dword [ebp - 0x12c]
lea eax, [esi + 0x2000]
push eax
jmp 0x41671b
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, edi
movsx ecx, di
shr eax, 0x10
cwde
push eax
mov dword [ebp - 0x138], ecx
mov dword [ebx + 0x80], ecx
push ecx
mov ecx, ebx
mov dword [ebp - 0x144], eax
mov dword [ebx + 0x84], eax
call fcn.00415176
mov esi, eax
test esi, esi
je 0x417261
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x417261
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xf4]
mov ecx, ebx
call fcn.00417ef6
and dword [ebp - 0x28], 0
xor eax, eax
mov ecx, dword [ebp - 0x138]
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x20], ecx
jmp 0x416aca
sub esi, 0x20a
je 0x41719a
sub esi, 0x97
je 0x417019
dec esi
sub esi, 1
je 0x416fda
sub esi, 0x75
je 0x416e73
sub esi, 0x7ce9
jne 0x417261
lea esi, [ebx + 0x110]
xor edi, edi
mov ecx, esi
call fcn.00419043
test eax, eax
jle 0x416e67
push edi
mov ecx, esi
call fcn.00418bf3
test eax, eax
je 0x416e55
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov ecx, esi
inc edi
call fcn.00419043
cmp edi, eax
jl 0x416e41
mov ebx, dword [ebp - 0x144]
mov ecx, esi
call fcn.00418de8
jmp 0x417261
xor eax, eax
lea edi, [ebp - 0x40]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x54]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x40]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x4160a7
cmp byte [ebx + 0xcd], al
je 0x416ec2
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
call fcn.00418757
mov esi, dword [ebp - 0x12c]
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x34]
mov ecx, ebx
sub eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x40]
push eax
push esi
call fcn.00414f44
test al, al
je 0x416fbf
cmp byte [ebx + 0x2f9], 0
je 0x416f24
lea ecx, [ebx + 0x274]
call fcn.0041918e
test al, al
jne 0x416f24
lea eax, [ebp - 0x54]
mov ecx, ebx
push eax
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x40]
push eax
push esi
call fcn.00414f44
test al, al
je 0x416fbf
push esi
call dword [sym.imp.GDI32.dll_SaveDC]
cmp byte [ebx + 0x2f9], 0
mov dword [ebp - 0x138], eax
je 0x416f50
push 1
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0041504c
sub esp, 0x10
lea esi, [ebp - 0x40]
mov edi, esp
mov ecx, ebx
push dword [ebp - 0x24]
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 fcn.004174c6
cmp byte [ebx + 0x2f9], 0
je 0x416f83
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00414e1f
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x12c]
push 0xcc0020
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x40]
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
push dword [ebp - 0x138]
push esi
call dword [sym.imp.GDI32.dll_RestoreDC]
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.00417805
lea eax, [ebp - 0x54]
mov ecx, ebx
push eax
call fcn.00417805
jmp 0x417261
cmp dword [ebx + 0x38], 0
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
je 0x416ff6
lea eax, [ebx + 0x3c]
push eax
push 0
push 0x411
push dword [ebx + 0x38]
call esi
cmp byte [ebx + 0xd0], 0
je 0x41700d
push 0xffffffffffffffff
push 0
push 0x200
push dword [ebx + 8]
call esi
mov byte [ebx + 0xd0], 0
jmp 0x417261
movsx eax, di
mov ecx, ebx
shr edi, 0x10
movsx edi, di
push edi
push eax
mov byte [ebx + 0xd0], 0
mov dword [ebp - 0x138], eax
call fcn.00415176
mov esi, eax
mov dword [ebp - 0x144], esi
test esi, esi
je 0x417261
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x41708d
mov ecx, dword [ebp - 0x138]
xorps xmm0, xmm0
and dword [ebp - 0x28], 0
and dword [ebp - 0x14], 0
movlpd qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x30], 0xc
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x74]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x28], eax
push edx
mov eax, dword [ecx]
call dword [eax + 0x10c]
cmp byte [ebx + 4], 0
je 0x417261
mov eax, dword [esi]
lea ecx, [ebp - 0x128]
push ecx
mov ecx, esi
call dword [eax + 0x9c]
and dword [ebp - 4], 0
lea ecx, [ebp - 0x128]
call fcn.0041918e
test al, al
je 0x4170cb
lea ecx, [ebp - 0x128]
call fcn.004014cf
jmp 0x4160a7
push 0x2c
lea edi, [ebx + 0x3c]
push 0
push edi
call fcn.0045c240
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x128]
add esp, 0xc
mov dword [edi], 0x2c
mov dword [ebx + 0x40], 1
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x48], eax
mov eax, dword [0x4aa248]
mov dword [ebx + 0x5c], eax
call fcn.00418c12
mov dword [ebx + 0x60], eax
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x30]
mov esi, eax
lea edi, [ebx + 0x4c]
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 edi, dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebx + 0x38], ecx
jne 0x41715d
push ecx
push dword [0x4aa248]
mov eax, SysReAllocString
push ecx
push dword [ebx + 8]
push eax
push eax
push eax
push eax
push SysStringLen
push ecx
push str.tooltips_class32
push ecx
call dword [sym.imp.USER32.dll_CreateWindowExW]
lea esi, [ebx + 0x3c]
mov dword [ebx + 0x38], eax
push esi
push 0
push 0x432
push eax
call edi
jmp 0x417160
lea esi, [ebx + 0x3c]
mov ecx, dword [ebp - 0x144]
mov eax, dword [ecx]
call dword [eax + 0xa8]
push eax
push 0
push 0x418
push dword [ebx + 0x38]
call edi
push esi
push 0
push 0x436
push dword [ebx + 0x38]
call edi
push esi
push 1
push 0x411
push dword [ebx + 0x38]
call edi
jmp 0x4170bb
movsx eax, di
mov dword [ebp - 0x13c], eax
mov eax, edi
shr eax, 0x10
cwde
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x13c]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x13c]
push eax
mov dword [ebx + 0x80], ecx
push ecx
mov ecx, ebx
mov dword [ebx + 0x84], eax
call fcn.00415176
mov esi, eax
test esi, esi
je 0x417261
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x417261
mov eax, dword [ebp - 0x12c]
xorps xmm0, xmm0
shr eax, 0x10
movzx eax, ax
shr eax, 0xf
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0x30], 0x12
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edi
call fcn.00415e5f
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 + 0x10c]
movzx ecx, word [ebx + 0x84]
movzx eax, word [ebx + 0x80]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 0x200
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
lea edi, [ebx + 0x11c]
push 0
mov ecx, edi
call fcn.00418fca
mov esi, eax
test esi, esi
je 0x4172ff
add ebx, 0xd4
push 0
mov ecx, edi
call fcn.00419276
mov ecx, dword [esi + 0x108]
test ecx, ecx
je 0x4172ae
add ecx, 0x38
call fcn.0041f3a9
test al, al
je 0x4172ae
mov ecx, dword [esi + 0x108]
push esi
add ecx, 0x38
call fcn.0041f3bd
mov ecx, ebx
xor edi, edi
call fcn.00419043
test eax, eax
jle 0x4172d6
push edi
mov ecx, ebx
call fcn.00418bf3
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx]
mov ecx, ebx
inc edi
call fcn.00419043
cmp edi, eax
jl 0x4172bb
mov ecx, esi
call fcn.0041467a
push 0x120
push esi
call fcn.0045a4d5
mov edi, dword [ebp - 0x154]
pop ecx
pop ecx
push 0
mov ecx, edi
call fcn.00418fca
mov esi, eax
test esi, esi
jne 0x417280
xor al, al
call fcn.0045adfc
ret 0x10