Function at 0x10060c50
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x17c
mov eax, dword [0x1013c014]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x1014e8dc], 3
mov edx, dword [0x1014b4d4]
push ebx
mov ebx, ecx
mov dword [ebp - 0x118], edx
mov ecx, dword [0x1014b56c]
push esi
mov esi, ecx
mov dword [ebp - 0x84], ebx
cmove esi, dword [0x1014b568]
cmp edx, 3
mov eax, dword [ebx + 0x54]
cmove ecx, dword [0x1014b568]
mov dword [ebp - 0x11c], eax
mov al, byte [ebx + 0x5d]
push edi
mov edi, dword [ebx + 0xf4]
mov byte [ebp - 0x7d], al
mov eax, dword [0x1014e8f0]
sub edi, eax
mov dword [ebx + 0xf4], eax
mov dword [ebx + 0x10c], eax
add eax, esi
mov dword [ebx + 0x114], eax
lea eax, [ebx + 0xa0]
mov dword [ebp - 0xdc], ecx
sub ecx, esi
mov dword [ebp - 0x114], esi
mov esi, dword [eax]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x110], eax
cmp esi, dword [ebx + 0xa4]
je 0x10060d22
neg edi
cmp dword [esi + 0x18], 1
jne 0x10060d04
cmp dword [esi], 0x26
je 0x10060d04
sub dword [esi + 0x28], ecx
push 0
push edi
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [ebp - 0x78]
add esi, 0x54
cmp esi, dword [ebx + 0xa4]
jne 0x10060cf6
mov edi, dword [ebp - 0x7c]
lea eax, [ebp - 0x100]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0x178]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xor eax, eax
mov dword [ebp - 0xe4], 0
push eax
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xe0], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
cmp byte [0x1014b4f3], 0
mov esi, eax
mov dword [ebp - 0xac], esi
je 0x10060d8b
push 1
push esi
call dword [sym.imp.GDI32.dll_SetLayout]
push 7
push esi
call dword [sym.imp.GDI32.dll_GetCurrentObject]
mov ecx, 0x19
mov dword [ebp - 0xa8], eax
mov dword [0x1014e908], 0x19
mov esi, ecx
nop dword [eax + eax]
imul esi, dword [ebp - 0x78]
mov eax, 0x51eb851f
imul ecx, edi
imul ecx
mov eax, 0x51eb851f
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul esi
mov esi, dword [ebp - 0x110]
mov edi, ecx
sub edi, dword [ebp - 0xe0]
sar edx, 5
mov eax, edx
mov dword [ebp - 0xd8], ecx
mov esi, dword [esi]
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xe0], ecx
mov ebx, eax
mov dword [ebp - 0x88], eax
sub ebx, dword [ebp - 0xd4]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x84]
cmp esi, dword [eax + 0xa4]
je 0x10060e43
cmp dword [esi + 0x18], 1
jne 0x10060e25
cmp dword [esi], 0x26
je 0x10060e25
add dword [esi + 0x28], ebx
push 0
push edi
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [ebp - 0x84]
add esi, 0x54
cmp esi, dword [eax + 0xa4]
jne 0x10060e17
mov esi, dword [0x1014e8fc]
cmp esi, dword [0x1014e900]
je 0x10060e77
cmp dword [esi + 0x18], 1
jne 0x10060e5f
cmp dword [esi], 0x26
je 0x10060e5f
add dword [esi + 0x28], ebx
push 0
push edi
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
add esi, 0x54
cmp esi, dword [0x1014e900]
jne 0x10060e51
mov ebx, dword [ebp - 0x84]
test edi, edi
je 0x10060ece
cmp dword [0x1014b4d4], 1
jne 0x10060ece
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebx + 0x1b8]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [ebp - 0x24]
push eax
push dword [ebx + 0xc]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebp - 0x24]
push 5
push 0
push 0
push dword [ebp - 0x20]
add eax, edi
push eax
mov eax, dword [ebx + 0x1b8]
push 0
push dword [eax + 8]
call dword [sym.imp.USER32.dll_SetWindowPos]
cmp dword [ebx + 0x1a4], 0
je 0x10060f3a
mov eax, dword [ebx + 0x198]
test eax, eax
js 0x10060f3a
lea ecx, [ebp - 0x14]
push ecx
push eax
mov ecx, ebx
call fcn.10059640
mov esi, dword [ebp - 0x10]
mov eax, esi
mov edx, dword [ebp - 8]
sub eax, edx
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp byte [0x1014e274], 0
mov dword [ebp - 0xc], ecx
jne 0x10060f1f
push 0xfffffffffffffffd
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
sub edx, esi
push 4
push edx
sub ecx, eax
push ecx
push esi
push eax
push 0
push dword [ebx + 0x1a4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [ebx + 0xf4]
lea edx, [ebx + 0xa0]
mov esi, dword [ebp - 0x88]
add ecx, edi
xorps xmm0, xmm0
mov dword [ebx + 0xf4], ecx
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebx + 0x10c], ecx
lea eax, [ecx + esi]
mov dword [ebp - 0x50], 0x2c
add eax, dword [ebp - 0x114]
mov dword [ebx + 0x114], eax
sub eax, ecx
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x110]
sub eax, dword [ebx + 0x118]
mov dword [ebp - 0x48], eax
mov eax, dword [0x1014e8dc]
mov dword [0x1014b4d4], eax
mov eax, dword [0x1014e8f4]
mov dword [ebx + 0x54], eax
mov al, byte [0x1014e8f8]
movq qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x44], 0x200001
mov dword [ebp - 0x40], 0
mov byte [ebx + 0x5d], al
movups xmmword [ebp - 0x3c], xmm0
cmp edx, 0x1014e8fc
je 0x10060ff5
mov ecx, dword [edx]
mov eax, dword [0x1014e8fc]
mov dword [edx], eax
mov eax, dword [0x1014e900]
mov dword [0x1014e8fc], ecx
mov ecx, dword [edx + 4]
mov dword [edx + 4], eax
mov eax, dword [0x1014e904]
mov dword [0x1014e900], ecx
mov ecx, dword [edx + 8]
mov dword [edx + 8], eax
mov dword [0x1014e904], ecx
mov eax, dword [ebp - 0x9c]
mov ecx, ebx
mov dword [ebp - 0xa4], eax
test eax, eax
lea eax, [ebp - 0x8c]
jne 0x1006118f
push 0
push eax
lea eax, [ebp - 0x90]
push eax
push dword [0x1014e8ec]
mov eax, dword [0x1014e8e4]
push dword [0x1014e8e8]
add eax, esi
push eax
push dword [0x1014e8e0]
call fcn.10069870
movups xmm0, xmmword [ebx + 0x11c]
mov esi, dword [sym.imp.USER32.dll_OffsetRect]
lea eax, [ebx + 0x11c]
push 0
push dword [ebx + 0xf4]
movups xmmword [ebp - 0x16c], xmm0
lea edi, [ebx + 0x12c]
movups xmm0, xmmword [edi]
push eax
movups xmmword [ebp - 0x130], xmm0
call esi
push 0
push dword [ebx + 0xf4]
push edi
call esi
mov edi, dword [ebp - 0xac]
lea eax, [ebp - 0xe4]
push 0
push 0
push eax
push 0
lea eax, [ebp - 0x50]
push eax
push edi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
push eax
push edi
mov dword [ebp - 0xa4], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebx + 0xf4]
push 0
push 0
neg ecx
push ecx
push edi
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
lea eax, [ebx + 0x10c]
mov ecx, ebx
push eax
push edi
call fcn.1006d120
cmp dword [0x1014b4d4], 1
jne 0x10061146
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebx + 0x1b8]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [ebp - 0x60]
push eax
push dword [ebx + 0xc]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebp - 0x60]
sub eax, dword [ebx + 0xf4]
push 0
push dword [ebp - 0x5c]
push eax
push edi
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebx + 0x1b8]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebx + 0x1b8]
lea eax, [ebp - 0x60]
push eax
push edi
call fcn.10070ea0
mov eax, dword [ebx + 0x1b8]
push 2
push edi
push 0x317
push dword [eax + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebx + 0xf0]
test eax, eax
je 0x10061157
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0
push 0
push 0
push edi
mov dword [ebx + 0xf0], 0
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
push dword [ebp - 0xa8]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [ebp - 0x78], 0
jne 0x100611fc
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x9c], eax
jmp 0x100611fc
push eax
lea eax, [ebp - 0x90]
push eax
push dword [0x1014e8ec]
mov eax, dword [0x1014e8e4]
push dword [0x1014e8e8]
add eax, esi
push eax
push dword [0x1014e8e0]
call fcn.1006cd60
movups xmm0, xmmword [ebx + 0x11c]
mov esi, dword [sym.imp.USER32.dll_OffsetRect]
lea eax, [ebx + 0x11c]
push 0
push dword [ebx + 0xf4]
movups xmmword [ebp - 0x16c], xmm0
lea edi, [ebx + 0x12c]
movups xmm0, xmmword [edi]
push eax
movups xmmword [ebp - 0x130], xmm0
call esi
push 0
push dword [ebx + 0xf4]
push edi
call esi
mov edi, dword [ebp - 0xac]
mov eax, dword [0x1014e148]
cmp eax, 3
je 0x1006120f
mov byte [ebp - 0x73], 0
cmp eax, 2
jne 0x10061213
mov byte [ebp - 0x73], 1
mov eax, dword [0x1014e14c]
cmp eax, 3
je 0x10061226
mov byte [ebp - 0x71], 0
cmp eax, 2
jne 0x1006122a
mov byte [ebp - 0x71], 1
cmp dword [0x1014b4d4], 3
jne 0x1006124a
mov eax, dword [0x1014e154]
cmp eax, 3
je 0x10061246
mov byte [ebp - 0x71], 0
cmp eax, 2
jne 0x1006124a
mov byte [ebp - 0x71], 1
mov eax, dword [ebp - 0x118]
lea edx, [ebx + 0xa0]
mov dword [0x1014b4d4], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebx + 0x54], eax
mov al, byte [ebp - 0x7d]
mov byte [ebx + 0x5d], al
cmp edx, 0x1014e8fc
je 0x100612a3
mov ecx, dword [edx]
mov eax, dword [0x1014e8fc]
mov dword [edx], eax
mov eax, dword [0x1014e900]
mov dword [0x1014e8fc], ecx
mov ecx, dword [edx + 4]
mov dword [edx + 4], eax
mov eax, dword [0x1014e904]
mov dword [0x1014e900], ecx
mov ecx, dword [edx + 8]
mov dword [edx + 8], eax
mov dword [0x1014e904], ecx
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0xd0], eax
test eax, eax
mov eax, dword [0x1014b55c]
jne 0x1006147f
push 1
push ecx
lea ecx, [ebp - 0x90]
push ecx
mov ecx, ebx
push dword [0x1014b554]
push dword [0x1014b558]
test eax, eax
jle 0x100612f0
sub eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x88]
push eax
push dword [0x1014b560]
jmp 0x10061300
push eax
mov eax, dword [0x1014b560]
sub eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x88]
push eax
call fcn.10069870
movups xmm0, xmmword [ebx + 0x11c]
lea eax, [ebx + 0x11c]
push 0
push dword [ebx + 0xf4]
movups xmmword [ebp - 0x140], xmm0
push eax
movups xmm0, xmmword [ebx + 0x12c]
movups xmmword [ebp - 0x150], xmm0
call esi
push 0
push dword [ebx + 0xf4]
lea eax, [ebx + 0x12c]
push eax
call esi
push 0
push 0
lea eax, [ebp - 0xb8]
push eax
push 0
lea eax, [ebp - 0x50]
push eax
push edi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov esi, eax
push esi
push edi
mov dword [ebp - 0xd0], esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebx + 0xf4]
push 0
push 0
neg ecx
push ecx
push edi
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
lea eax, [ebx + 0x10c]
mov ecx, ebx
push eax
push edi
call fcn.1006d120
cmp dword [0x1014b4d4], 1
jne 0x1006140b
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebx + 0x1b8]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [ebp - 0x70]
push eax
push dword [ebx + 0xc]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebp - 0x70]
sub eax, dword [ebx + 0xf4]
push 0
push dword [ebp - 0x6c]
push eax
push edi
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebx + 0x1b8]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebx + 0x1b8]
lea eax, [ebp - 0x70]
push eax
push edi
call fcn.10070ea0
mov eax, dword [ebx + 0x1b8]
push 2
push edi
push 0x317
push dword [eax + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebx + 0xf0]
test eax, eax
je 0x1006141c
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0
push 0
push 0
push edi
mov dword [ebx + 0xf0], 0
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
push dword [ebp - 0xa8]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x94]
cmove eax, esi
mov dword [ebp - 0x94], eax
mov eax, dword [ebx + 0xf8]
test eax, eax
je 0x100614fe
cmp byte [0x1014b4f3], 0
jne 0x100614fe
push 0
push dword [ebx + 0xf4]
push eax
call dword [sym.imp.GDI32.dll_OffsetRgn]
jmp 0x100614fe
push ecx
lea ecx, [ebp - 0x90]
push ecx
mov ecx, ebx
push dword [0x1014b554]
push dword [0x1014b558]
test eax, eax
jle 0x100614ab
sub eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x88]
push eax
push dword [0x1014b560]
jmp 0x100614bb
push eax
mov eax, dword [0x1014b560]
sub eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x88]
push eax
call fcn.1006cd60
movups xmm0, xmmword [ebx + 0x11c]
lea eax, [ebx + 0x11c]
push 0
push dword [ebx + 0xf4]
movups xmmword [ebp - 0x140], xmm0
push eax
movups xmm0, xmmword [ebx + 0x12c]
movups xmmword [ebp - 0x150], xmm0
call esi
push 0
push dword [ebx + 0xf4]
lea eax, [ebx + 0x12c]
push eax
call esi
mov eax, dword [0x1014e148]
cmp eax, 3
je 0x10061511
mov byte [ebp - 0x74], 0
cmp eax, 2
jne 0x10061515
mov byte [ebp - 0x74], 1
mov eax, dword [0x1014e14c]
cmp eax, 3
je 0x10061528
mov byte [ebp - 0x72], 0
cmp eax, 2
jne 0x1006152c
mov byte [ebp - 0x72], 1
cmp dword [0x1014b4d4], 3
jne 0x1006154c
mov eax, dword [0x1014e154]
cmp eax, 3
je 0x10061548
mov byte [ebp - 0x72], 0
cmp eax, 2
jne 0x1006154c
mov byte [ebp - 0x72], 1
cmp byte [0x1014b4f3], 0
je 0x100615c8
mov esi, dword [ebp - 0x4c]
mov eax, esi
sub eax, dword [ebp - 0x16c]
mov dword [ebp - 0xec], eax
mov eax, esi
sub eax, dword [ebp - 0x164]
mov dword [ebp - 0xe8], eax
mov eax, esi
sub eax, dword [ebp - 0x130]
mov dword [ebp - 0xb4], eax
mov eax, esi
sub eax, dword [ebp - 0x128]
mov dword [ebp - 0xb0], eax
mov eax, esi
sub eax, dword [ebp - 0x140]
mov dword [ebp - 0xc0], eax
mov eax, esi
sub eax, dword [ebp - 0x138]
mov dword [ebp - 0xbc], eax
mov eax, esi
sub eax, dword [ebp - 0x150]
sub esi, dword [ebp - 0x148]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], esi
jmp 0x10061628
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0xc4], eax
push 0
push 0
lea eax, [ebp - 0x120]
push eax
push 0
lea eax, [ebp - 0x50]
push eax
push edi
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov edx, dword [ebp - 0x48]
xor edi, edi
mov dword [ebx + 0xf0], eax
mov eax, 0x64
mov ecx, dword [0x1014e908]
sub eax, ecx
mov dword [ebp - 0xcc], eax
mov eax, edx
neg eax
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0xa0], edi
test eax, eax
jle 0x1006187d
mov esi, dword [ebp - 0x4c]
nop dword [eax]
xor ecx, ecx
test esi, esi
jle 0x1006186a
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xe4]
mov ebx, dword [eax + edx*4]
movzx eax, bl
mov dword [ebp - 0x10c], eax
mov eax, ebx
shr eax, 8
movzx eax, al
mov dword [ebp - 0x104], eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
shr ebx, 0x18
cmp byte [ebp - 0x73], 0
mov dword [ebp - 0x158], eax
je 0x100616e7
cmp ecx, dword [ebp - 0xe8]
jl 0x100616e7
cmp ecx, dword [ebp - 0xec]
jge 0x100616e7
cmp edi, dword [ebp - 0x168]
jl 0x100616e7
cmp edi, dword [ebp - 0x160]
jl 0x1006170d
cmp byte [ebp - 0x71], 0
je 0x10061712
cmp ecx, dword [ebp - 0xb0]
jl 0x10061712
cmp ecx, dword [ebp - 0xb4]
jge 0x10061712
cmp edi, dword [ebp - 0x12c]
jl 0x10061712
cmp edi, dword [ebp - 0x124]
jge 0x10061712
mov ebx, 0xff
mov eax, dword [ebp - 0xb8]
mov edx, dword [eax + edx*4]
movzx eax, dl
mov dword [ebp - 0x108], eax
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebp - 0x15c], eax
mov eax, edx
shr eax, 0x10
movzx eax, al
shr edx, 0x18
cmp byte [ebp - 0x74], 0
mov dword [ebp - 0x154], eax
je 0x10061769
cmp ecx, dword [ebp - 0xbc]
jl 0x10061769
cmp ecx, dword [ebp - 0xc0]
jge 0x10061769
cmp edi, dword [ebp - 0x13c]
jl 0x10061769
cmp edi, dword [ebp - 0x134]
jl 0x1006178f
cmp byte [ebp - 0x72], 0
je 0x10061794
cmp ecx, dword [ebp - 0xc4]
jl 0x10061794
cmp ecx, dword [ebp - 0xc8]
jge 0x10061794
cmp edi, dword [ebp - 0x14c]
jl 0x10061794
cmp edi, dword [ebp - 0x144]
jge 0x10061794
mov edx, 0xff
imul edx, dword [ebp - 0x98]
mov eax, 0x51eb851f
imul ebx, dword [ebp - 0xcc]
inc ecx
add edx, ebx
mov ebx, dword [ebp - 0xcc]
imul edx
mov eax, dword [ebp - 0x158]
sar edx, 5
mov esi, edx
imul eax, ebx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x154]
imul edx, dword [ebp - 0x98]
shl esi, 8
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x15c]
imul edx, dword [ebp - 0x98]
or esi, eax
mov eax, dword [ebp - 0x104]
imul eax, ebx
shl esi, 8
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x108]
imul edx, dword [ebp - 0x98]
or esi, eax
mov eax, dword [ebp - 0x10c]
imul eax, ebx
shl esi, 8
add edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xa0]
or esi, eax
mov eax, dword [ebp - 0x120]
mov dword [eax + edx*4], esi
inc edx
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0xa0], edx
cmp ecx, esi
jl 0x10061690
mov edx, dword [ebp - 0x48]
mov eax, edx
inc edi
neg eax
cmp edi, eax
jl 0x10061680
mov ebx, dword [ebp - 0x84]
cmp dword [ebp - 0x9c], 0
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
jne 0x10061894
push dword [ebp - 0xa4]
call esi
cmp dword [ebp - 0x94], 0
jne 0x100618a5
push dword [ebp - 0xd0]
call esi
push 1
push 0
push dword [ebx + 0xc]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ecx
mov ecx, ebx
call fcn.10058d20
push dword [ebx + 0xc]
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [ebx + 0xf0]
call esi
lea eax, [ebp - 0xf8]
mov dword [ebx + 0xf0], 0
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov esi, dword [ebp - 0xf8]
mov ecx, esi
sub ecx, dword [ebp - 0x100]
mov edi, dword [ebp - 0xf4]
mov eax, edi
sbb eax, dword [ebp - 0xfc]
push 0
push 0x3e8
push eax
push ecx
call fcn.100f57e0
push dword [ebp - 0x174]
push dword [ebp - 0x178]
push edx
push eax
call fcn.100f5860
mov ecx, eax
test edx, edx
jg 0x10061946
jl 0x1006192c
cmp ecx, 0x21
jae 0x10061946
mov eax, 0x21
sub eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xf8]
mov ecx, dword [0x1014e908]
add ecx, 0x19
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xfc], edi
mov esi, ecx
mov edi, dword [ebp - 0x7c]
mov dword [0x1014e908], ecx
cmp ecx, 0x64
jl 0x10060db0
push dword [ebp - 0xa8]
mov esi, dword [ebp - 0xac]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x9c]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x1006199c
push eax
call esi
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x100619a9
push eax
call esi
mov eax, dword [ebp - 0x78]
mov ecx, edi
sub eax, dword [ebp - 0x88]
sub ecx, dword [ebp - 0xd8]
mov esi, dword [ebx + 0xa0]
mov edi, dword [sym.imp.USER32.dll_OffsetRect]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], ecx
cmp esi, dword [ebx + 0xa4]
je 0x100619fc
cmp dword [esi + 0x18], 1
jne 0x100619e2
cmp dword [esi], 0x26
je 0x100619e2
add dword [esi + 0x28], eax
push 0
push ecx
lea eax, [esi + 0x20]
push eax
call edi
mov eax, dword [ebp - 0x78]
add esi, 0x54
mov ecx, dword [ebp - 0x7c]
cmp esi, dword [ebx + 0xa4]
jne 0x100619d4
test ecx, ecx
je 0x10061a4e
cmp dword [0x1014b4d4], 1
jne 0x10061a4e
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebx + 0x1b8]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [ebp - 0x24]
push eax
push dword [ebx + 0xc]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x7c]
push 5
push 0
push 0
push dword [ebp - 0x20]
push eax
mov eax, dword [ebx + 0x1b8]
push 0
push dword [eax + 8]
call dword [sym.imp.USER32.dll_SetWindowPos]
cmp dword [ebx + 0x1a4], 0
je 0x10061aba
mov eax, dword [ebx + 0x198]
test eax, eax
js 0x10061aba
lea ecx, [ebp - 0x14]
push ecx
push eax
mov ecx, ebx
call fcn.10059640
mov esi, dword [ebp - 0x10]
mov eax, esi
mov edx, dword [ebp - 8]
sub eax, edx
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp byte [0x1014e274], 0
mov dword [ebp - 0xc], ecx
jne 0x10061a9f
push 0xfffffffffffffffd
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
sub edx, esi
push 4
push edx
sub ecx, eax
push ecx
push esi
push eax
push 0
push dword [ebx + 0x1a4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebx + 0xf4]
mov ecx, ebx
add eax, dword [ebp - 0x7c]
mov dword [ebx + 0xf4], eax
mov dword [ebx + 0x10c], eax
add eax, dword [ebp - 0xdc]
push 1
mov dword [ebx + 0x114], eax
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [0x1014b554]
push dword [0x1014b558]
push dword [0x1014b55c]
push dword [0x1014b560]
call fcn.10069870
push 0
push dword [ebx + 0xf4]
lea ecx, [ebx + 0x11c]
push ecx
call edi
push 0
push dword [ebx + 0xf4]
lea eax, [ebx + 0x12c]
push eax
call edi
mov eax, dword [ebx + 0xf8]
test eax, eax
je 0x10061b4e
cmp byte [0x1014b4f3], 0
jne 0x10061b4e
push 0
push dword [ebx + 0xf4]
push eax
call dword [sym.imp.GDI32.dll_OffsetRgn]
push 1
push 0
push dword [ebx + 0xc]
call dword [sym.imp.USER32.dll_InvalidateRect]
push ecx
mov ecx, ebx
call fcn.10058d20
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100d4906
mov esp, ebp
pop ebp
ret