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

Disassembly:
mov rax, rsp
push r12
push r14
sub rsp, 0x98
mov qword [rax + 0x18], rbx
mov qword [rax - 0x18], rbp
mov qword [rax - 0x20], rsi
mov qword [rax - 0x28], rdi
mov rdi, qword [rcx + 8]
mov qword [rax - 0x30], r13
mov rbx, qword [rdi + 8]
mov qword [rax - 0x38], r15
mov r12, rcx
cmp rbx, qword [rdi + 0x10]
jbe 0x4114786c
call fcn.41211d60
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rbx
xor r14d, r14d
movaps xmmword [rsp + 0x60], xmm6
nop
mov rsi, qword [r12 + 8]
mov rbp, qword [rsi + 0x10]
cmp qword [rsi + 8], rbp
jbe 0x41147894
call fcn.41211d60
test rdi, rdi
je 0x4114789e
cmp rdi, rsi
je 0x411478a3
call fcn.41211d60
cmp rbx, rbp
je 0x41147a09
test rdi, rdi
jne 0x411478b6
call fcn.41211d60
cmp rbx, qword [rdi + 0x10]
jb 0x411478c1
call fcn.41211d60
mov rax, qword [rbx]
cmp byte [rax + 1], r14b
je 0x411478e0
cmp rbx, qword [rdi + 0x10]
jb 0x411478d5
call fcn.41211d60
add rbx, 8
mov qword [rsp + 0x28], rbx
jmp 0x41147880
cmp rbx, qword [rdi + 0x10]
jb 0x411478eb
call fcn.41211d60
mov rdi, qword [r12 + 0x10]
mov rdx, qword [rdi + 8]
test rdx, rdx
jne 0x411478fe
mov rcx, r14
jmp 0x41147909
mov rcx, qword [rdi + 0x10]
sub rcx, rdx
sar rcx, 3
test rdx, rdx
je 0x41147935
mov rax, qword [rdi + 0x18]
sub rax, rdx
sar rax, 3
cmp rcx, rax
jae 0x41147935
mov rcx, qword [rdi + 0x10]
mov rax, qword [rbx]
mov qword [rcx], rax
lea rax, [rcx + 8]
mov qword [rdi + 0x10], rax
jmp 0x411479c2
mov rsi, qword [rdi + 0x10]
cmp rdx, rsi
jbe 0x41147943
call fcn.41211d60
mov rbp, qword [rdi + 8]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rsi
test rbp, rbp
je 0x41147979
mov rcx, qword [rdi + 0x10]
mov rax, rcx
sub rax, rbp
sar rax, 3
je 0x41147979
cmp rbp, rcx
jbe 0x41147970
call fcn.41211d60
sub rsi, rbp
sar rsi, 3
jmp 0x4114797c
mov rsi, r14
movaps xmm0, xmmword [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov r9, rbx
mov r8d, 1
mov rcx, rdi
movdqa xmmword [rsp + 0x40], xmm0
call fcn.410d76c0
mov rbp, qword [rdi + 8]
cmp rbp, qword [rdi + 0x10]
jbe 0x411479ac
call fcn.41211d60
lea rax, [rbp + rsi*8]
cmp rax, qword [rdi + 0x10]
ja 0x411479bd
cmp rax, qword [rdi + 8]
jae 0x411479c2
call fcn.41211d60
mov rdi, qword [r12 + 8]
movaps xmm6, xmmword [rsp + 0x20]
lea r8, [rbx + 8]
mov rdx, qword [rdi + 0x10]
sub rdx, r8
sar rdx, 3
test rdx, rdx
jle 0x411479ef
shl rdx, 3
mov rcx, rbx
mov r9, rdx
call fcn.41211980
add qword [rdi + 0x10], 0xfffffffffffffff8
movdqa xmmword [rsp + 0x20], xmm6
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x20]
jmp 0x41147880
mov rbx, qword [r12 + 0x20]
mov rdi, qword [rbx + 8]
cmp rdi, qword [rbx + 0x10]
jbe 0x41147a1d
call fcn.41211d60
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rdi
nop
nop
nop
mov rsi, qword [r12 + 0x20]
mov rbp, qword [rsi + 0x10]
cmp qword [rsi + 8], rbp
jbe 0x41147a44
call fcn.41211d60
test rbx, rbx
je 0x41147a4e
cmp rbx, rsi
je 0x41147a53
call fcn.41211d60
cmp rdi, rbp
je 0x41147bb9
test rbx, rbx
jne 0x41147a66
call fcn.41211d60
cmp rdi, qword [rbx + 0x10]
jb 0x41147a71
call fcn.41211d60
mov rax, qword [rdi]
cmp byte [rax + 1], r14b
je 0x41147a90
cmp rdi, qword [rbx + 0x10]
jb 0x41147a85
call fcn.41211d60
add rdi, 8
mov qword [rsp + 0x28], rdi
jmp 0x41147a30
cmp rdi, qword [rbx + 0x10]
jb 0x41147a9b
call fcn.41211d60
mov rbx, qword [r12 + 0x28]
mov rdx, qword [rbx + 8]
test rdx, rdx
jne 0x41147aae
mov rcx, r14
jmp 0x41147ab9
mov rcx, qword [rbx + 0x10]
sub rcx, rdx
sar rcx, 3
test rdx, rdx
je 0x41147ae5
mov rax, qword [rbx + 0x18]
sub rax, rdx
sar rax, 3
cmp rcx, rax
jae 0x41147ae5
mov rcx, qword [rbx + 0x10]
mov rax, qword [rdi]
mov qword [rcx], rax
lea rax, [rcx + 8]
mov qword [rbx + 0x10], rax
jmp 0x41147b72
mov rsi, qword [rbx + 0x10]
cmp rdx, rsi
jbe 0x41147af3
call fcn.41211d60
mov rbp, qword [rbx + 8]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rsi
test rbp, rbp
je 0x41147b29
mov rcx, qword [rbx + 0x10]
mov rax, rcx
sub rax, rbp
sar rax, 3
je 0x41147b29
cmp rbp, rcx
jbe 0x41147b20
call fcn.41211d60
sub rsi, rbp
sar rsi, 3
jmp 0x41147b2c
mov rsi, r14
movaps xmm0, xmmword [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov r9, rdi
mov r8d, 1
mov rcx, rbx
movdqa xmmword [rsp + 0x40], xmm0
call fcn.410d76c0
mov rbp, qword [rbx + 8]
cmp rbp, qword [rbx + 0x10]
jbe 0x41147b5c
call fcn.41211d60
lea rax, [rbp + rsi*8]
cmp rax, qword [rbx + 0x10]
ja 0x41147b6d
cmp rax, qword [rbx + 8]
jae 0x41147b72
call fcn.41211d60
mov rbx, qword [r12 + 0x20]
movaps xmm6, xmmword [rsp + 0x20]
lea r8, [rdi + 8]
mov rdx, qword [rbx + 0x10]
sub rdx, r8
sar rdx, 3
test rdx, rdx
jle 0x41147b9f
shl rdx, 3
mov rcx, rdi
mov r9, rdx
call fcn.41211980
add qword [rbx + 0x10], 0xfffffffffffffff8
movdqa xmmword [rsp + 0x20], xmm6
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
jmp 0x41147a30
mov r13, qword [r12 + 0x80]
movaps xmm6, xmmword [rsp + 0x60]
mov rbp, qword [r13 + 8]
cmp rbp, qword [r13 + 0x10]
jbe 0x41147bd5
call fcn.41211d60
or r15d, 0xffffffff
nop
nop
mov rbx, qword [r12 + 0x80]
mov rdi, qword [rbx + 0x10]
cmp qword [rbx + 8], rdi
jbe 0x41147bf7
call fcn.41211d60
cmp r13, rbx
je 0x41147c01
call fcn.41211d60
cmp rbp, rdi
je 0x41147e99
cmp rbp, qword [r13 + 0x10]
jb 0x41147c15
call fcn.41211d60
cmp qword [r12 + 0xf8], 8
mov r11, qword [rbp]
mov r10, qword [r12 + 0xf0]
mov qword [rsp + 0xb0], r11
jb 0x41147c3e
mov rdx, qword [r12 + 0xe0]
jmp 0x41147c46
lea rdx, [r12 + 0xe0]
mov r9, qword [r11 + 0xb0]
cmp r9, r9
cmovb r9, r9
cmp qword [r11 + 0xb8], 8
jb 0x41147c67
mov rcx, qword [r11 + 0xa0]
jmp 0x41147c6e
lea rcx, [r11 + 0xa0]
cmp r9, r10
mov r8, r10
cmovb r8, r9
test r8, r8
je 0x41147c96
nop
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x41147cce
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x41147c80
mov r8d, r14d
test r8d, r8d
movsxd rax, r8d
jne 0x41147cb3
cmp r9, r10
jb 0x41147dac
cmp r9, r10
mov eax, r14d
setne al
test eax, eax
jne 0x41147dac
mov rbx, qword [r12 + 8]
mov rcx, qword [rbx + 8]
test rcx, rcx
jne 0x41147cdd
mov rdx, r14
jmp 0x41147ce8
cmp word [rcx], ax
mov r8d, 1
cmovb r8d, r15d
jmp 0x41147c99
mov rdx, qword [rbx + 0x10]
sub rdx, rcx
sar rdx, 3
test rcx, rcx
je 0x41147d12
mov rax, qword [rbx + 0x18]
sub rax, rcx
sar rax, 3
cmp rdx, rax
jae 0x41147d12
mov rax, qword [rbx + 0x10]
add rax, 8
mov qword [rax - 8], r11
mov qword [rbx + 0x10], rax
jmp 0x41147e85
mov rdi, qword [rbx + 0x10]
cmp rcx, rdi
jbe 0x41147d20
call fcn.41211d60
mov rsi, qword [rbx + 8]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rdi
test rsi, rsi
je 0x41147d56
mov rcx, qword [rbx + 0x10]
mov rax, rcx
sub rax, rsi
sar rax, 3
je 0x41147d56
cmp rsi, rcx
jbe 0x41147d4d
call fcn.41211d60
sub rdi, rsi
sar rdi, 3
jmp 0x41147d59
mov rdi, r14
movaps xmm0, xmmword [rsp + 0x30]
lea r9, [rsp + 0xb0]
lea rdx, [rsp + 0x40]
mov r8d, 1
mov rcx, rbx
movdqa xmmword [rsp + 0x40], xmm0
call fcn.410d76c0
mov rsi, qword [rbx + 8]
cmp rsi, qword [rbx + 0x10]
jbe 0x41147d8e
call fcn.41211d60
lea rax, [rsi + rdi*8]
cmp rax, qword [rbx + 0x10]
ja 0x41147da2
cmp rax, qword [rbx + 8]
jae 0x41147e85
call fcn.41211d60
jmp 0x41147e85
mov rbx, qword [r12 + 0x10]
mov rcx, qword [rbx + 8]
test rcx, rcx
jne 0x41147dbf
mov rdx, r14
jmp 0x41147dca
mov rdx, qword [rbx + 0x10]
sub rdx, rcx
sar rdx, 3
test rcx, rcx
je 0x41147df4
mov rax, qword [rbx + 0x18]
sub rax, rcx
sar rax, 3
cmp rdx, rax
jae 0x41147df4
mov rax, qword [rbx + 0x10]
add rax, 8
mov qword [rax - 8], r11
mov qword [rbx + 0x10], rax
jmp 0x41147e85
mov rdi, qword [rbx + 0x10]
cmp rcx, rdi
jbe 0x41147e02
call fcn.41211d60
mov rsi, qword [rbx + 8]
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rdi
test rsi, rsi
je 0x41147e38
mov rcx, qword [rbx + 0x10]
mov rax, rcx
sub rax, rsi
sar rax, 3
je 0x41147e38
cmp rsi, rcx
jbe 0x41147e2f
call fcn.41211d60
sub rdi, rsi
sar rdi, 3
jmp 0x41147e3b
mov rdi, r14
movaps xmm0, xmmword [rsp + 0x20]
lea r9, [rsp + 0xb0]
lea rdx, [rsp + 0x50]
mov r8d, 1
mov rcx, rbx
movdqa xmmword [rsp + 0x50], xmm0
call fcn.410d76c0
mov rsi, qword [rbx + 8]
cmp rsi, qword [rbx + 0x10]
jbe 0x41147e70
call fcn.41211d60
lea rax, [rsi + rdi*8]
cmp rax, qword [rbx + 0x10]
ja 0x41147e80
cmp rax, qword [rbx + 8]
jae 0x41147e85
call fcn.41211d60
cmp rbp, qword [r13 + 0x10]
jb 0x41147e90
call fcn.41211d60
add rbp, 8
jmp 0x41147be0
mov r9, qword [r12 + 0x10]
mov r15, qword [rsp + 0x70]
mov r13, qword [rsp + 0x78]
mov rax, qword [r9 + 8]
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x88]
test rax, rax
mov rbp, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xc0]
je 0x41147edc
mov r14, qword [r9 + 0x10]
sub r14, rax
sar r14, 3
mov r8d, r14d
xor edx, edx
mov rcx, r12
add rsp, 0x98
pop r14
pop r12
jmp fcn.41145fc0