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

Disassembly:
push 0xffffffffffffffff
push 0x101fff37
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10293044]
xor eax, esp
push eax
lea eax, [esp + 0x6c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x7c]
mov ecx, dword [ebp + 0x230]
xor edi, edi
cmp ecx, edi
je 0x10164121
mov eax, dword [ecx]
mov edx, dword [eax + 0x138]
call edx
xor esi, esi
xor ebx, ebx
mov eax, dword [ebp + 0x8c]
cmp eax, edi
je 0x10164193
mov ecx, dword [ebp + 0x90]
sub ecx, eax
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x10164193
mov eax, dword [ebp + 0x8c]
cmp eax, edi
je 0x10164177
mov ecx, dword [ebp + 0x90]
sub ecx, eax
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x1016417d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [ebp + 0x8c]
mov byte [ebx + eax + 0x10], 0
add esi, 1
add ebx, 0xcc
jmp 0x10164125
cmp byte [ebp + 0x220], 0
je 0x101641e3
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, dword [ebp + 4]
jne 0x101641e3
mov byte [ebp + 0x220], 0
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [ebp + 0x248]
cmp eax, edi
je 0x101641ef
mov eax, dword [eax + 4]
cmp eax, edi
je 0x101641ef
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x101641ef
mov ecx, dword [ebp + 0x248]
mov edx, dword [ecx + 4]
push edi
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x10164208
mov eax, ebp
call fcn.10168ed0
jmp 0x101646c4
mov ecx, dword [ebp + 0x248]
cmp ecx, edi
je 0x10164208
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [ebp + 0x248], edi
mov ecx, dword [ebp + 0x1f4]
test ecx, 0x800
jne 0x101642a9
lea esi, [ebp + 0x24]
lea ebx, [esp + 0x20]
mov eax, esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call fcn.10170cd0
mov ecx, dword [ebp + 4]
push 1
push 0
mov eax, ebx
push eax
push ecx
call dword [sym.imp.USER32.dll_RedrawWindow]
test dword [ebp + 0x1f4], 0x2000
je 0x101642a7
mov edx, dword [ebp + 0x1d8]
mov eax, dword [edx + 0x84]
lea edi, [ebp + 0x1d8]
push 0
mov ecx, edi
call eax
mov edx, dword [edi]
lea ebx, [eax - 1]
mov eax, dword [edx + 0x88]
mov ecx, edi
call eax
cmp eax, ebx
je 0x101642a7
mov ecx, dword [esi + 0x1a0]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x101642a7
mov edx, dword [esi + 0x1a0]
push 0x101
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
xor edi, edi
mov ecx, dword [ebp + 4]
lea eax, [esp + 0x3c]
push eax
push ecx
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
push edx
push eax
lea ecx, [esp + 0x44]
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
mov esi, 0x200
jne 0x1016433d
test dword [ebp + 0x1f4], esi
je 0x1016430b
push ebp
call fcn.101647a0
test al, al
jne 0x101646c4
mov edi, ebp
call fcn.1016a280
xor edi, edi
push edi
lea ebx, [ebp + 0x24]
push 1
mov ecx, ebx
call fcn.10170610
mov edx, dword [ebx + 0x1a0]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1016433d
mov eax, dword [ebx + 0x1a0]
push 0x101
push edi
push edi
push eax
call dword [sym.imp.USER32.dll_RedrawWindow]
test dword [ebp + 0x1f4], esi
je 0x10164421
call fcn.101a7380
mov edi, dword [eax + 0x20]
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x7c], edi
je 0x10164363
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
call eax
mov dword [esp + 0x74], ebx
cmp edi, ebx
je 0x101643e4
push 3
push 0x1023ea9c
lea esi, [esp + 0x28]
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebx
mov word [esp + 0x2c], bx
call fcn.10007a00
mov byte [esp + 0x74], 1
mov ecx, esi
push ecx
push ecx
mov eax, esp
mov dword [eax], edi
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
mov dword [esp + 0x88], esp
call eax
mov byte [esp + 0x7c], 2
mov byte [esp + 0x7c], 1
call fcn.1001aeb0
add esp, 8
mov byte [esp + 0x74], 0
cmp dword [esp + 0x38], 8
jb 0x101643d3
mov ecx, dword [esp + 0x24]
push ecx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], ebx
mov word [esp + 0x24], bx
mov dword [esp + 0x74], 0xffffffff
cmp edi, ebx
je 0x101643f9
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
cmp byte [ebp + 0x1f8], 0
sete cl
push ecx
push 1
lea ecx, [ebp + 0x24]
call fcn.10170610
mov edx, dword [ebp + 4]
push 1
push ebx
push ebx
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
jmp 0x101646c4
lea ebx, [ebp + 0x24]
push ebx
lea eax, [esp + 0x84]
call fcn.101725c0
mov esi, eax
cmp esi, dword [ebp + 0x1f4]
mov dword [esp + 0x7c], esi
jne 0x101646c4
test esi, 0x400
je 0x101645d8
call fcn.101a7380
mov edi, dword [eax + 0x20]
test edi, edi
mov dword [esp + 0x18], edi
je 0x10164467
mov eax, dword [edi]
mov edx, dword [eax]
mov ecx, edi
call edx
mov dword [esp + 0x74], 3
test edi, edi
je 0x101644da
mov edx, 0x1023eaa4
lea eax, [esp + 0x4c]
call fcn.10007690
mov byte [esp + 0x74], 4
lea eax, [esp + 0x4c]
push eax
push ecx
mov eax, esp
mov dword [eax], edi
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
mov dword [esp + 0x24], esp
call eax
mov byte [esp + 0x7c], 5
mov byte [esp + 0x7c], 4
call fcn.1001aeb0
add esp, 8
mov byte [esp + 0x74], 3
cmp dword [esp + 0x64], 8
jb 0x101644c7
mov ecx, dword [esp + 0x50]
push ecx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [esp + 0x64], 7
mov dword [esp + 0x60], eax
mov word [esp + 0x50], ax
mov dword [esp + 0x74], 0xffffffff
test edi, edi
je 0x101644ef
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp + 4]
push ecx
lea edx, [esp + 0x24]
push edx
and esi, 0xff
call fcn.10020cf0
mov dword [esp + 0x74], 6
mov ecx, esi
mov eax, ebx
call fcn.10174010
test al, al
je 0x1016459b
cmp byte [ebp + 0x1a4], 0
jne 0x1016459b
mov eax, dword [esp + 0x7c]
push 1
push eax
push ecx
mov ecx, dword [esp + 0x2c]
mov eax, esp
mov dword [esp + 0x88], esp
mov dword [eax], ecx
mov byte [esp + 0x80], 7
mov byte [esp + 0x80], 6
mov edi, ebx
call fcn.10170e30
push 1
push 1
push 0
push 1
mov ecx, esi
mov edx, ebp
call fcn.101685a0
mov edx, dword [ebp + 4]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebx + 0x1a0]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1016459b
mov ecx, dword [ebx + 0x1a0]
push 0x101
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_RedrawWindow]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x80]
mov dword [ebp + 0x270], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x274], edx
mov dword [ebp + 0x278], eax
mov dword [esp + 0x74], 0xffffffff
lea ecx, [esp + 0x20]
push ecx
call fcn.10013210
jmp 0x101646bd
test esi, 0x1000
je 0x10164604
mov ecx, dword [ebp + 0x1bc]
cmp ecx, edi
je 0x101645f1
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [ebp + 4]
push 1
push edi
push edi
push ecx
call dword [sym.imp.USER32.dll_RedrawWindow]
jmp 0x101646bd
test esi, 0x4000
je 0x1016469e
call fcn.101a7380
mov esi, dword [eax + 0x20]
cmp esi, edi
mov dword [esp + 0x7c], esi
je 0x10164628
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov dword [esp + 0x74], 8
cmp esi, edi
je 0x10164680
mov edx, 0x1023eaac
lea eax, [esp + 0x4c]
call fcn.10007690
mov bl, 9
mov byte [esp + 0x74], bl
lea ecx, [esp + 0x4c]
push ecx
push ecx
mov eax, esp
mov dword [eax], esi
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
mov dword [esp + 0x88], esp
call eax
mov byte [esp + 0x7c], 0xa
mov byte [esp + 0x7c], bl
call fcn.1001aeb0
add esp, 8
mov byte [esp + 0x74], 8
lea ecx, [esp + 0x4c]
call fcn.10001dd0
mov dword [esp + 0x74], 0xffffffff
cmp esi, edi
je 0x10164695
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
mov edi, ebp
call fcn.101646e0
jmp 0x101646bd
test esi, 0x8000
je 0x101646af
mov ecx, ebp
call fcn.1016ae00
jmp 0x101646bd
test esi, 0x10000
je 0x101646bd
push ebp
call fcn.1016c330
mov byte [ebp + 0x1a4], 0
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0xc