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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov dword [ebp - 0xd0], edx
mov ecx, dword [ebp + 0x14]
push esi
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebx + 0xf7c]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebx + 0x11d8]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x20c]
mov dword [ecx + 0xc], eax
mov esi, dword [ebx]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0xd4], ebx
mov ecx, dword [esi + 0xf93c]
mov eax, dword [esi + 0xf880]
and ecx, 0xf
mov edx, dword [esi + 0xf884]
shl ecx, 3
call fcn.10451430
mov ecx, dword [esi + 0xf944]
mov edx, 1
shl edx, cl
mov ecx, dword [ebp - 0xcc]
dec edx
and eax, edx
movzx eax, al
mov dword [ecx], eax
mov eax, dword [ebp + 0x10]
mov byte [ecx + 0x14], al
mov ecx, dword [0x11d0c5b8]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc4], eax
mov ecx, dword [eax + 0x10]
xor eax, eax
mov dword [ebp - 0xc0], ecx
mov esi, dword [ecx + 0xfd48]
test esi, esi
je 0x101f2681
add ecx, 0xf968
mov edx, ecx
nop dword [eax]
cmp dword [edx], 1
je 0x101f28eb
inc eax
add edx, 0x20
cmp eax, esi
jb 0x101f2670
mov byte [ebp - 0xb9], 0
mov eax, dword [ebx]
mov eax, dword [eax + 0x162c]
shr eax, 7
test al, 1
je 0x101f2e11
mov esi, dword [ebp - 0xd0]
mov edx, dword [esi + 0x114]
cmp edx, 0xffffffff
je 0x101f26e1
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + edx*4 + 0xdb4]
test eax, eax
je 0x101f26e1
mov ebx, dword [ebp - 0xc8]
lea ecx, [eax + edx*4]
add ecx, edx
lea eax, [edx + edx*4]
mov eax, dword [ebx + eax*4 + 0xd64]
cmp eax, dword [ebx + ecx*4 + 0xd64]
mov ebx, dword [ebp - 0xd4]
je 0x101f272a
xorps xmm0, xmm0
lea ecx, [ebp - 0x100]
movups xmmword [ebp - 0x100], xmm0
mov dword [ebp - 0x100], edx
call fcn.101ea6d0
mov ecx, dword [ebp - 0xfc]
mov al, byte [esi + 0x93]
neg ecx
sbb cl, cl
and al, 0xfd
and cl, 2
or cl, al
mov eax, dword [ebp - 0xf8]
and cl, 0xfb
neg eax
sbb al, al
and al, 4
or cl, al
mov byte [esi + 0x93], cl
mov esi, dword [ebx]
mov ecx, dword [esi + 0xf93c]
mov eax, dword [esi + 0xf880]
and ecx, 0xf
mov edx, dword [esi + 0xf884]
shl ecx, 3
call fcn.10451430
and eax, dword [esi + 0xf888]
mov esi, dword [ebp - 0xc4]
movzx eax, al
mov eax, dword [eax*4 + 0x11225dc8]
mov dword [ebp - 0xdc], eax
mov eax, dword [esi + 0x10]
test byte [eax + 0x144], 0x10
je 0x101f2954
cmp byte [esi + 8], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe0], 0
jne 0x101f279a
call fcn.10450c0b
cmp byte [esi + 8], 0
xorps xmm0, xmm0
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xbe2c]
mov eax, dword [eax + 0x11cc]
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xe4], 0x34
movlpd qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], 0
movlpd qword [ebp - 0x14], xmm0
movlpd qword [ebp - 0xc], xmm0
mov dword [ebp - 0x38], 0x4e564441
mov dword [ebp - 0x34], 0x10002
mov dword [ebp - 0x30], 0x34
mov dword [ebp - 0x2c], 0x4e562a2a
mov dword [ebp - 0x28], 0x100007d
mov dword [ebp - 0x18], eax
jne 0x101f2815
call fcn.10450c0b
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xbe2c]
mov dword [ebp - 0xc0], eax
mov ecx, dword [eax + 0x10b4]
mov dword [ebp - 0xd8], ecx
test ecx, ecx
je 0x101f2945
mov ecx, dword [eax]
test ecx, ecx
je 0x101f2945
mov edx, dword [ecx + 0xbe28]
test edx, edx
je 0x101f2945
mov edx, dword [edx + 0x14]
test edx, edx
je 0x101f2945
cmp dword [ecx + 0xd45c], 1
jne 0x101f2933
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
add eax, 0x1428
push eax
call esi
mov eax, dword [ebp - 0xc0]
lea edx, [ebp - 0xf0]
push edx
mov ecx, dword [eax + 0x10b4]
mov eax, dword [eax]
mov eax, dword [eax + 0xbe28]
push dword [eax + 0x14]
call ecx
mov dword [ebp - 0xd8], eax
xorps xmm0, xmm0
lea eax, [ebp - 0xf8]
movlpd qword [ebp - 0xf8], xmm0
push eax
call esi
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xc4]
sub ecx, dword [edx + 0x1428]
sbb eax, dword [edx + 0x142c]
add dword [edx + 0x1420], ecx
adc dword [edx + 0x1424], eax
mov eax, dword [ebp - 0xd8]
jmp 0x101f2941
cmp eax, 0x1f
jne 0x101f2904
xor eax, eax
cmp dword [ecx], 1
je 0x101f2916
inc eax
add ecx, 0x20
cmp eax, esi
jb 0x101f28f2
jmp 0x101f2681
cmp eax, 0xffffffff
je 0x101f2681
cmp eax, 0x1f
jae 0x101f2681
mov ecx, dword [ebp - 0xc0]
shl eax, 5
cmp dword [eax + ecx + 0xf96c], 0
setne byte [ebp - 0xb9]
jmp 0x101f2688
lea eax, [ebp - 0xf0]
push eax
push edx
call dword [ebp - 0xd8]
test eax, eax
jne 0x101f2954
cmp dword [ebp - 8], 1
mov eax, dword [ebx]
sete cl
mov byte [eax + 0xf65d], cl
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0xd3a4]
test cl, 1
jne 0x101f2985
test cl, 2
jne 0x101f299c
cmp dword [eax + 0xd39c], 0
je 0x101f299c
cmp dword [eax + 0xd3a8], 0
jne 0x101f299c
cmp byte [eax + 0xd3e0], 0
je 0x101f299c
mov ecx, dword [ebx]
call fcn.101e0d10
test al, al
je 0x101f299c
mov eax, dword [ebx]
or dword [eax + 0x162c], 0x4000000
mov esi, dword [esi + 0x10]
cmp dword [esi + 0xf940], 2
jne 0x101f29d6
mov eax, dword [ebx]
movzx ecx, byte [eax + 0xf880]
mov eax, dword [eax + 0xf888]
and eax, 0xf00
cmp eax, 0x100
jbe 0x101f29cd
lea eax, [ecx - 1]
test ecx, eax
jne 0x101f29d6
mov byte [ebp - 0xbc], 1
jmp 0x101f29dd
mov byte [ebp - 0xbc], 0
mov byte [ebp - 0xba], 0
mov byte [ebp - 0xbb], 0
test byte [esi + 0xd29d], 4
jne 0x101f2a61
test dword [esi + 0x162c], 0x4000000
jne 0x101f2a61
mov edx, dword [esi + 0xbe2c]
test edx, edx
je 0x101f2ab4
mov ecx, dword [esi + 0x6910]
test ecx, ecx
je 0x101f2ab4
mov eax, dword [ecx]
lea esi, [ebp - 0xbb]
push esi
lea esi, [ebp - 0xba]
push esi
push edx
call dword [eax + 0xa4]
test eax, eax
mov eax, dword [ebp - 0xc4]
je 0x101f2aba
cmp byte [ebp - 0xba], 0
je 0x101f2aba
cmp byte [ebp - 0xbb], 0
je 0x101f2aba
mov esi, dword [eax + 0x10]
test dword [esi + 0x162c], 0x800000
jne 0x101f2aba
xor cl, cl
mov eax, dword [ebp - 0xd0]
test byte [eax + 0x95], 0x10
je 0x101f2a84
cmp byte [eax + 0x91], 0
jge 0x101f2a84
test byte [eax + 0x92], 1
jne 0x101f2ab0
cmp dword [esi + 0xf940], 2
jne 0x101f2afe
mov eax, dword [ebx]
mov eax, dword [eax + 0x162c]
shr eax, 0xf
test al, 1
je 0x101f2afe
mov eax, dword [ebp - 0xc8]
mov al, byte [eax + 0xb38]
test al, 1
jne 0x101f2afe
test al, al
js 0x101f2afe
xor al, al
jmp 0x101f2b00
mov eax, dword [ebp - 0xc4]
mov esi, dword [eax + 0x10]
cmp byte [esi + 0xf65d], 0
je 0x101f2a61
cmp byte [ebp - 0xbc], 0
je 0x101f2a61
cmp byte [ebp + 0x10], 0
jne 0x101f2a61
mov ecx, dword [ebp - 0xd0]
push dword [ebp - 0xdc]
mov ecx, dword [ecx + 0x20c]
call fcn.101f4100
test al, al
je 0x101f2a61
mov cl, 1
jmp 0x101f2a63
mov al, 1
push dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
and cl, al
push dword [ebp + 0x10]
mov byte [ebp - 0xc0], cl
mov edx, esi
push dword [ebp - 0xc0]
push ecx
mov ecx, ebx
call fcn.101f3ba0
mov eax, dword [ebx]
mov edx, esi
push dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0xc8]
or byte [eax + 0x7fd8], 2
call fcn.100fdd10
mov edx, dword [ebp + 0x10]
test dl, dl
je 0x101f2cd2
mov eax, dword [ebx]
mov ecx, dword [eax + 0xf7d4]
test ecx, ecx
je 0x101f2b66
push esi
call fcn.101fbc30
test al, al
je 0x101f2b66
mov cl, 1
jmp 0x101f2b68
xor cl, cl
mov eax, dword [ebx]
mov edx, dword [eax + 0x162c]
mov eax, edx
shr eax, 7
test al, 1
je 0x101f2ccf
test edx, 0x8100
jne 0x101f2b8d
test cl, cl
je 0x101f2ccf
push 0x80
lea eax, [ebp - 0xb8]
push 0
push eax
call fcn.10425c00
mov eax, dword [esi + 0x114]
add esp, 0xc
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x84], 0x100
push dword [esi + 0x20c]
push esi
push ecx
push eax
mov ecx, ebx
call fcn.101f5e20
mov ecx, dword [ebx + 0xf7c]
lea edx, [ebp - 0x6c]
add ecx, 0xb4
mov esi, 0x30
mov dword [ebp - 0xdc], ecx
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x101f2bfc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x101f2be6
jmp 0x101f2cc0
movups xmm0, xmmword [ebp - 0x6c]
mov ecx, dword [ebp - 0xdc]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x5c]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x4c]
movups xmmword [ecx + 0x20], xmm0
mov eax, dword [ebp - 0x3c]
mov dword [ecx + 0x30], eax
mov eax, dword [ebx]
cmp dword [eax + 0x2d0], 0x2000
jae 0x101f2cc0
mov eax, dword [ebx + 0x11cc]
xor ecx, ecx
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xe0], ecx
and ecx, 0xfffffffe
mov dword [ebp - 0xe8], eax
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xec], ecx
mov ecx, ebx
push eax
mov dword [ebp - 0xe4], 0x80
mov dword [ebp - 0xa8], 0x100000e
mov dword [ebp - 0xb8], 0x4e564441
mov dword [ebp - 0xb4], 0x10002
mov dword [ebp - 0xac], 0x4e564458
mov dword [ebp - 0xb0], 0x80
call fcn.101d20e0
test eax, eax
je 0x101f2cc0
mov eax, dword [ebx + 0xf7c]
push 0x34
add eax, 0xb4
push 0
push eax
call fcn.10425c00
add esp, 0xc
mov eax, dword [ebx]
mov esi, dword [ebp - 0xd0]
mov byte [eax + 0xf898], 0
mov edx, dword [ebp + 0x10]
cmp byte [ebp - 0xc0], 0
je 0x101f2cea
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebx + 0x11d8]
mov dword [ecx + 0x10], eax
push dword [ebp - 0xcc]
mov ecx, ebx
push edx
mov edx, esi
call fcn.101f38d0
mov eax, dword [ebp - 0xd4]
xor ebx, ebx
mov dword [edi + 0xc], ebx
xor edx, edx
mov eax, dword [eax]
cmp dword [eax + 0xf944], edx
jbe 0x101f2e01
mov ecx, edx
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0xcc]
test dword [ecx], eax
je 0x101f2dec
mov eax, dword [ebp - 0xcc]
lea ecx, [edx + edx*8]
xor esi, esi
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0x10]
xor ecx, ecx
cmp byte [ebp - 0xb9], cl
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xcc]
cmovne ecx, edx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x18c]
mov eax, dword [eax + 8]
test eax, eax
je 0x101f2d71
mov eax, dword [eax + ecx*4 + 8]
mov dword [ebp - 0xc8], eax
jmp 0x101f2d77
mov dword [ebp - 0xc8], esi
mov eax, 2
add ecx, eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x101f2d9f
mov eax, dword [eax + 0x20c]
mov eax, dword [eax + 0x18c]
mov esi, dword [eax + 8]
test esi, esi
je 0x101f2d9d
mov esi, dword [esi + ecx*4]
jmp 0x101f2d9f
xor esi, esi
mov eax, dword [ebp - 0xc0]
test ebx, ebx
jne 0x101f2dc1
mov dword [edi + 8], eax
mov eax, dword [ebp - 0xc8]
test eax, eax
je 0x101f2db8
mov dword [edi], eax
test esi, esi
je 0x101f2deb
mov dword [edi + 4], esi
jmp 0x101f2deb
cmp byte [ebp - 0xb9], 0
mov dword [edi + ebx*4 + 0xc], eax
je 0x101f2de8
mov eax, dword [edi + 0x110]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + ebx*4 - 4], ecx
mov eax, dword [edi + 0x114]
mov dword [eax + ebx*4 - 4], esi
inc dword [edi + 0xc]
inc ebx
mov eax, dword [ebp - 0xd4]
inc edx
mov eax, dword [eax]
cmp edx, dword [eax + 0xf944]
jb 0x101f2d15
cmp dword [ebp + 8], 0
jne 0x101f2e11
mov dword [edi + 0x114], 0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x10