Function at 0x1400b4710
Capabilities:
Check for time delay via queryperformancecounter
Get thread local storage value

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2f8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x260], xmm7
movaps xmmword [rbp + 0x250], xmm6
mov qword [rbp + 0x248], 0xfffffffffffffffe
mov qword [rbp + 0x210], r9
mov qword [rbp + 0x238], r8
mov r12, rdx
mov byte [rbp + 0x1f8], cl
mov ebx, dword [rbp + 0x308]
mov eax, dword [0x140315270]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400b9c22
mov esi, dword [rbp + 0x2f0]
test ebx, 0x410
jne 0x1400b6ca2
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, esi
jne 0x1400b6ca2
mov eax, dword [0x140314ea0]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400b9ba9
cmp byte [0x140314e9c], 0
je 0x1400b6ca2
lea rcx, [rbp + 0x70]
int3
mov qword [rbp + 0x200], rax
mov qword [rbp + 0x1b0], 0
mov dword [rbp - 0x10], esi
cmp byte [r12], 0
je 0x1400b9845
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b4839
movsxd rcx, dword [0x1403151e0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1403151e4]
jne 0x1400b4839
cmp qword [rax + rcx], 0
jne 0x1400b9845
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, esi
jne 0x1400b4927
mov rax, qword [0x140319798]
cmp rax, 1
jbe 0x1400b9b66
mov eax, dword [0x140319790]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400b9b2e
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b9dba
movsxd rcx, dword [0x140319788]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14031978c]
jne 0x1400b9dba
mov rsi, qword [rax + rcx]
test rsi, rsi
je 0x1400b9a46
mov qword [rbp + 0x30], rsi
mov eax, dword [0x140315288]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400b99f7
mov rdi, qword [0x140315280]
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b9dc1
movsxd rcx, dword [rdi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rdi + 4]
jne 0x1400b9dc1
mov rax, qword [rax + rcx]
test rsi, rsi
je 0x1400b4927
cmp rsi, rax
jne 0x1400b9927
mov rax, qword [rbp + 0x300]
test byte [r12], 8
jne 0x1400b9dc8
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b9a95
mov rdi, qword [rbp + 0x2f8]
lea rcx, [0x1403151e0]
movsxd rdx, dword [0x1403151e0]
shl rdx, 4
mov qword [rax + rdx], rcx
mov ecx, dword [0x1403151e4]
movsxd rdx, dword [0x1403151e0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
xor eax, eax
mov r15d, 0
test ebx, 0x800
je 0x1400b4998
mov r15, qword [0x140315068]
test ebx, 0x180
cmove r15, rax
mov rax, qword [0x140315078]
mov r13, qword [rdi]
movabs rcx, 0x8000000000000001
add rcx, rax
cmp rcx, 2
jae 0x1400b49db
cmp r13, rax
je 0x1400b9df6
sar rax, 0x3f
movabs r13, 0x8000000000000000
add r13, rax
jmp 0x1400b49f7
xor ecx, ecx
cmp r13, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
sub r13, rax
cmovo r13, rdx
mov rsi, qword [rbp + 0x2e8]
test ebx, 0x410
jne 0x1400b4a0c
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r15, rsi
mov al, byte [r12]
test al, 1
jne 0x1400b4ad5
xor r14d, r14d
xor ecx, ecx
mov qword [rbp + 0x240], r12
xorps xmm0, xmm0
movaps xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], 0
test al, 0x10
jne 0x1400b4d6b
xor r12d, r12d
test cl, cl
je 0x1400b4f9c
test r14, r14
je 0x1400b5129
mov rax, qword [r14 + 0x18]
test rax, rax
je 0x1400b54fa
cmp qword [rax], 0x40
jne 0x1400b559f
mov rsi, qword [r14 + 0x10]
add rsi, 8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400b9cda
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x1400b54c2
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + 0x360]
cmp dword [r14 + 0x28], ecx
jne 0x1400b54cc
mov rcx, qword [rax + 0x20]
xor edi, edi
mov qword [r14 + 0x18], rdi
lea r8, [rbp + 0x70]
mov qword [r8], rbx
mov rdx, qword [r14 + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rbx, qword [r14 + 0x18]
mov qword [r14 + 0x18], rdi
test rbx, rbx
jne 0x1400b54d4
jmp 0x1400b54e4
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b4b09
movsxd rcx, dword [0x1403151d8]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1403151dc]
jne 0x1400b4b09
cmp qword [rax + rcx], 0
jne 0x1400b4bf2
mov eax, dword [0x14031c750]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400b9a52
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b4bf2
movsxd rcx, dword [0x14031c748]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14031c74c]
jne 0x1400b4bf2
cmp qword [rax + rcx], 0
je 0x1400b4bf2
mov rsi, qword [0x140314d08]
cmp rsi, 1
jbe 0x1400b9abd
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b4bf2
movsxd rcx, dword [rsi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rsi + 4]
jne 0x1400b4bf2
cmp qword [rax + rcx], 0
je 0x1400b4bf2
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b9c86
movsxd rcx, dword [0x1403151d0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1403151d4]
jne 0x1400b9c86
mov rsi, qword [rax + rcx]
test rsi, rsi
je 0x1400b9c86
mov rax, qword [0x140315240]
cmp dword [rsi + 0x28], eax
jne 0x1400b9c76
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b9dee
movsxd rcx, dword [0x1403151d0]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1403151d4]
jne 0x1400b9dee
mov r14, qword [rax + rcx]
mov al, byte [r12]
test al, 1
je 0x1400b4a1e
mov rdi, qword [0x140315250]
test rdi, rdi
je 0x1400b525a
movaps xmm0, xmmword [0x1402ae190]
movups xmmword [rbp + 0xc8], xmm0
movups xmmword [rbp + 0xe8], xmm0
movups xmmword [rbp + 0xf8], xmm0
movups xmmword [rbp + 0xd8], xmm0
mov qword [rbp + 0x70], r13
mov rax, qword [rbp + 0x200]
mov qword [rbp + 0x78], rax
mov qword [rbp + 0x80], 0xffffffffffffffff
mov qword [rbp + 0x88], 0
mov qword [rbp + 0x90], 0xffffffffffffffff
mov qword [rbp + 0x98], 0
lea rsi, [rbp + 0xa0]
mov rax, qword [rbp + 0x210]
mov qword [rbp + 0xa0], rax
mov rax, qword [rbp + 0x2e0]
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0xb0], r12
lea r12, [rbp + 0xb8]
mov rax, qword [rbp + 0x238]
mov qword [rbp + 0xb8], rax
mov qword [rbp + 0xc0], 0
mov byte [rbp + 0xc8], 0
mov eax, dword [rbp + 0x2f0]
mov dword [rbp + 0xf0], eax
mov dword [rbp + 0xf4], ebx
mov qword [rbp + 0xf8], r15
mov al, byte [rbp + 0x1f8]
mov byte [rbp + 0x100], al
mov rdx, qword [rbp + 0x300]
test rdx, rdx
jne 0x1400b7651
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc0]
mov qword [rsp + 0x20], rsi
and bl, 1
mov r8d, ebx
mov r9, r12
call fcn.1400b09f0
test r14, r14
setne dl
lea rsi, [rbp + 0x70]
lea r8, [rbp + 0x1b0]
mov rcx, rsi
call rdi
mov rcx, rsi
int3
mov qword [rbp + 0x48], r14
mov ecx, 0x98
int3
movzx edi, byte [rbp + 0x47]
mov r15, rdi
test dil, dil
jns 0x1400b4fac
mov r15, qword [rbp + 0x38]
test r15, r15
je 0x1400b538a
cmp dword [0x140314bc8], 2
jg 0x1400b538a
lea rax, [0x1402abd08]
mov qword [rbp + 0x70], rax
mov dword [rbp + 0x78], 2
lea rcx, [rbp + 0x80]
mov edx, 0x10
mov r8d, 1
int3
lea rcx, [0x140314ee8]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400b9c58
mov rax, qword [0x140315210]
test rax, rax
je 0x1400b518d
cmp qword [rax], 0x40
jne 0x1400b5216
mov rcx, qword [0x140314f00]
mov qword [0x140315210], 0
lea r8, [rbp + 0x220]
mov qword [r8], rax
mov rdx, qword [0x140315218]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [0x140315210]
test rax, rax
jne 0x1400b5216
mov rcx, qword [0x140314f00]
mov rax, qword [rcx]
lea r8, [0x140315218]
lea rdx, [rbp + 0x70]
call qword [rax + 8]
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x70], 0
mov rsi, qword [0x140315210]
mov qword [0x140315210], rax
test rsi, rsi
je 0x1400b51f5
mov rcx, rsi
int3
mov rcx, qword [0x140314f00]
mov rax, qword [rcx]
call qword [rax + 0x18]
test al, al
jne 0x1400b766f
mov rax, qword [0x140315210]
test rax, rax
je 0x1400b5234
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
imul rdi, rcx, 0x98
add rdi, rax
add rdi, 0x10
jne 0x1400b758d
mov bl, 1
xor edi, edi
jmp 0x1400b55c1
mov cl, 1
jmp 0x1400b4a20
test r12, r12
je 0x1400b539f
mov rcx, r12
int3
cmp byte [rbp + 0x47], 0
jns 0x1400b53ae
mov rcx, qword [rbp + 0x30]
call fcn.140112038
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b53e8
movsxd rcx, dword [0x1403151e0]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x1403151e4]
movsxd rdx, dword [0x1403151e0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rax, qword [rbp + 0x1b0]
movaps xmm6, xmmword [rbp + 0x250]
movaps xmm7, xmmword [rbp + 0x260]
add rsp, 0x2f8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [r14 + 0x18], 0
jmp 0x1400b54e4
mov qword [r14 + 0x18], 0
mov rcx, rbx
int3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r14 + 0x18]
test rax, rax
jne 0x1400b559f
mov rsi, qword [r14 + 0x10]
add rsi, 8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400b9c69
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + 0x20]
lea r8, [r14 + 0x20]
mov rax, qword [rcx]
lea rdx, [rbp + 0x70]
call qword [rax + 8]
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x70], 0
mov rbx, qword [r14 + 0x18]
mov qword [r14 + 0x18], rax
test rbx, rbx
je 0x1400b5573
mov rcx, rbx
int3
mov rdi, qword [r14 + 0x10]
mov rcx, qword [rdi + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x18]
test al, al
jne 0x1400b7529
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r14 + 0x18]
test rax, rax
je 0x1400b5234
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
imul rdi, rcx, 0x98
add rdi, rax
add rdi, 0x10
jne 0x1400b6e77
xor edi, edi
mov bl, 1
mov eax, dword [0x140315080]
test al, 8
je 0x1400b9150
mov al, byte [rbp + 0x1f8]
cmp al, 0x58
movzx eax, al
mov esi, 0x42
cmovne esi, eax
lea rcx, [0x140314ef0]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400b9c11
test bl, bl
mov qword [rbp + 0x10], rdi
je 0x1400b5609
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, eax
jmp 0x1400b560f
mov edi, dword [rdi + 0x80]
mov qword [rbp + 0x48], r14
mov dword [rbp + 0x1bc], edi
cmp sil, 0x45
mov dword [rbp + 0x1b8], esi
mov dword [rbp + 0x2c], ebx
jne 0x1400b5704
movsxd r14, edi
mov rbx, qword [0x140315018]
test rbx, rbx
je 0x1400b5dbb
mov rax, rbx
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rdx, rbx
sub rdx, rax
mov rax, rdx
movabs rcx, 0x3333333333333333
and rax, rcx
shr rdx, 2
and rdx, rcx
add rdx, rax
mov rcx, rdx
shr rcx, 4
add rcx, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rcx, rax
movabs rax, 0x101010101010101
imul rcx, rax
shr rcx, 0x38
cmp rcx, 1
ja 0x1400b61c4
lea r15, [rbx - 1]
and r15, r14
mov rax, qword [0x140315010]
mov rsi, qword [rax + r15*8]
test rsi, rsi
je 0x1400b5dc5
lea r8, [rbx - 1]
jmp 0x1400b56db
and rax, r8
cmp rax, r15
jne 0x1400b5dc5
cmp dword [rsi + 0x10], edi
je 0x1400b5e83
mov rsi, qword [rsi]
test rsi, rsi
je 0x1400b5dc5
mov rax, qword [rsi + 8]
cmp rax, r14
je 0x1400b56d2
cmp ecx, 1
jbe 0x1400b56c6
cmp rax, rbx
jb 0x1400b56c9
xor edx, edx
div rbx
mov rax, rdx
jmp 0x1400b56c9
xor eax, eax
mov qword [rbp + 0x20], rax
movabs rbx, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x1e0], rbx
movaps xmm6, xmmword [0x1402ae190]
movaps xmmword [rbp + 0x1d0], xmm6
mov r15d, dword [rbp + 0x1bc]
movsxd r14, r15d
mov rdi, qword [0x140314ff0]
test rdi, rdi
mov qword [rbp + 0x1f8], r12
je 0x1400b57d0
mov rax, rdi
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rdx, rdi
sub rdx, rax
mov rax, rdx
movabs rcx, 0x3333333333333333
and rax, rcx
shr rdx, 2
and rdx, rcx
add rdx, rax
mov rcx, rdx
shr rcx, 4
add rcx, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rcx, rax
movabs rax, 0x101010101010101
imul rcx, rax
shr rcx, 0x38
cmp rcx, 1
jbe 0x1400b6c89
mov rbx, r14
cmp rdi, r14
jbe 0x1400b61fc
mov rax, qword [0x140314fe8]
mov rsi, qword [rax + rbx*8]
test rsi, rsi
jne 0x1400b60e8
mov ecx, 0x30
int3
cmp byte [rsi + 0x2f], 0
js 0x1400b59be
add rsi, 0x18
mov rax, qword [rsi + 0x10]
mov qword [rbp + 0x1e0], rax
movups xmm0, xmmword [rsi]
movaps xmmword [rbp + 0x1d0], xmm0
movzx edi, byte [rbp + 0x1e7]
test dil, dil
mov r11, qword [rbp + 0x1d0]
mov rcx, qword [rbp + 0x1d8]
lea r10, [rbp + 0x1d0]
cmovs r10, r11
mov r12, rdi
cmovs r12, rcx
cmp r12, 0x20
mov qword [rbp + 0x210], r11
mov qword [rbp + 0x238], rdi
mov qword [rbp + 0x200], rcx
ja 0x1400b5a23
cmp r12, 0x10
ja 0x1400b5d17
cmp r12, 9
jae 0x1400b5ccd
cmp r12, 4
jae 0x1400b62d5
test r12, r12
je 0x1400b9a9f
movzx eax, byte [r10]
mov rcx, r12
shr rcx, 1
movzx ecx, byte [r10 + rcx]
movzx edx, byte [r12 + r10 - 1]
shl rcx, 8
or rcx, rax
lea rax, [r12 + rdx*4]
movabs rdx, 0x9ae16a3b2f90404f
imul rcx, rdx
movabs rbx, 0xc949d7c7509e6557
imul rbx, rax
xor rbx, rcx
mov r15, rbx
shr r15, 0x2f
xor r15, rbx
imul r15, rdx
jmp 0x1400b5b2a
mov rdi, qword [rsi + 0x18]
mov rsi, qword [rsi + 0x20]
cmp rsi, 0x16
jbe 0x1400b75a0
cmp rsi, 0xfffffffffffffff0
jae 0x1400ba10f
lea rbx, [rsi + 0x10]
and rbx, 0xfffffffffffffff0
mov rcx, rbx
int3
add rsi, 1
mov rdx, rdi
mov r8, rsi
call fcn.1401178b0
jmp 0x1400b58fc
cmp r12, 0x40
ja 0x1400b6f39
lea rax, [r11 + 0x10]
test dil, dil
lea rbx, [rbp + 0x1e0]
cmovs rbx, rax
lea rsi, [r11 + 8]
test dil, dil
lea rax, [rbp + 0x1d8]
cmovns rsi, rax
lea rax, [r11 + 0x18]
test dil, dil
lea rcx, [rbp + 0x1e8]
cmovs rcx, rax
mov r9, qword [r10 + r12 - 0x10]
lea rdx, [r9 + r12]
movabs r8, 0xc3a5c85c97cb3127
imul rdx, r8
add rdx, qword [r10]
mov rcx, qword [rcx]
mov r14, r10
lea r10, [rdx + rcx]
rol r10, 0xc
mov rdi, rdx
rol rdi, 0x1b
add rdx, qword [rsi]
mov rax, rdx
rol rax, 0x39
add rax, rdi
mov rdi, qword [rbx]
add rdx, rdi
mov rbx, rdx
rol rbx, 0x21
add rax, r10
add rbx, rax
add rdi, qword [r14 + r12 - 0x20]
add rdx, rcx
add rcx, qword [r14 + r12 - 8]
lea r10, [rcx + rdi]
mov rsi, rdi
rol rsi, 0x1b
add rdi, qword [r14 + r12 - 0x18]
mov rax, rdi
add rdi, r9
add rsi, rdx
rol rax, 0x39
add rsi, rax
rol r10, 0xc
add rsi, r10
mov r10, r14
add rcx, rdi
rol rdi, 0x21
add rsi, rdi
movabs rax, 0x9ae16a3b2f90404f
imul rsi, rax
add rcx, rbx
imul rcx, r8
add rcx, rsi
mov rdx, rcx
shr rdx, 0x2f
xor rdx, rcx
imul rdx, r8
add rdx, rbx
mov r15, rdx
shr r15, 0x2f
xor r15, rdx
imul r15, rax
mov r13, qword [0x140315040]
test r13, r13
je 0x1400b6321
mov rax, r13
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rcx, r13
sub rcx, rax
mov rax, rcx
movabs rdx, 0x3333333333333333
and rax, rdx
shr rcx, 2
and rcx, rdx
add rcx, rax
mov rbx, rcx
shr rbx, 4
add rbx, rcx
movabs rax, 0xf0f0f0f0f0f0f0f
and rbx, rax
movabs rax, 0x101010101010101
imul rbx, rax
shr rbx, 0x38
cmp rbx, 1
ja 0x1400b5cb1
lea r14, [r13 - 1]
and r14, r15
mov rax, qword [0x140315038]
mov rax, qword [rax + r14*8]
test rax, rax
je 0x1400b6321
mov rdi, qword [rax]
test rdi, rdi
je 0x1400b6321
lea r8, [r13 - 1]
jmp 0x1400b5be5
and rax, r8
cmp rax, r14
jne 0x1400b6321
mov rdi, qword [rdi]
test rdi, rdi
je 0x1400b6321
mov rax, qword [rdi + 8]
cmp rax, r15
jne 0x1400b5c50
mov dl, byte [rdi + 0x27]
movzx eax, dl
mov rcx, rax
test dl, dl
jns 0x1400b5bff
mov rcx, qword [rdi + 0x18]
cmp rcx, r12
jne 0x1400b5bd9
lea rcx, [rdi + 0x10]
mov rsi, qword [rcx]
test dl, dl
cmovs rcx, rsi
js 0x1400b5c6f
je 0x1400b7743
cmp byte [r10], sil
jne 0x1400b5bd9
dec rax
xor ecx, ecx
nop word cs:[rax + rax]
nop dword [rax]
cmp rax, rcx
je 0x1400b6318
movzx edx, byte [rdi + rcx + 0x11]
lea rsi, [rcx + 1]
cmp dl, byte [r10 + rcx + 1]
mov rcx, rsi
je 0x1400b5c30
jmp 0x1400b5bd9
cmp ebx, 1
jbe 0x1400b5bcd
cmp rax, r13
jb 0x1400b5bd0
xor edx, edx
div r13
mov rax, rdx
jmp 0x1400b5bd0
test r12, r12
je 0x1400b7743
mov rdx, r10
mov qword [rbp + 0x240], r13
mov r13, r8
mov r8, r12
mov rsi, r10
call fcn.1401177b0
mov r8, r13
mov r13, qword [rbp + 0x240]
mov r10, rsi
mov r11, qword [rbp + 0x210]
test eax, eax
jne 0x1400b5bd9
jmp 0x1400b7743
mov r14, r15
cmp r15, r13
jb 0x1400b5ba7
mov rax, r15
xor edx, edx
div r13
mov r14, rdx
jmp 0x1400b5ba7
mov rax, qword [r10 + r12 - 8]
lea rdx, [rax + r12]
mov ecx, r12d
ror rdx, cl
mov rcx, qword [r10]
xor rcx, rdx
movabs rbx, 0x9ddfea08eb382d69
imul rcx, rbx
mov rdi, rcx
shr rdi, 0x2f
xor rcx, rdx
xor rcx, rdi
imul rcx, rbx
mov r15, rcx
shr r15, 0x2f
xor r15, rcx
imul r15, rbx
xor r15, rax
jmp 0x1400b5b2a
movabs rcx, 0xb492b66fbe98f273
imul rcx, qword [r10]
lea rdx, [r11 + 8]
test dil, dil
lea rax, [rbp + 0x1d8]
cmovns rdx, rax
movabs rax, 0x9ae16a3b2f90404f
imul rax, qword [r10 + r12 - 8]
mov rdx, qword [rdx]
movabs rbx, 0xc3a5c85c97cb3127
imul rbx, qword [r10 + r12 - 0x10]
movabs rdi, 0xc949d7c7509e6557
xor rdi, rdx
rol rdi, 0x2c
lea rsi, [rcx + r12]
add rsi, rdi
sub rsi, rax
sub rcx, rdx
rol rcx, 0x15
rol rax, 0x22
add rax, rcx
add rax, rbx
xor rax, rsi
movabs rcx, 0x9ddfea08eb382d69
imul rax, rcx
mov rdx, rax
shr rdx, 0x2f
xor rax, rsi
xor rax, rdx
imul rax, rcx
mov r15, rax
shr r15, 0x2f
xor r15, rax
imul r15, rcx
jmp 0x1400b5b2a
movabs r15, 0xaaaaaaaaaaaaaaaa
mov ecx, 0x38
int3
mov rcx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x30]
test rax, rax
cmove rax, rcx
lea rdx, [rax - 1]
cmp rcx, rdx
jb 0x1400b9fb2
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rbp + 0x2f8]
mov rsi, qword [rdx]
sub rsi, qword [rcx + rax*8 - 8]
mov ebx, dword [rbp + 0x1bc]
movsxd r14, ebx
mov rdi, qword [0x140315018]
test rdi, rdi
mov qword [rbp + 0x20], rsi
je 0x1400b5f88
mov rax, rdi
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rdx, rdi
sub rdx, rax
mov rax, rdx
movabs rcx, 0x3333333333333333
and rax, rcx
shr rdx, 2
and rdx, rcx
add rdx, rax
mov rcx, rdx
shr rcx, 4
add rcx, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rcx, rax
movabs rax, 0x101010101010101
imul rcx, rax
shr rcx, 0x38
cmp rcx, 1
ja 0x1400b61e0
lea r15, [rdi - 1]
and r15, r14
mov rax, qword [0x140315010]
mov rsi, qword [rax + r15*8]
test rsi, rsi
je 0x1400b5f92
lea r8, [rdi - 1]
jmp 0x1400b5f63
and rax, r8
cmp rax, r15
jne 0x1400b5f92
cmp dword [rsi + 0x10], ebx
je 0x1400b6056
mov rsi, qword [rsi]
test rsi, rsi
je 0x1400b5f92
mov rax, qword [rsi + 8]
cmp rax, r14
je 0x1400b5f5a
cmp ecx, 1
jbe 0x1400b5f52
cmp rax, rdi
jb 0x1400b5f55
xor edx, edx
div rdi
mov rax, rdx
jmp 0x1400b5f55
movabs r15, 0xaaaaaaaaaaaaaaaa
mov ecx, 0x38
int3
mov rax, qword [rsi + 0x20]
mov rdx, qword [rsi + 0x30]
test rdx, rdx
je 0x1400b60de
lea rcx, [rdx - 1]
mov qword [rsi + 0x30], rcx
cmp rax, rdx
jb 0x1400ba11b
cmp rax, rcx
jb 0x1400b9fb5
cmp rax, 5
jb 0x1400b570a
lea rbx, [rax - 1]
mov rdi, qword [rsi + 0x28]
xor edx, edx
cmp rcx, rdi
cmovb rdx, rax
sub rdx, rdi
add rdx, rcx
mov rax, rbx
sub rax, rdx
cmp rax, rdx
jb 0x1400b570a
mov rax, rdx
shr rax, 2
add rax, rdx
cmp rax, 3
mov edx, 3
cmova rdx, rax
cmp rdx, rbx
jae 0x1400b570a
add rsi, 0x18
mov rcx, rsi
int3
lea rcx, [rax - 1]
mov qword [rsi + 0x30], rcx
jmp 0x1400b6074
lea r8, [rdi - 1]
mov rsi, qword [rsi]
test rsi, rsi
je 0x1400b57d0
mov rax, qword [rsi + 8]
cmp rax, r14
je 0x1400b611c
cmp ecx, 1
jbe 0x1400b6127
cmp rax, rdi
jb 0x1400b6113
xor edx, edx
div rdi
mov rax, rdx
cmp rax, rbx
jne 0x1400b57d0
cmp dword [rsi + 0x10], r15d
jne 0x1400b60ec
jmp 0x1400b58d9
and rax, r8
jmp 0x1400b6113
mov r15, r14
cmp rbx, r14
ja 0x1400b56ac
mov rax, r14
xor edx, edx
div rbx
mov r15, rdx
jmp 0x1400b56ac
mov r15, r14
cmp rdi, r14
ja 0x1400b5f3c
mov rax, r14
xor edx, edx
div rdi
mov r15, rdx
jmp 0x1400b5f3c
mov rax, r14
xor edx, edx
div rdi
mov rbx, rdx
jmp 0x1400b57bc
mov eax, dword [r10]
mov ecx, dword [r10 + r12 - 4]
shl eax, 3
add rax, r12
xor rax, rcx
movabs rdx, 0x9ddfea08eb382d69
imul rax, rdx
mov rbx, rax
shr rbx, 0x2f
xor rax, rcx
xor rax, rbx
imul rax, rdx
mov r15, rax
shr r15, 0x2f
xor r15, rax
imul r15, rdx
jmp 0x1400b5b2a
test rdi, rdi
jne 0x1400b7743
mov r15, qword [0x140315050]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, r15
mul rcx
mov qword [rbp + 0x1f0], rdx
cmp r12, 0x20
ja 0x1400b63c9
cmp r12, 0x10
mov rax, qword [rbp + 0x238]
ja 0x1400b67d2
cmp r12, 9
jae 0x1400b6788
cmp r12, 4
jae 0x1400b6c46
test r12, r12
je 0x1400b9b1f
movzx eax, byte [r10]
mov rcx, r12
shr rcx, 1
movzx ecx, byte [r10 + rcx]
movzx edx, byte [r12 + r10 - 1]
shl rcx, 8
or rcx, rax
lea rax, [r12 + rdx*4]
movabs rdx, 0x9ae16a3b2f90404f
imul rcx, rdx
movabs rbx, 0xc949d7c7509e6557
imul rbx, rax
xor rbx, rcx
mov rsi, rbx
shr rsi, 0x2f
xor rsi, rbx
imul rsi, rdx
jmp 0x1400b64d4
cmp r12, 0x40
mov rcx, qword [rbp + 0x238]
ja 0x1400b7226
lea rax, [r11 + 0x10]
test cl, cl
lea rbx, [rbp + 0x1e0]
cmovs rbx, rax
lea rsi, [r11 + 8]
test cl, cl
lea rax, [rbp + 0x1d8]
cmovns rsi, rax
lea rax, [r11 + 0x18]
test cl, cl
lea rcx, [rbp + 0x1e8]
cmovs rcx, rax
mov r9, qword [r10 + r12 - 0x10]
lea rdx, [r9 + r12]
movabs r8, 0xc3a5c85c97cb3127
imul rdx, r8
add rdx, qword [r10]
mov rcx, qword [rcx]
mov r11, r10
lea r10, [rdx + rcx]
rol r10, 0xc
mov rdi, rdx
rol rdi, 0x1b
add rdx, qword [rsi]
mov rax, rdx
rol rax, 0x39
add rax, rdi
mov rdi, qword [rbx]
add rdx, rdi
mov rbx, rdx
rol rbx, 0x21
add rax, r10
add rbx, rax
add rdi, qword [r11 + r12 - 0x20]
add rdx, rcx
add rcx, qword [r11 + r12 - 8]
lea r10, [rcx + rdi]
mov rsi, rdi
rol rsi, 0x1b
add rdi, qword [r11 + r12 - 0x18]
mov rax, rdi
add rdi, r9
add rsi, rdx
rol rax, 0x39
add rsi, rax
rol r10, 0xc
add rsi, r10
mov r10, r11
add rcx, rdi
rol rdi, 0x21
add rsi, rdi
movabs rax, 0x9ae16a3b2f90404f
imul rsi, rax
add rcx, rbx
imul rcx, r8
add rcx, rsi
mov rdx, rcx
shr rdx, 0x2f
xor rdx, rcx
imul rdx, r8
add rdx, rbx
mov rsi, rdx
shr rsi, 0x2f
xor rsi, rdx
imul rsi, rax
test r13, r13
mov qword [rbp + 0x240], rsi
je 0x1400b675d
mov qword [rbp + 0x218], r15
mov rax, r13
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rcx, r13
sub rcx, rax
mov rax, rcx
movabs rdx, 0x3333333333333333
and rax, rdx
shr rcx, 2
and rcx, rdx
add rcx, rax
mov r15, rcx
shr r15, 4
add r15, rcx
movabs rax, 0xf0f0f0f0f0f0f0f
and r15, rax
movabs rax, 0x101010101010101
imul r15, rax
shr r15, 0x38
cmp r15, 1
ja 0x1400b676c
lea r14, [r13 - 1]
and r14, rsi
mov rax, qword [0x140315038]
mov rax, qword [rax + r14*8]
test rax, rax
je 0x1400b6640
mov rdi, qword [rax]
test rdi, rdi
je 0x1400b6640
lea r8, [r13 - 1]
jmp 0x1400b658c
mov rdi, qword [rdi]
test rdi, rdi
je 0x1400b6640
mov rax, qword [rdi + 8]
cmp rax, rsi
je 0x1400b65a7
cmp r15d, 1
ja 0x1400b65fa
and rax, r8
cmp rax, r14
jne 0x1400b6640
mov dl, byte [rdi + 0x27]
movzx eax, dl
mov rcx, rax
test dl, dl
jns 0x1400b65b8
mov rcx, qword [rdi + 0x18]
cmp rcx, r12
jne 0x1400b6580
lea rcx, [rdi + 0x10]
mov rbx, qword [rcx]
test dl, dl
cmovs rcx, rbx
js 0x1400b6609
je 0x1400b6634
cmp byte [r10], bl
jne 0x1400b6580
dec rax
xor ecx, ecx
nop dword [rax + rax]
cmp rax, rcx
je 0x1400b6634
movzx edx, byte [rdi + rcx + 0x11]
lea rbx, [rcx + 1]
cmp dl, byte [r10 + rcx + 1]
mov rcx, rbx
je 0x1400b65e0
jmp 0x1400b6580
cmp rax, r13
jb 0x1400b659e
xor edx, edx
div r13
mov rax, rdx
jmp 0x1400b659e
test r12, r12
je 0x1400b6634
mov rdx, r10
mov rsi, r8
mov r8, r12
mov rbx, r10
call fcn.1401177b0
mov r8, rsi
mov rsi, qword [rbp + 0x240]
mov r10, rbx
test eax, eax
jne 0x1400b6580
mov r15, qword [rbp + 0x218]
jmp 0x1400b7728
mov r15, qword [rbp + 0x218]
mov ecx, 0x30
int3
movabs r14, 0xaaaaaaaaaaaaaaaa
jmp 0x1400b6647
mov r14, rsi
cmp rsi, r13
jb 0x1400b6558
mov rax, rsi
xor edx, edx
div r13
mov r14, rdx
jmp 0x1400b6558
mov rax, qword [r10 + r12 - 8]
lea rdx, [rax + r12]
mov ecx, r12d
ror rdx, cl
mov rcx, qword [r10]
xor rcx, rdx
movabs rbx, 0x9ddfea08eb382d69
imul rcx, rbx
mov rdi, rcx
shr rdi, 0x2f
xor rcx, rdx
xor rcx, rdi
imul rcx, rbx
mov rsi, rcx
shr rsi, 0x2f
xor rsi, rcx
imul rsi, rbx
xor rsi, rax
jmp 0x1400b64d4
movabs rcx, 0xb492b66fbe98f273
imul rcx, qword [r10]
lea rdx, [r11 + 8]
test al, al
lea rax, [rbp + 0x1d8]
cmovns rdx, rax
movabs rax, 0x9ae16a3b2f90404f
imul rax, qword [r10 + r12 - 8]
mov rdx, qword [rdx]
movabs rbx, 0xc3a5c85c97cb3127
imul rbx, qword [r10 + r12 - 0x10]
movabs rdi, 0xc949d7c7509e6557
xor rdi, rdx
rol rdi, 0x2c
lea rsi, [rcx + r12]
add rsi, rdi
sub rsi, rax
sub rcx, rdx
rol rcx, 0x15
rol rax, 0x22
add rax, rcx
add rax, rbx
xor rax, rsi
movabs rcx, 0x9ddfea08eb382d69
imul rax, rcx
mov rdx, rax
shr rdx, 0x2f
xor rax, rsi
xor rax, rdx
imul rax, rcx
mov rsi, rax
shr rsi, 0x2f
xor rsi, rax
imul rsi, rcx
jmp 0x1400b64d4
mov eax, dword [r10]
mov ecx, dword [r10 + r12 - 4]
shl eax, 3
add rax, r12
xor rax, rcx
movabs rdx, 0x9ddfea08eb382d69
imul rax, rdx
mov rbx, rax
shr rbx, 0x2f
xor rax, rcx
xor rax, rbx
imul rax, rdx
mov rsi, rax
shr rsi, 0x2f
xor rsi, rax
imul rsi, rdx
jmp 0x1400b64d4
lea rbx, [rdi - 1]
and rbx, r14
jmp 0x1400b57bc
xor eax, eax
jmp 0x1400b47e5
movzx eax, word [r14 + 0x20]
mov rdx, qword [r14 + 0x18]
mov edx, dword [rdx + 0x2610]
mov dword [rbp + 0x1b0], edx
shl ecx, 0x1a
or ecx, eax
mov dword [rbp + 0x1b4], ecx
test r12, r12
jne 0x1400b7214
mov eax, dword [rbp + 0x308]
mov dword [rsp + 0x60], eax
mov rax, qword [rbp + 0x300]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r15
mov rax, qword [rbp + 0x2e0]
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0x210]
mov qword [rsp + 0x40], rax
mov rax, qword [rbp + 0x238]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp + 0x240]
mov qword [rsp + 0x30], rax
mov al, byte [rbp + 0x1f8]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rdi
mov edx, dword [rbp + 0x2f0]
mov r8, r13
mov r9, qword [rbp + 0x200]
int3
mov rax, qword [r10 + r12 - 0x28]
mov rsi, qword [r10 + r12 - 0x10]
mov r9, qword [r10 + r12 - 0x38]
mov rcx, qword [r10 + r12 - 0x30]
lea r8, [r9 + rsi]
mov rbx, qword [r10 + r12 - 0x18]
lea rdi, [rcx + r12]
xor rdi, rbx
movabs r11, 0x9ddfea08eb382d69
imul rdi, r11
mov rdx, rdi
shr rdx, 0x2f
xor rdi, rbx
xor rdi, rdx
imul rdi, r11
mov r15, r10
mov r10, rdi
shr r10, 0x2f
xor r10, rdi
imul r10, r11
mov r11, qword [r15 + r12 - 0x40]
add r11, r12
lea rdi, [r11 + rax]
add rdi, r10
rol rdi, 0x2b
add rcx, r9
add rcx, r11
mov rdx, rcx
rol rdx, 0x14
add rdx, r11
add rdx, rdi
add rcx, rax
mov r9, qword [r15 + r12 - 0x20]
add r9, r8
mov r11, qword [r15 + r12 - 8]
movabs r13, 0xb492b66fbe98f273
add r9, r13
lea r14, [r11 + rax]
add r14, r9
rol r14, 0x2b
add rbx, rsi
add rbx, r9
mov rdi, rbx
rol rdi, 0x14
add rdi, r9
add rdi, r14
add rbx, r11
imul rax, r13
mov qword [rbp + 0x208], r15
mov rsi, qword [r15]
mov qword [rbp + 0x240], rsi
add rax, rsi
lea rsi, [r12 - 1]
and rsi, 0xffffffffffffffc0
mov qword [rbp + 0x1c8], rsi
mov r14d, 0x40
mov r9, qword [rbp + 0x208]
mov rsi, r10
add rax, rcx
add rax, r8
mov r15, qword [r9 + r14 - 0x38]
add r8, rdx
mov r10, qword [r9 + r14 - 0x10]
mov qword [rbp + 0x1f0], r10
add r8, r10
rol r8, 0x16
mov r10, r8
imul r10, r13
mov r11, qword [r9 + r14 - 0x18]
add rcx, r11
mov r8, rcx
add r8, r10
mov r10, r13
mov r13, qword [r9 + r14 - 0x30]
add rax, r15
rol rax, 0x1b
imul rax, r10
mov rcx, rax
xor rcx, rdi
add rsi, rbx
rol rsi, 0x1f
imul rdx, r10
add rdx, qword [rbp + 0x240]
add rbx, rdx
add r15, rdx
add r15, r13
mov rax, r15
rol rax, 0x14
add rdx, rax
mov r10, r14
mov r14, qword [r9 + r14 - 0x28]
add rbx, r14
mov qword [rbp + 0x218], rcx
add rbx, rcx
rol rbx, 0x2b
add rdx, rbx
mov rcx, r15
mov rax, rsi
movabs r15, 0xb492b66fbe98f273
imul rax, r15
add rcx, r14
add r13, r8
add rdi, rax
mov rsi, qword [r9 + r10 - 8]
add rdi, qword [r9 + r10 - 0x20]
add r13, rsi
add r13, rdi
rol r13, 0x2b
add r11, qword [rbp + 0x1f0]
add r11, rdi
mov rbx, r11
rol rbx, 0x14
add rdi, rbx
add rdi, r13
mov rbx, r11
add rbx, rsi
mov rsi, qword [rbp + 0x1c8]
cmp rsi, r10
mov r11, r15
je 0x1400b713e
mov r14, r10
mov rsi, qword [rbp + 0x208]
mov rsi, qword [rsi + r10]
mov qword [rbp + 0x240], rsi
add r14, 0x40
mov r13, r11
mov r10, qword [rbp + 0x218]
jmp 0x1400b7026
xor rdx, rdi
movabs r9, 0x9ddfea08eb382d69
imul rdx, r9
mov rsi, rdx
shr rsi, 0x2f
xor rdx, rdi
xor rdx, rsi
imul rdx, r9
mov rdi, rdx
shr rdi, 0x2f
xor rdi, rdx
imul rdi, r9
add rdi, rax
xor rcx, rbx
imul rcx, r9
mov rax, rcx
shr rax, 0x2f
xor rcx, rbx
xor rcx, rax
imul rcx, r9
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, r9
mov rcx, r8
shr rcx, 0x2f
xor rcx, r8
imul rcx, r11
add rcx, qword [rbp + 0x218]
add rcx, rax
xor rcx, rdi
imul rcx, r9
mov rax, rcx
shr rax, 0x2f
xor rcx, rdi
xor rcx, rax
imul rcx, r9
mov r15, rcx
shr r15, 0x2f
xor r15, rcx
imul r15, r9
mov r11, qword [rbp + 0x210]
mov r10, qword [rbp + 0x208]
jmp 0x1400b5b2a
mov rcx, rdi
mov rdx, r12
int3
mov qword [rbp + 0x218], r15
mov rax, qword [r10 + r12 - 0x28]
mov rsi, qword [r10 + r12 - 0x10]
mov r9, qword [r10 + r12 - 0x38]
mov rcx, qword [r10 + r12 - 0x30]
lea r8, [r9 + rsi]
mov rbx, qword [r10 + r12 - 0x18]
lea rdi, [rcx + r12]
xor rdi, rbx
movabs r11, 0x9ddfea08eb382d69
imul rdi, r11
mov rdx, rdi
shr rdx, 0x2f
xor rdi, rbx
xor rdi, rdx
imul rdi, r11
mov r15, r10
mov r10, rdi
shr r10, 0x2f
xor r10, rdi
imul r10, r11
mov r11, qword [r15 + r12 - 0x40]
add r11, r12
lea rdi, [r11 + rax]
add rdi, r10
rol rdi, 0x2b
add rcx, r9
add rcx, r11
mov rdx, rcx
rol rdx, 0x14
add rdx, r11
add rdx, rdi
add rcx, rax
mov r9, qword [r15 + r12 - 0x20]
add r9, r8
mov r11, qword [r15 + r12 - 8]
movabs rdi, 0xb492b66fbe98f273
add r9, rdi
lea r14, [r11 + rax]
add r14, r9
rol r14, 0x2b
add rbx, rsi
mov rsi, rdi
add rbx, r9
mov rdi, rbx
rol rdi, 0x14
add rdi, r9
add rdi, r14
add rbx, r11
mov r14, rsi
imul rax, rsi
mov qword [rbp + 0x208], r15
mov rsi, qword [r15]
mov qword [rbp + 0x1c0], rsi
add rax, rsi
lea rsi, [r12 - 1]
and rsi, 0xffffffffffffffc0
mov qword [rbp + 0x18], rsi
mov r9d, 0x40
mov qword [rbp + 0x240], r9
mov qword [rbp + 0x1c8], r10
add rax, rcx
add rax, r8
mov r9, qword [rbp + 0x208]
mov rsi, qword [rbp + 0x240]
mov r11, qword [r9 + rsi - 0x38]
add r8, rdx
mov rsi, qword [rbp + 0x240]
mov rsi, qword [r9 + rsi - 0x10]
mov qword [rbp + 0x50], rsi
add r8, rsi
rol r8, 0x16
mov r10, r8
imul r10, r14
mov rsi, qword [rbp + 0x240]
mov rsi, qword [r9 + rsi - 0x18]
add rcx, rsi
mov r8, rcx
add r8, r10
mov rcx, qword [rbp + 0x240]
mov r15, qword [r9 + rcx - 0x30]
add rax, r11
rol rax, 0x1b
imul rax, r14
mov r10, rax
xor r10, rdi
mov rax, qword [rbp + 0x1c8]
add rax, rbx
rol rax, 0x1f
mov qword [rbp + 0x1c8], rax
imul rdx, r14
add rdx, qword [rbp + 0x1c0]
add rbx, rdx
add r11, rdx
add r11, r15
mov rax, r11
rol rax, 0x14
add rdx, rax
mov rax, qword [rbp + 0x240]
mov r14, qword [r9 + rax - 0x28]
add rbx, r14
add rbx, r10
rol rbx, 0x2b
add rdx, rbx
mov rcx, r11
mov rax, qword [rbp + 0x1c8]
movabs rbx, 0xb492b66fbe98f273
imul rax, rbx
add rcx, r14
add r15, r8
add rdi, rax
mov rbx, qword [rbp + 0x240]
mov r11, qword [r9 + rbx - 8]
mov rbx, qword [rbp + 0x240]
add rdi, qword [r9 + rbx - 0x20]
add r15, r11
add r15, rdi
rol r15, 0x2b
add rsi, qword [rbp + 0x50]
add rsi, rdi
mov rbx, rsi
rol rbx, 0x14
add rdi, rbx
add rdi, r15
mov rbx, rsi
add rbx, r11
mov r9, qword [rbp + 0x240]
mov rsi, qword [rbp + 0x18]
cmp rsi, r9
je 0x1400b746e
mov rsi, qword [rbp + 0x208]
mov rsi, qword [rsi + r9]
mov qword [rbp + 0x1c0], rsi
add r9, 0x40
movabs r14, 0xb492b66fbe98f273
jmp 0x1400b7316
xor rdx, rdi
movabs r9, 0x9ddfea08eb382d69
imul rdx, r9
mov rsi, rdx
shr rsi, 0x2f
xor rdx, rdi
xor rdx, rsi
imul rdx, r9
mov rdi, rdx
shr rdi, 0x2f
xor rdi, rdx
imul rdi, r9
add rdi, rax
xor rcx, rbx
imul rcx, r9
mov rax, rcx
shr rax, 0x2f
xor rcx, rbx
xor rcx, rax
imul rcx, r9
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, r9
mov rcx, r8
shr rcx, 0x2f
xor rcx, r8
movabs rdx, 0xb492b66fbe98f273
imul rcx, rdx
add rcx, r10
add rcx, rax
xor rcx, rdi
imul rcx, r9
mov rax, rcx
shr rax, 0x2f
xor rcx, rdi
xor rcx, rax
imul rcx, r9
mov rsi, rcx
shr rsi, 0x2f
xor rsi, rcx
imul rsi, r9
mov r15, qword [rbp + 0x218]
mov r10, qword [rbp + 0x208]
jmp 0x1400b64d4
cmp qword [rdi + 0x180], 0
jne 0x1400b9818
mov rax, qword [0x14030f358]
lea rcx, [0x14007fec0]
lea rbx, [rbp + 0x70]
cmp rax, rcx
jne 0x1400b9d36
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x1400b9799
imul rax, rax, 0xf4240
cqo
idiv qword [0x140314ed0]
jmp 0x1400b97bb
movzx eax, word [0x140315218]
mov rdx, qword [0x140315210]
jmp 0x1400b6e80
lea rcx, [rbp + 0x1d0]
mov byte [rcx + 0x17], sil
jmp 0x1400b5a0f
mov r15, r14
lea r14, [rbp + 0xc8]
mov rcx, r14
call fcn.1400b0dd0
mov ebx, dword [r14 + 0x2c]
mov r14, r15
jmp 0x1400b4d27
cmp qword [0x140315060], 0
jne 0x1400b98cb
mov rax, qword [0x14030f358]
lea rcx, [0x14007fec0]
lea rsi, [rbp + 0x70]
cmp rax, rcx
jne 0x1400b9d7f
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x1400b984c
imul rax, rax, 0xf4240
cqo
idiv qword [0x140314ed0]
jmp 0x1400b986e
mov rax, qword [rbp + 0x1f0]
shr rax, 2
add eax, eax
lea eax, [rax + rax*2]
sub r15d, eax
add r15d, 1
mov dword [rdi + 0x28], r15d
lea rsi, [rbp + 0x70]
xor eax, eax
add rsi, 8
movups xmmword [rsi], xmm6
movups xmmword [rbp + 0xd8], xmm6
movups xmmword [rbp + 0x108], xmm6
movups xmmword [rbp + 0xf8], xmm6
movups xmmword [rbp + 0x168], xmm6
movups xmmword [rbp + 0x158], xmm6
movups xmmword [rbp + 0x148], xmm6
movups xmmword [rbp + 0x138], xmm6
movups xmmword [rbp + 0x128], xmm6
movups xmmword [rbp + 0x118], xmm6
movups xmmword [rbp + 0xe8], xmm6
movups xmmword [rbp + 0xc8], xmm6
movups xmmword [rbp + 0xb8], xmm6
movups xmmword [rbp + 0xa8], xmm6
movups xmmword [rbp + 0x98], xmm6
movups xmmword [rbp + 0x88], xmm6
lea rcx, [0x1402b04f0]
mov qword [rbp + 0x70], rcx
lea rcx, [0x1402aaae0]
mov qword [rbp + 0xe0], rcx
mov qword [rbp + 0x108], rsi
sete al
mov dword [rbp + 0x100], eax
mov dword [rbp + 0x104], 0
mov dword [rbp + 0xe8], 0x1002
mov qword [rbp + 0xf8], 0
mov qword [rbp + 0xf0], 6
xorps xmm7, xmm7
movups xmmword [rbp + 0x148], xmm7
movups xmmword [rbp + 0x138], xmm7
movups xmmword [rbp + 0x128], xmm7
movups xmmword [rbp + 0x118], xmm7
movups xmmword [rbp + 0x158], xmm7
mov eax, dword [0x140313db8]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400b98dc
mov rax, qword [0x140313db0]
mov rax, qword [rax]
mov qword [rbp + 0x110], rax
lock add dword [rax + 8], 1
mov qword [rbp + 0x168], 0
mov dword [rbp + 0x170], 0xffffffff
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
lea rcx, [0x1402aaa68]
mov qword [rbp + rax + 0x70], rcx
mov rcx, rsi
int3
test r14, r14
jne 0x1400b4f9c
lea rcx, [0x140314ee8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400b4f9c
mov rcx, qword [0x140314ed0]
cqo
idiv rcx
imul rbx, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbx
mov qword [rbp + 0x70], rax
mov rcx, qword [rdi + 0x198]
movabs rdx, 0x8000000000000001
add rdx, rcx
cmp rdx, 2
jae 0x1400b97f5
cmp rax, rcx
je 0x1400ba559
sar rcx, 0x3f
movabs rax, 0x8000000000000000
add rax, rcx
jmp 0x1400b9811
xor edx, edx
cmp rax, rcx
setns dl
movabs rbx, 0x7fffffffffffffff
add rbx, rdx
sub rax, rcx
cmovo rax, rbx
mov qword [rdi + 0x180], rax
mov rcx, rdi
call fcn.1400bc6d0
jmp 0x1400b5589
xor eax, eax
jmp 0x1400b53ef
mov rcx, qword [0x140314ed0]
cqo
idiv rcx
imul rbx, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbx
mov qword [rbp + 0x70], rax
mov rcx, qword [0x140315078]
movabs rdx, 0x8000000000000001
add rdx, rcx
cmp rdx, 2
jae 0x1400b98a8
cmp rax, rcx
je 0x1400ba682
sar rcx, 0x3f
movabs rax, 0x8000000000000000
add rax, rcx
jmp 0x1400b98c4
xor edx, edx
cmp rax, rcx
setns dl
movabs rbx, 0x7fffffffffffffff
add rbx, rdx
sub rax, rcx
cmovo rax, rbx
mov qword [0x140315060], rax
lea rcx, [0x140314ee0]
call fcn.1400bc6d0
jmp 0x1400b520a
lea rcx, [0x140313db8]
int3
cmp byte [rsi], 0
je 0x1400b4927
mov rdi, qword [0x140315280]
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400b9d91
movsxd rcx, dword [rdi]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [rdi + 4]
movsxd rdx, dword [rdi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
lea rcx, [0x140314ef0]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400b9ce7
lea rcx, [0x140314fe8]
lea rdi, [rbp + 0x70]
lea r14, [rbp - 0x10]
mov rdx, rdi
mov r8, r14
call fcn.14016d1e0
mov rax, qword [rdi]
test rax, rax
jne 0x1400ba685
lea rax, [rbp + 0x58]
mov qword [rax], r14
lea rcx, [rbp + 0x1a8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea rcx, [0x140314fe8]
lea r9, [0x1402bec43]
lea rdi, [rbp + 0x70]
mov rdx, rdi
mov r8, r14
int3
lea rcx, [0x140315288]
int3
lea rsi, [0x1402d1370]
jmp 0x1400b48bb
lea rcx, [0x14031c750]
int3
call fcn.1400086f0
jmp 0x1400b494f
movabs r15, 0x9ae16a3b2f90404f
jmp 0x1400b5b2a
lea rcx, [0x140314d08]
int3
movabs rsi, 0x9ae16a3b2f90404f
jmp 0x1400b64d4
lea rcx, [0x140319790]
int3
lea rcx, [0x140319798]
int3
lea rcx, [0x140314ea0]
int3
lea rcx, [0x140314ef0]
int3
lea rcx, [0x140315270]
int3
lea rcx, [0x140314ee8]
int3
mov rcx, rsi
int3
mov rcx, rsi
int3
mov ecx, 0x30
int3
mov rcx, rsi
int3
lea rcx, [0x140314ef0]
int3
mov rcx, rbx
call rax
mov rax, qword [rbx]
jmp 0x1400b97bf
mov rcx, rsi
call rax
mov rax, qword [rsi]
jmp 0x1400b9872
call fcn.1400086f0
jmp 0x1400b994d
xor esi, esi
jmp 0x1400b48b2
xor eax, eax
jmp 0x1400b4919
mov qword [rsp + 0x20], rax
mov cl, byte [rbp + 0x1f8]
mov rdx, r12
mov r8, qword [rbp + 0x238]
mov r9, qword [rbp + 0x2e0]
call fcn.1401d1c60
jmp 0x1400b4939
xor r14d, r14d
jmp 0x1400b4c27
int3
int3
int3
lea rcx, [rbp + 0x1d0]
int3
int3
int3
int3
mov r14d, ebx
movabs rcx, 0xaaaaaaaaaaaaaaaa
lea rbx, [rbp + 0x70]
mov qword [rbx + 0x10], rcx
movaps xmm0, xmmword [0x1402ae190]
movaps xmmword [rbx], xmm0
lea rcx, [0x1402b05e1]
lea r8, [rbp + 0x220]
mov qword [r8], rcx
mov qword [r8 + 8], 1
lea r15, [rax + 0x18]
movzx ecx, byte [rax + 0x2f]
test cl, cl
mov rdi, qword [rax + 0x18]
cmovns rdi, r15
lea rdx, [rbp + 0x1d0]
mov qword [rdx], rdi
cmovs rcx, qword [rax + 0x20]
mov qword [rdx + 8], rcx
mov dword [rsp + 0x20], 1
mov rcx, rbx
xor r9d, r9d
call fcn.140009470
mov rdx, qword [rbx]
mov rbx, qword [rbx + 8]
lea r13, [rbp + 0x58]
lea r9, [rbp + 0x30]
mov rcx, r13
mov r8, rbx
int3