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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebx + 0x10]
mov eax, ecx
push esi
mov esi, dword [ebp + 0x14]
and eax, 2
or eax, 0
mov dword [ebp - 0x94], ebx
push edi
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xb0], 0
movlpd qword [ebp - 0x11c], xmm0
movlpd qword [ebp - 0x10c], xmm0
je 0x101d51f2
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x108], 1
mov dword [ebp - 0x10c], eax
test dword [ebx + 0x20], 0x1000000
je 0x101d5210
mov dword [ebx + 0x72], 2
mov dword [ebx + 0x76], 2
mov dword [ebx + 0x7a], 2
and ecx, 0x1000000
or ecx, 0
je 0x101d5221
mov dword [ebp - 0x118], edx
mov ecx, dword [0x11d0c5b8]
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x120], eax
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x12c], esi
push ebx
mov dword [ebp - 0x114], ebx
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x110], 0x252
movlpd qword [ebp - 0x134], xmm0
mov dword [ebp - 0x128], 0
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x124], 1
mov dword [ebp - 0x90], esi
call fcn.101def30
mov eax, dword [esi + 0x10]
test byte [eax + 0x144], 0x80
je 0x101d52a8
test dword [eax + 0xd418], 0x8000
je 0x101d52a8
mov eax, dword [ebx + 0x14]
or dword [ebx + 0x10], 0x2000
mov dword [ebx + 0x14], eax
mov edi, dword [esi + 0x10]
xor eax, eax
mov esi, dword [edi + 0xfd48]
test esi, esi
je 0x101d52d3
lea ecx, [edi + 0xf968]
mov edx, ecx
cmp dword [edx], 1
je 0x101d551d
inc eax
add edx, 0x20
cmp eax, esi
jb 0x101d52c2
mov esi, 1
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x98], esi
test ecx, ecx
je 0x101d52fb
lea eax, [esi*8]
push eax
push 0
push ecx
call fcn.10425c00
add esp, 0xc
mov edi, dword [ebp - 0xa8]
cmp dword [edi], 0
je 0x101d56d1
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 0x10]
cmp dword [eax + 0x15b4], 2
je 0x101d56d1
mov esi, dword [ebp - 0x94]
add ebx, 0x14a
push 0x40
push 0
lea edi, [esi + 0x15e]
mov dword [ebx], 0
push edi
mov dword [ebx + 4], 0
call fcn.10425c00
mov ecx, dword [ebp - 0xa0]
add esp, 0xc
xor eax, eax
test byte [ecx + 0x1088], 1
je 0x101d5b57
cmp byte [ebp + 0x1c], al
je 0x101d53a7
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x10]
xor eax, eax
mov esi, dword [ecx + 0xfd48]
test esi, esi
je 0x101d53a1
add ecx, 0xf968
mov edx, ecx
nop dword [eax]
cmp dword [edx], 1
je 0x101d5569
inc eax
add edx, 0x20
cmp eax, esi
jb 0x101d5390
mov esi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x90]
cmp byte [ebx + 8], 0
jne 0x101d53bb
call fcn.10450c0b
mov eax, dword [ebx + 0x10]
mov ecx, dword [esi + 0x14]
and ecx, 0x20
mov ebx, dword [eax + 0xbe2c]
xor eax, eax
or eax, ecx
jne 0x101d53d5
xor edi, edi
push 0x80
lea eax, [ebp - 0x8c]
mov dword [ebp - 0xf8], 0
push 0
push eax
mov dword [ebp - 0xec], 0
call fcn.10425c00
mov eax, dword [ebx + 0x11cc]
add esp, 0xc
mov edx, dword [ebx + 0x10b4]
xorps xmm0, xmm0
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x8c]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xf0], 0x80
mov dword [ebp - 0x7c], 0x1000010
mov dword [ebp - 0x8c], 0x4e564441
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
xor eax, eax
test edi, edi
mov dword [ebp - 0x88], 0x10002
mov dword [ebp - 0x80], 0x4e564458
setne al
mov dword [ebp - 0x84], 0x80
mov dword [ebp - 0x50], eax
movlpd qword [ebp - 0xbc], xmm0
test edx, edx
je 0x101d563e
mov eax, dword [ebx]
test eax, eax
je 0x101d563e
mov ecx, dword [eax + 0xbe28]
test ecx, ecx
je 0x101d563e
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x101d563e
cmp dword [eax + 0xd45c], 1
jne 0x101d5616
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebx + 0x1428]
push eax
call esi
mov ecx, dword [ebx + 0x10b4]
lea eax, [ebp - 0xfc]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xbe28]
push dword [eax + 0x14]
call ecx
mov dword [ebp - 0x9c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0xc4]
movlpd qword [ebp - 0xc4], xmm0
push eax
call esi
mov ecx, dword [ebp - 0xc4]
sub ecx, dword [ebx + 0x1428]
mov eax, dword [ebp - 0xc0]
sbb eax, dword [ebx + 0x142c]
add dword [ebx + 0x1420], ecx
adc dword [ebx + 0x1424], eax
mov eax, dword [ebp - 0x9c]
jmp 0x101d5620
cmp eax, 0x1f
jne 0x101d5536
xor eax, eax
cmp dword [ecx], 1
je 0x101d5548
inc eax
add ecx, 0x20
cmp eax, esi
jb 0x101d5524
jmp 0x101d52d3
cmp eax, 0xffffffff
je 0x101d52d3
cmp eax, 0x1f
jae 0x101d52d3
shl eax, 5
cmp dword [eax + edi + 0xf96c], 0
setne al
test al, al
je 0x101d52d3
mov esi, dword [edi + 0xf944]
jmp 0x101d52d8
cmp eax, 0x1f
jne 0x101d5582
xor eax, eax
cmp dword [ecx], 1
je 0x101d5594
inc eax
add ecx, 0x20
cmp eax, esi
jb 0x101d5570
jmp 0x101d53a1
cmp eax, 0xffffffff
je 0x101d53a1
cmp eax, 0x1f
jae 0x101d53a1
mov edx, dword [ebp - 0x90]
shl eax, 5
mov ecx, dword [edx + 0x10]
cmp dword [eax + ecx + 0xf96c], 0
setne al
test al, al
je 0x101d53a1
mov ecx, dword [ebp - 0x98]
xor esi, esi
test ecx, ecx
je 0x101d5b55
mov eax, dword [ebp - 0xa8]
push edi
push ebx
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push ecx
mov ecx, dword [ebp - 0xa0]
push esi
push dword [ebp - 0x9c]
push dword [eax + esi*4]
push dword [ebp - 0x94]
call fcn.101d4ff0
test eax, eax
js 0x101d5b57
mov ecx, dword [ebp - 0x98]
inc esi
cmp esi, ecx
jb 0x101d55c6
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x24
lea eax, [ebp - 0xfc]
push eax
push ecx
call edx
test eax, eax
je 0x101d563e
mov esi, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x9c], esi
mov esi, dword [ebp - 0xbc]
jmp 0x101d564a
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x50], 0
mov ecx, dword [ebp - 0x94]
mov dword [ecx + 0x14a], esi
mov dword [ecx + 0x14e], eax
je 0x101d56ad
mov eax, dword [ebx]
mov eax, dword [eax + 0xf944]
shl eax, 3
push eax
lea eax, [ebp - 0x4c]
push eax
push edi
call fcn.10425d60
mov eax, dword [ebx]
add esp, 0xc
xor ecx, ecx
mov edx, dword [eax + 0xf944]
test edx, edx
je 0x101d56ad
nop dword [eax]
mov eax, dword [edi + ecx*8]
or eax, dword [edi + ecx*8 + 4]
je 0x101d56a0
inc ecx
cmp ecx, edx
jb 0x101d5690
jmp 0x101d56ad
mov dword [edi], 0
mov dword [edi + 4], 0
or esi, dword [ebp - 0x9c]
jne 0x101d5b55
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x24
push 0x40
lea eax, [ebp - 0x4c]
xorps xmm0, xmm0
push 0
push eax
movlpd qword [ebp - 0xe4], xmm0
call fcn.10425c00
mov eax, dword [ebx + 0x10e]
add esp, 0xc
movq xmm2, qword [ebx + 0x142]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebx + 0x112]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x116]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx + 0xca]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebx + 0xce]
mov dword [ebp - 0xd8], eax
movq qword [ebp - 0x104], xmm2
mov dword [ebp - 0x94], 0
movups xmm0, xmmword [ebx + 0x122]
movups xmm1, xmmword [ebx + 0x132]
movups xmmword [ebp - 0x144], xmm0
movups xmmword [ebp - 0xfc], xmm1
test esi, esi
je 0x101d599a
mov eax, dword [ebp - 0xac]
sub eax, edi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xb8], eax
nop word [eax + eax]
mov eax, dword [ebp - 0x90]
mov edi, dword [eax + 0x10]
xor eax, eax
mov esi, dword [edi + 0xfd48]
test esi, esi
je 0x101d57ff
lea edx, [edi + 0xf968]
mov ecx, edx
cmp dword [ecx], 1
je 0x101d57af
inc eax
add ecx, 0x20
cmp eax, esi
jb 0x101d57a0
jmp 0x101d57ff
cmp eax, 0x1f
jne 0x101d57c5
xor eax, eax
cmp dword [edx], 1
je 0x101d57cf
inc eax
add edx, 0x20
cmp eax, esi
jb 0x101d57b6
jmp 0x101d57ff
cmp eax, 0xffffffff
je 0x101d57ff
cmp eax, 0x1f
jae 0x101d57ff
shl eax, 5
cmp dword [eax + edi + 0xf96c], 0
setne al
test al, al
je 0x101d57ff
cmp dword [ebp - 0x98], 1
jbe 0x101d57ff
mov ecx, dword [ebp - 0x94]
mov eax, 1
shl ax, cl
mov word [ebx + 0x92], ax
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xa0]
mov dword [ebx + 0x10e], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 0x112], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x116], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebx + 0xca], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebx + 0xce], eax
lea eax, [ebp - 0x134]
movups xmmword [ebx + 0x122], xmm0
push eax
movups xmmword [ebx + 0x132], xmm1
movq qword [ebx + 0x142], xmm2
call fcn.101d0290
mov ecx, eax
mov dword [ebp - 0xb0], ecx
test ecx, ecx
js 0x101d599a
cmp dword [ebp - 0xac], 0
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x11c]
mov dword [ecx], eax
je 0x101d5899
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x1c6]
mov dword [edx + ecx], eax
cmp byte [ebp + 0x1c], 0
je 0x101d594e
mov eax, dword [ebp - 0x90]
mov edi, dword [eax + 0x10]
xor eax, eax
mov esi, dword [edi + 0xfd48]
test esi, esi
je 0x101d594e
lea edx, [edi + 0xf968]
mov ecx, edx
cmp dword [ecx], 1
je 0x101d58d9
inc eax
add ecx, 0x20
cmp eax, esi
jb 0x101d58c7
jmp 0x101d594e
cmp eax, 0x1f
jne 0x101d58ef
xor eax, eax
cmp dword [edx], 1
je 0x101d58f9
inc eax
add edx, 0x20
cmp eax, esi
jb 0x101d58e0
jmp 0x101d594e
cmp eax, 0xffffffff
je 0x101d594e
cmp eax, 0x1f
jae 0x101d594e
shl eax, 5
cmp dword [eax + edi + 0xf96c], 0
setne al
test al, al
je 0x101d594e
mov ecx, dword [ebp - 0xa0]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [ebp + 0x24]
mov eax, dword [ebp - 0xa4]
push dword [ebp + 0x20]
push dword [ebp - 0x98]
push dword [ebp - 0x94]
push dword [ebp - 0x9c]
push dword [eax]
push ebx
call fcn.101d4ff0
mov ecx, eax
mov dword [ebp - 0xb0], eax
test ecx, ecx
js 0x101d5985
mov ecx, dword [ebp - 0x94]
add dword [ebp - 0xa4], 4
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, dword [ebp - 0x98]
jae 0x101d599a
movups xmm0, xmmword [ebp - 0x144]
movups xmm1, xmmword [ebp - 0xfc]
movq xmm2, qword [ebp - 0x104]
jmp 0x101d5780
mov eax, ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x24
mov ecx, dword [ebp - 0x90]
xor eax, eax
mov edi, dword [ecx + 0x10]
mov esi, dword [edi + 0xfd48]
test esi, esi
je 0x101d59d3
lea ecx, [edi + 0xf968]
mov edx, ecx
nop word [eax + eax]
cmp dword [edx], 1
je 0x101d5a12
inc eax
add edx, 0x20
cmp eax, esi
jb 0x101d59c0
mov ecx, dword [ebp - 0x90]
cmp byte [ebp + 0x1c], 0
je 0x101d5ae2
mov edi, dword [ecx + 0x10]
xor eax, eax
mov esi, dword [edi + 0xfd48]
test esi, esi
je 0x101d5ae2
lea ecx, [edi + 0xf968]
mov edx, ecx
nop dword [eax + eax]
cmp dword [edx], 1
je 0x101d5a6c
inc eax
add edx, 0x20
cmp eax, esi
jb 0x101d5a00
jmp 0x101d5ae2
cmp eax, 0x1f
jne 0x101d5a2f
xor eax, eax
nop dword [eax]
cmp dword [ecx], 1
je 0x101d5a39
inc eax
add ecx, 0x20
cmp eax, esi
jb 0x101d5a20
jmp 0x101d59cd
cmp eax, 0xffffffff
je 0x101d59cd
cmp eax, 0x1f
jae 0x101d59cd
shl eax, 5
cmp dword [eax + edi + 0xf96c], 0
setne al
test al, al
je 0x101d59cd
cmp dword [ebp - 0x98], 1
mov ecx, dword [ebp - 0x90]
jbe 0x101d59d3
xor eax, eax
mov word [ebx + 0x92], ax
jmp 0x101d59d3
cmp eax, 0x1f
jne 0x101d5a82
xor eax, eax
cmp dword [ecx], 1
je 0x101d5a8c
inc eax
add ecx, 0x20
cmp eax, esi
jb 0x101d5a73
jmp 0x101d5ae2
cmp eax, 0xffffffff
je 0x101d5ae2
cmp eax, 0x1f
jae 0x101d5ae2
shl eax, 5
cmp dword [eax + edi + 0xf96c], 0
setne al
test al, al
je 0x101d5ae2
movups xmm0, xmmword [ebp - 0x4c]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe0]
movups xmmword [ebx + 0x15e], xmm0
mov dword [ebx + 0x14a], eax
movups xmm0, xmmword [ebp - 0x3c]
mov dword [ebx + 0x14e], ecx
movups xmmword [ebx + 0x16e], xmm0
movups xmm0, xmmword [ebp - 0x2c]
movups xmmword [ebx + 0x17e], xmm0
movups xmm0, xmmword [ebp - 0x1c]
movups xmmword [ebx + 0x18e], xmm0
mov eax, dword [ebp - 0xb0]
test eax, eax
jns 0x101d5b57
mov ebx, dword [ebp - 0x98]
test ebx, ebx
je 0x101d5b57
mov esi, dword [ebp - 0xac]
mov edi, dword [ebp - 0xa8]
sub esi, edi
mov eax, dword [edi]
test eax, eax
je 0x101d5b34
mov ecx, dword [ebp - 0xa0]
push 0
push eax
push dword [ebp - 0xc0]
call fcn.101d5b70
cmp dword [ebp - 0xac], 0
mov dword [edi], 0
je 0x101d5b34
mov dword [edi + esi], 0
add edi, 4
sub ebx, 1
jne 0x101d5b04
mov eax, dword [ebp - 0xb0]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x24
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0x24