Function at 0x140037330
Capabilities:
Check for time delay via queryperformancecounter
Encode data using base64
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 [0x1401384e8]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003c82d
mov esi, dword [rbp + 0x2f0]
test ebx, 0x410
jne 0x1400398b2
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, esi
jne 0x1400398b2
mov eax, dword [0x140137750]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003c7b4
cmp byte [0x14013774c], 0
je 0x1400398b2
lea rcx, [rbp + 0x70]
call fcn.14003d5f0
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x200], rax
mov qword [rbp + 0x1b0], 0
mov dword [rbp - 0x10], esi
cmp byte [r12], 0
je 0x14003c450
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140037459
movsxd rcx, dword [0x140138458]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14013845c]
jne 0x140037459
cmp qword [rax + rcx], 0
jne 0x14003c450
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, esi
jne 0x140037547
mov rax, qword [0x14013bb88]
cmp rax, 1
jbe 0x14003c771
mov eax, dword [0x14013bb80]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003c739
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c9c5
movsxd rcx, dword [0x14013bb78]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14013bb7c]
jne 0x14003c9c5
mov rsi, qword [rax + rcx]
test rsi, rsi
je 0x14003c651
mov qword [rbp + 0x30], rsi
mov eax, dword [0x140138500]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003c602
mov rdi, qword [0x1401384f8]
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c9cc
movsxd rcx, dword [rdi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rdi + 4]
jne 0x14003c9cc
mov rax, qword [rax + rcx]
test rsi, rsi
je 0x140037547
cmp rsi, rax
jne 0x14003c532
mov rax, qword [rbp + 0x300]
test byte [r12], 8
jne 0x14003c9d3
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c6a0
mov rdi, qword [rbp + 0x2f8]
lea rcx, [0x140138458]
movsxd rdx, dword [0x140138458]
shl rdx, 4
mov qword [rax + rdx], rcx
mov ecx, dword [0x14013845c]
movsxd rdx, dword [0x140138458]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
xor eax, eax
mov r15d, 0
test ebx, 0x800
je 0x1400375b8
mov r15, qword [0x1401382e0]
test ebx, 0x180
cmove r15, rax
mov rax, qword [0x1401382f0]
mov r13, qword [rdi]
movabs rcx, 0x8000000000000001
add rcx, rax
cmp rcx, 2
jae 0x1400375fb
cmp r13, rax
je 0x14003ca73
sar rax, 0x3f
movabs r13, 0x8000000000000000
add r13, rax
jmp 0x140037617
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 0x14003762c
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r15, rsi
mov al, byte [r12]
test al, 1
jne 0x1400376f5
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 0x14003798b
xor r12d, r12d
test cl, cl
je 0x140037bbc
test r14, r14
je 0x140037d3c
mov rax, qword [r14 + 0x18]
test rax, rax
je 0x14003810d
cmp qword [rax], 0x40
jne 0x1400381b2
mov rsi, qword [r14 + 0x10]
add rsi, 8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14003c8e5
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x1400380d5
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + 0x360]
cmp dword [r14 + 0x28], ecx
jne 0x1400380df
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 0x1400380e7
jmp 0x1400380f7
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140037729
movsxd rcx, dword [0x140138450]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x140138454]
jne 0x140037729
cmp qword [rax + rcx], 0
jne 0x140037812
mov eax, dword [0x14013d410]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003c65d
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140037812
movsxd rcx, dword [0x14013d408]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14013d40c]
jne 0x140037812
cmp qword [rax + rcx], 0
je 0x140037812
mov rsi, qword [0x14013bca8]
cmp rsi, 1
jbe 0x14003c6c8
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140037812
movsxd rcx, dword [rsi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rsi + 4]
jne 0x140037812
cmp qword [rax + rcx], 0
je 0x140037812
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c891
movsxd rcx, dword [0x140138448]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14013844c]
jne 0x14003c891
mov rsi, qword [rax + rcx]
test rsi, rsi
je 0x14003c891
mov rax, qword [0x1401384b8]
cmp dword [rsi + 0x28], eax
jne 0x14003c881
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c9f9
movsxd rcx, dword [0x140138448]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x14013844c]
jne 0x14003c9f9
mov r14, qword [rax + rcx]
mov al, byte [r12]
test al, 1
je 0x14003763e
mov rdi, qword [0x1401384c8]
test rdi, rdi
je 0x140037e6d
movaps xmm0, xmmword [0x1401146a0]
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 0x14003a261
lea rcx, [rbp + 0xc8]
lea rdx, [rbp + 0xc0]
mov qword [rsp + 0x20], rsi
and bl, 1
mov r8d, ebx
mov r9, r12
call fcn.140032040
test r14, r14
setne dl
lea rsi, [rbp + 0x70]
lea r8, [rbp + 0x1b0]
mov rcx, rsi
call rdi
mov rcx, rsi
call fcn.14003d440
jmp 0x140037fc1
mov qword [rbp + 0x48], r14
mov ecx, 0x98
call fcn.140076ec8
mov r12, rax
mov qword [rax], r13
mov rax, qword [rbp + 0x200]
mov qword [r12 + 8], rax
mov qword [r12 + 0x10], 0xffffffffffffffff
mov qword [r12 + 0x18], 0
mov qword [r12 + 0x20], 0xffffffffffffffff
mov qword [r12 + 0x28], 0
lea rdi, [r12 + 0x30]
mov rax, qword [rbp + 0x210]
mov qword [r12 + 0x30], rax
mov rax, qword [rbp + 0x2e0]
mov qword [r12 + 0x38], rax
mov rbx, qword [rbp + 0x240]
mov qword [r12 + 0x40], rbx
lea rsi, [r12 + 0x48]
mov rax, qword [rbp + 0x238]
mov qword [r12 + 0x48], rax
mov qword [r12 + 0x50], 0
mov byte [r12 + 0x58], 0
mov eax, dword [rbp + 0x2f0]
mov dword [r12 + 0x80], eax
mov r8d, dword [rbp + 0x308]
mov dword [r12 + 0x84], r8d
mov qword [r12 + 0x88], r15
mov al, byte [rbp + 0x1f8]
mov byte [r12 + 0x90], al
cmp qword [rbp + 0x300], 0
jne 0x140039a69
lea rcx, [r12 + 0x58]
mov rdx, r12
add rdx, 0x50
mov qword [rsp + 0x20], rdi
and r8b, 1
mov r9, rsi
call fcn.140032040
mov ebx, dword [rbx + 4]
test ebx, ebx
je 0x140037ba9
mov r14, r12
mov r12b, 1
xor edi, edi
lea rsi, [0x140138510]
xorps xmm6, xmm6
jmp 0x140037ab1
mov r12d, ecx
shr ebx, 1
add rdi, 8
test ebx, ebx
je 0x140037b9d
test bl, 1
je 0x140037aa3
mov eax, dword [0x140138510]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jle 0x140037b0c
mov rcx, rsi
call fcn.140076f64
cmp dword [0x140138510], 0xffffffff
jne 0x140037b0c
mov ecx, 0x18
call fcn.140076ec8
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [0x140138508], rax
mov rcx, rsi
call fcn.140076f04
mov rax, qword [0x140138508]
mov rax, qword [rax]
cmp qword [rax + rdi], 0
je 0x140037aa3
mov eax, dword [0x140138510]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jle 0x140037b73
mov rcx, rsi
call fcn.140076f64
cmp dword [0x140138510], 0xffffffff
jne 0x140037b73
mov ecx, 0x18
call fcn.140076ec8
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [0x140138508], rax
mov rcx, rsi
call fcn.140076f04
mov rax, qword [0x140138508]
mov rax, qword [rax]
mov rcx, qword [rax + rdi]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 8]
xor ecx, ecx
test al, al
jne 0x140037aa0
movzx ecx, r12b
jmp 0x140037aa0
test r12b, r12b
mov r12, r14
je 0x140037e50
mov rcx, r12
call fcn.14003d440
mov rcx, r12
call fcn.140076eb8
xor r12d, r12d
movzx edi, byte [rbp + 0x47]
mov r15, rdi
test dil, dil
jns 0x140037bcc
mov r15, qword [rbp + 0x38]
test r15, r15
je 0x140037f9d
lea rax, [0x140113670]
mov qword [rbp + 0x70], rax
mov dword [rbp + 0x78], 2
lea rcx, [rbp + 0x80]
mov edx, 0x10
mov r8d, 1
call fcn.14003d870
lea rsi, str..._.._base_trace_event_trace_log.cc
mov qword [rbp + 0x190], rsi
mov dword [rbp + 0x198], 0x6dc
lea rcx, [rbp + 0x19c]
call fcn.14003d3d0
lea rcx, [rbp + 0x70]
mov rdx, rsi
mov r8d, 0x6dc
call fcn.140001ae0
test dil, dil
jns 0x140037c3f
mov r13, qword [rbp + 0x30]
jmp 0x140037c43
lea r13, [rbp + 0x30]
mov rax, qword [rbp + 0x80]
movsxd r14, dword [rax + 4]
cmp dword [rbp + r14 + 0xa0], 0
jne 0x140037f66
mov rcx, qword [rbp + r14 + 0x108]
test rcx, rcx
jne 0x14003ca01
mov r8d, dword [rbp + r14 + 0x110]
cmp r8d, 0xffffffff
mov qword [rbp + 0x1f8], r12
je 0x140038024
lea rdi, [r15 + r13]
mov eax, 0xb0
and eax, dword [rbp + r14 + 0x88]
mov rdx, rdi
cmp eax, 0x20
je 0x140037ca3
mov rdx, r13
mov r12, qword [rbp + r14 + 0xa8]
test r12, r12
je 0x140037f36
mov rax, qword [rbp + r14 + 0x98]
xor ebx, ebx
sub rax, r15
cmovg rbx, rax
mov rsi, rdx
sub rsi, r13
test rsi, rsi
jle 0x140037cf5
mov rax, qword [r12]
mov rcx, r12
mov r15, rdx
mov rdx, r13
mov r13d, r8d
mov r8, rsi
call qword [rax + 0x58]
mov r8d, r13d
mov rdx, r15
cmp rax, rsi
jne 0x140037f36
test rbx, rbx
jle 0x140037f07
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x230], rax
movaps xmm0, xmmword [0x1401146a0]
movaps xmmword [rbp + 0x220], xmm0
mov r15, rdx
cmp rbx, 0x16
ja 0x140037e74
lea rsi, [rbp + 0x220]
mov byte [rbp + 0x237], bl
jmp 0x140037eaf
lea rcx, [0x140138160]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14003c863
mov rax, qword [0x140138488]
test rax, rax
je 0x140037da0
cmp qword [rax], 0x40
jne 0x140037e29
mov rcx, qword [0x140138178]
mov qword [0x140138488], 0
lea r8, [rbp + 0x220]
mov qword [r8], rax
mov rdx, qword [0x140138490]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [0x140138488]
test rax, rax
jne 0x140037e29
mov rcx, qword [0x140138178]
mov rax, qword [rcx]
lea r8, [0x140138490]
lea rdx, [rbp + 0x70]
call qword [rax + 8]
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x70], 0
mov rsi, qword [0x140138488]
mov qword [0x140138488], rax
test rsi, rsi
je 0x140037e08
mov rcx, rsi
call fcn.1400a6580
mov rcx, rsi
call fcn.140076eb8
mov rsi, qword [rbp + 0x70]
mov qword [rbp + 0x70], 0
test rsi, rsi
je 0x140037e08
mov rcx, rsi
call fcn.1400a6580
mov rcx, rsi
call fcn.140076eb8
mov rcx, qword [0x140138178]
mov rax, qword [rcx]
call qword [rax + 0x18]
test al, al
jne 0x14003a27f
mov rax, qword [0x140138488]
test rax, rax
je 0x140037e47
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
imul rdi, rcx, 0x98
add rdi, rax
add rdi, 0x10
jne 0x14003a19d
mov bl, 1
xor edi, edi
jmp 0x1400381d4
mov rax, qword [rbp + 0x240]
mov cl, byte [rax]
and cl, 1
mov r14, qword [rbp + 0x48]
test cl, cl
jne 0x140037669
jmp 0x140037bbc
mov cl, 1
jmp 0x140037640
lea r13, [rbx + 0x10]
and r13, 0xfffffffffffffff0
mov rcx, r13
mov esi, r8d
call fcn.140076ec8
mov r8d, esi
mov rsi, rax
mov qword [rbp + 0x220], rax
movabs rax, 0x8000000000000000
or rax, r13
mov qword [rbp + 0x230], rax
mov qword [rbp + 0x228], rbx
mov rcx, rsi
mov edx, r8d
mov r8, rbx
call fcn.14007c4d0
mov byte [rsi + rbx], 0
cmp byte [rbp + 0x237], 0
jns 0x140037ed3
mov rdx, qword [rbp + 0x220]
jmp 0x140037eda
lea rdx, [rbp + 0x220]
mov rax, qword [r12]
mov rcx, r12
mov r8, rbx
call qword [rax + 0x58]
mov rsi, rax
cmp byte [rbp + 0x237], 0
jns 0x140037eff
mov rcx, qword [rbp + 0x220]
call fcn.140076eb8
cmp rsi, rbx
mov rdx, r15
jne 0x140037f36
sub rdi, rdx
test rdi, rdi
jle 0x140037f21
mov rax, qword [r12]
mov rcx, r12
mov r8, rdi
call qword [rax + 0x58]
cmp rax, rdi
jne 0x140037f36
mov qword [rbp + r14 + 0x98], 0
mov r12, qword [rbp + 0x1f8]
jmp 0x140037f66
mov rax, qword [rbp + 0x80]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0xa0]
or ecx, 5
mov dword [rbp + rax + 0xa0], ecx
test dword [rbp + rax + 0xa4], ecx
mov r12, qword [rbp + 0x1f8]
jne 0x14003cd0e
mov rax, qword [rbp + 0x80]
movsxd rax, dword [rax + 4]
cmp qword [rbp + rax + 0xa8], 0
je 0x140037f94
cmp dword [rbp + rax + 0xa0], 0
jne 0x140037f94
test byte [rbp + rax + 0x89], 0x20
jne 0x14003ca16
lea rcx, [rbp + 0x70]
call fcn.140001da0
test r12, r12
je 0x140037fb2
mov rcx, r12
call fcn.14003d440
mov rcx, r12
call fcn.140076eb8
cmp byte [rbp + 0x47], 0
jns 0x140037fc1
mov rcx, qword [rbp + 0x30]
call fcn.140076eb8
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140037ffb
movsxd rcx, dword [0x140138458]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x14013845c]
movsxd rdx, dword [0x140138458]
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 rdi, qword [rbp + r14 + 0xb0]
lock inc dword [rdi + 8]
lea rax, [0x140136858]
mov qword [rbp + 0x220], rax
lea rax, [0x14002e4e0]
mov qword [rbp + 0x228], rax
mov rax, qword [0x140136858]
cmp rax, 0xffffffffffffffff
jne 0x14003cd29
movsxd rax, dword [0x140136860]
lea rdx, [rax - 1]
mov rcx, qword [rdi + 0x10]
mov rbx, qword [rdi + 0x18]
sub rbx, rcx
sar rbx, 3
cmp rbx, rdx
jbe 0x14003cb7a
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
je 0x14003cb7a
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov r8d, 0x20
lea rdx, [method.std::__1::ctype_char_.virtual_56]
cmp rax, rdx
jne 0x14003cd59
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
test eax, eax
je 0x14003c903
mov dword [rbp + r14 + 0x110], r8d
mov rax, qword [rbp + 0x80]
movsxd r14, dword [rax + 4]
jmp 0x140037c87
mov qword [r14 + 0x18], 0
jmp 0x1400380f7
mov qword [r14 + 0x18], 0
mov rcx, rbx
call fcn.1400a6580
mov rcx, rbx
call fcn.140076eb8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r14 + 0x18]
test rax, rax
jne 0x1400381b2
mov rsi, qword [r14 + 0x10]
add rsi, 8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14003c874
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 0x140038186
mov rcx, rbx
call fcn.1400a6580
mov rcx, rbx
call fcn.140076eb8
mov rbx, qword [rbp + 0x70]
mov qword [rbp + 0x70], 0
test rbx, rbx
je 0x140038186
mov rcx, rbx
call fcn.1400a6580
mov rcx, rbx
call fcn.140076eb8
mov rdi, qword [r14 + 0x10]
mov rcx, qword [rdi + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x18]
test al, al
jne 0x14003a139
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r14 + 0x18]
test rax, rax
je 0x140037e47
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
imul rdi, rcx, 0x98
add rdi, rax
add rdi, 0x10
jne 0x140039a87
xor edi, edi
mov bl, 1
mov eax, dword [0x1401382f8]
test al, 8
je 0x14003bd5b
mov al, byte [rbp + 0x1f8]
cmp al, 0x58
movzx eax, al
mov esi, 0x42
cmovne esi, eax
lea rcx, [0x140138168]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14003c81c
test bl, bl
mov qword [rbp + 0x10], rdi
je 0x14003821c
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, eax
jmp 0x140038222
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 0x140038317
movsxd r14, edi
mov rbx, qword [0x140138290]
test rbx, rbx
je 0x1400389cb
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 0x140038dd4
lea r15, [rbx - 1]
and r15, r14
mov rax, qword [0x140138288]
mov rsi, qword [rax + r15*8]
test rsi, rsi
je 0x1400389d5
lea r8, [rbx - 1]
jmp 0x1400382ee
and rax, r8
cmp rax, r15
jne 0x1400389d5
cmp dword [rsi + 0x10], edi
je 0x140038a93
mov rsi, qword [rsi]
test rsi, rsi
je 0x1400389d5
mov rax, qword [rsi + 8]
cmp rax, r14
je 0x1400382e5
cmp ecx, 1
jbe 0x1400382d9
cmp rax, rbx
jb 0x1400382dc
xor edx, edx
div rbx
mov rax, rdx
jmp 0x1400382dc
xor eax, eax
mov qword [rbp + 0x20], rax
movabs rbx, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x1e0], rbx
movaps xmm6, xmmword [0x1401146a0]
movaps xmmword [rbp + 0x1d0], xmm6
mov r15d, dword [rbp + 0x1bc]
movsxd r14, r15d
mov rdi, qword [0x140138268]
test rdi, rdi
mov qword [rbp + 0x1f8], r12
je 0x1400383e3
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 0x140039899
mov rbx, r14
cmp rdi, r14
jbe 0x140038e0c
mov rax, qword [0x140138260]
mov rsi, qword [rax + rbx*8]
test rsi, rsi
jne 0x140038cf8
mov ecx, 0x30
call fcn.140076ec8
mov rsi, rax
mov dword [rax + 0x10], r15d
xorps xmm0, xmm0
movups xmmword [rax + 0x18], xmm0
mov qword [rax + 0x28], 0
mov qword [rax + 8], r14
mov qword [rax], 0
mov rax, qword [0x140138278]
add rax, 1
js 0x140038432
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
test rdi, rdi
js 0x14003844f
xorps xmm1, xmm1
cvtsi2ss xmm1, rdi
jmp 0x140038469
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test rdi, rdi
jns 0x140038428
mov rax, rdi
shr rax, 1
mov ecx, edi
and ecx, 1
or rcx, rax
xorps xmm1, xmm1
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
movss xmm2, dword [0x140138280]
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x140038e1c
test rdi, rdi
je 0x140038e1c
mov rax, qword [0x140138260]
mov rcx, qword [rax + rbx*8]
test rcx, rcx
jne 0x140039848
lea rcx, [0x140138270]
mov rdx, qword [0x140138270]
mov qword [rsi], rdx
mov qword [0x140138270], rsi
mov qword [rax + rbx*8], rcx
mov rax, qword [rsi]
test rax, rax
je 0x1400384e4
mov rax, qword [rax + 8]
lea rcx, [rdi - 1]
test rdi, rcx
je 0x14003a2e3
cmp rax, rdi
jae 0x1400398a5
mov rcx, qword [0x140138260]
mov qword [rcx + rax*8], rsi
add qword [0x140138278], 1
cmp byte [rsi + 0x2f], 0
js 0x1400385d1
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 0x140038636
cmp r12, 0x10
ja 0x140038927
cmp r12, 9
jae 0x1400388dd
cmp r12, 4
jae 0x140038ee5
test r12, r12
je 0x14003c6aa
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 0x14003873d
mov rdi, qword [rsi + 0x18]
mov rsi, qword [rsi + 0x20]
cmp rsi, 0x16
jbe 0x14003a1b0
cmp rsi, 0xfffffffffffffff0
jae 0x14003cd1a
lea rbx, [rsi + 0x10]
and rbx, 0xfffffffffffffff0
mov rcx, rbx
call fcn.140076ec8
mov rcx, rax
mov qword [rbp + 0x1d0], rax
movabs rax, 0x8000000000000000
or rax, rbx
mov qword [rbp + 0x1e0], rax
mov qword [rbp + 0x1d8], rsi
add rsi, 1
mov rdx, rdi
mov r8, rsi
call fcn.14007be20
jmp 0x14003850f
cmp r12, 0x40
ja 0x140039b49
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 [0x1401382b8]
test r13, r13
je 0x140038f31
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 0x1400388c1
lea r14, [r13 - 1]
and r14, r15
mov rax, qword [0x1401382b0]
mov rax, qword [rax + r14*8]
test rax, rax
je 0x140038f31
mov rdi, qword [rax]
test rdi, rdi
je 0x140038f31
lea r8, [r13 - 1]
jmp 0x1400387f8
and rax, r8
cmp rax, r14
jne 0x140038f31
mov rdi, qword [rdi]
test rdi, rdi
je 0x140038f31
mov rax, qword [rdi + 8]
cmp rax, r15
jne 0x140038860
mov dl, byte [rdi + 0x27]
movzx eax, dl
mov rcx, rax
test dl, dl
jns 0x140038812
mov rcx, qword [rdi + 0x18]
cmp rcx, r12
jne 0x1400387ec
lea rcx, [rdi + 0x10]
mov rsi, qword [rcx]
test dl, dl
cmovs rcx, rsi
js 0x14003887f
je 0x14003a353
cmp byte [r10], sil
jne 0x1400387ec
dec rax
xor ecx, ecx
nop word cs:[rax + rax]
cmp rax, rcx
je 0x140038f28
movzx edx, byte [rdi + rcx + 0x11]
lea rsi, [rcx + 1]
cmp dl, byte [r10 + rcx + 1]
mov rcx, rsi
je 0x140038840
jmp 0x1400387ec
cmp ebx, 1
jbe 0x1400387e0
cmp rax, r13
jb 0x1400387e3
xor edx, edx
div r13
mov rax, rdx
jmp 0x1400387e3
test r12, r12
je 0x14003a353
mov rdx, r10
mov qword [rbp + 0x240], r13
mov r13, r8
mov r8, r12
mov rsi, r10
call fcn.14007bd20
mov r8, r13
mov r13, qword [rbp + 0x240]
mov r10, rsi
mov r11, qword [rbp + 0x210]
test eax, eax
jne 0x1400387ec
jmp 0x14003a353
mov r14, r15
cmp r15, r13
jb 0x1400387ba
mov rax, r15
xor edx, edx
div r13
mov r14, rdx
jmp 0x1400387ba
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 0x14003873d
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 0x14003873d
movabs r15, 0xaaaaaaaaaaaaaaaa
mov ecx, 0x38
call fcn.140076ec8
mov rsi, rax
mov dword [rax + 0x10], edi
xorps xmm0, xmm0
movups xmmword [rax + 0x18], xmm0
movups xmmword [rax + 0x28], xmm0
mov qword [rax + 8], r14
mov qword [rax], 0
mov rax, qword [0x1401382a0]
add rax, 1
js 0x140038a1c
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
test rbx, rbx
js 0x140038a39
cvtsi2ss xmm1, rbx
jmp 0x140038a50
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test rbx, rbx
jns 0x140038a15
mov rax, rbx
shr rax, 1
mov ecx, ebx
and ecx, 1
or rcx, rax
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
movss xmm2, dword [0x1401382a8]
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x14003a1c0
test rbx, rbx
je 0x14003a1c0
mov rax, qword [0x140138288]
mov rcx, qword [rax + r15*8]
test rcx, rcx
je 0x140038d3c
mov rax, qword [rcx]
mov qword [rsi], rax
mov qword [rcx], rsi
add qword [0x1401382a0], 1
mov rcx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x30]
test rax, rax
cmove rax, rcx
lea rdx, [rax - 1]
cmp rcx, rdx
jb 0x14003cbbd
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 [0x140138290]
test rdi, rdi
mov qword [rbp + 0x20], rsi
je 0x140038b98
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 0x140038df0
lea r15, [rdi - 1]
and r15, r14
mov rax, qword [0x140138288]
mov rsi, qword [rax + r15*8]
test rsi, rsi
je 0x140038ba2
lea r8, [rdi - 1]
jmp 0x140038b73
and rax, r8
cmp rax, r15
jne 0x140038ba2
cmp dword [rsi + 0x10], ebx
je 0x140038c66
mov rsi, qword [rsi]
test rsi, rsi
je 0x140038ba2
mov rax, qword [rsi + 8]
cmp rax, r14
je 0x140038b6a
cmp ecx, 1
jbe 0x140038b62
cmp rax, rdi
jb 0x140038b65
xor edx, edx
div rdi
mov rax, rdx
jmp 0x140038b65
movabs r15, 0xaaaaaaaaaaaaaaaa
mov ecx, 0x38
call fcn.140076ec8
mov rsi, rax
mov dword [rax + 0x10], ebx
xorps xmm0, xmm0
movups xmmword [rax + 0x18], xmm0
movups xmmword [rax + 0x28], xmm0
mov qword [rax + 8], r14
mov qword [rax], 0
mov rax, qword [0x1401382a0]
add rax, 1
js 0x140038bec
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
test rdi, rdi
js 0x140038c09
xorps xmm1, xmm1
cvtsi2ss xmm1, rdi
jmp 0x140038c23
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test rdi, rdi
jns 0x140038be2
mov rax, rdi
shr rax, 1
mov ecx, edi
and ecx, 1
or rcx, rax
xorps xmm1, xmm1
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
movss xmm2, dword [0x1401382a8]
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x14003a211
test rdi, rdi
je 0x14003a211
mov rax, qword [0x140138288]
mov rcx, qword [rax + r15*8]
test rcx, rcx
je 0x140038d88
mov rax, qword [rcx]
mov qword [rsi], rax
mov qword [rcx], rsi
add qword [0x1401382a0], 1
mov rax, qword [rsi + 0x20]
mov rdx, qword [rsi + 0x30]
test rdx, rdx
je 0x140038cee
lea rcx, [rdx - 1]
mov qword [rsi + 0x30], rcx
cmp rax, rdx
jb 0x14003cd26
cmp rax, rcx
jb 0x14003cbc0
cmp rax, 5
jb 0x14003831d
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 0x14003831d
mov rax, rdx
shr rax, 2
add rax, rdx
cmp rax, 3
mov edx, 3
cmova rdx, rax
cmp rdx, rbx
jae 0x14003831d
add rsi, 0x18
mov rcx, rsi
call fcn.1400a70f0
jmp 0x14003831d
lea rcx, [rax - 1]
mov qword [rsi + 0x30], rcx
jmp 0x140038c84
lea r8, [rdi - 1]
mov rsi, qword [rsi]
test rsi, rsi
je 0x1400383e3
mov rax, qword [rsi + 8]
cmp rax, r14
je 0x140038d2c
cmp ecx, 1
jbe 0x140038d37
cmp rax, rdi
jb 0x140038d23
xor edx, edx
div rdi
mov rax, rdx
cmp rax, rbx
jne 0x1400383e3
cmp dword [rsi + 0x10], r15d
jne 0x140038cfc
jmp 0x1400384ec
and rax, r8
jmp 0x140038d23
lea rcx, [0x140138298]
mov rdx, qword [0x140138298]
mov qword [rsi], rdx
mov qword [0x140138298], rsi
mov qword [rax + r15*8], rcx
mov rax, qword [rsi]
test rax, rax
je 0x140038a8b
mov rax, qword [rax + 8]
lea rcx, [rbx - 1]
test rbx, rcx
jne 0x140039df8
and rax, rcx
mov rcx, qword [0x140138288]
mov qword [rcx + rax*8], rsi
jmp 0x140038a8b
lea rcx, [0x140138298]
mov rdx, qword [0x140138298]
mov qword [rsi], rdx
mov qword [0x140138298], rsi
mov qword [rax + r15*8], rcx
mov rax, qword [rsi]
test rax, rax
je 0x140038c5e
mov rax, qword [rax + 8]
lea rcx, [rdi - 1]
test rdi, rcx
jne 0x140039e0e
and rax, rcx
mov rcx, qword [0x140138288]
mov qword [rcx + rax*8], rsi
jmp 0x140038c5e
mov r15, r14
cmp rbx, r14
ja 0x1400382bf
mov rax, r14
xor edx, edx
div rbx
mov r15, rdx
jmp 0x1400382bf
mov r15, r14
cmp rdi, r14
ja 0x140038b4c
mov rax, r14
xor edx, edx
div rdi
mov r15, rdx
jmp 0x140038b4c
mov rax, r14
xor edx, edx
div rdi
mov rbx, rdx
jmp 0x1400383cf
divss xmm0, xmm2
call fcn.1400a4cec
cvttss2si rcx, xmm0
movss xmm7, dword [0x140114c00]
movaps xmm1, xmm0
subss xmm1, xmm7
cvttss2si rax, xmm1
btc rax, 0x3f
ucomiss xmm0, xmm7
cmovb rax, rcx
lea r15, [rdi + rdi]
cmp rdi, 2
ja 0x140039b35
or r15, 1
cmp r15, rax
cmovb r15, rax
cmp r15, 1
je 0x14003a12e
lea rax, [r15 - 1]
test r15, rax
je 0x140038e88
mov rcx, r15
call fcn.14003e54a
mov r15, rax
mov rdi, qword [0x140138268]
cmp r15, rdi
jbe 0x14003cd66
mov rax, r15
shr rax, 0x3d
jne 0x14003c997
lea rcx, [r15*8]
call fcn.140076ec8
mov rcx, qword [0x140138260]
mov qword [0x140138260], rax
test rcx, rcx
je 0x140038ec3
call fcn.140076eb8
mov qword [0x140138268], r15
lea r8, [r15 - 1]
mov eax, r15d
and eax, 3
cmp r8, 3
jae 0x1400398b9
xor ecx, ecx
jmp 0x140039918
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 0x14003873d
test rdi, rdi
jne 0x14003a353
mov r15, qword [0x1401382c8]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, r15
mul rcx
mov qword [rbp + 0x1f0], rdx
cmp r12, 0x20
ja 0x140038fd9
cmp r12, 0x10
mov rax, qword [rbp + 0x238]
ja 0x1400393e2
cmp r12, 9
jae 0x140039398
cmp r12, 4
jae 0x140039856
test r12, r12
je 0x14003c72a
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 0x1400390e4
cmp r12, 0x40
mov rcx, qword [rbp + 0x238]
ja 0x140039e36
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 0x14003936d
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 0x14003937c
lea r14, [r13 - 1]
and r14, rsi
mov rax, qword [0x1401382b0]
mov rax, qword [rax + r14*8]
test rax, rax
je 0x140039250
mov rdi, qword [rax]
test rdi, rdi
je 0x140039250
lea r8, [r13 - 1]
jmp 0x14003919c
mov rdi, qword [rdi]
test rdi, rdi
je 0x140039250
mov rax, qword [rdi + 8]
cmp rax, rsi
je 0x1400391b7
cmp r15d, 1
ja 0x14003920a
and rax, r8
cmp rax, r14
jne 0x140039250
mov dl, byte [rdi + 0x27]
movzx eax, dl
mov rcx, rax
test dl, dl
jns 0x1400391c8
mov rcx, qword [rdi + 0x18]
cmp rcx, r12
jne 0x140039190
lea rcx, [rdi + 0x10]
mov rbx, qword [rcx]
test dl, dl
cmovs rcx, rbx
js 0x140039219
je 0x140039244
cmp byte [r10], bl
jne 0x140039190
dec rax
xor ecx, ecx
nop dword [rax + rax]
cmp rax, rcx
je 0x140039244
movzx edx, byte [rdi + rcx + 0x11]
lea rbx, [rcx + 1]
cmp dl, byte [r10 + rcx + 1]
mov rcx, rbx
je 0x1400391f0
jmp 0x140039190
cmp rax, r13
jb 0x1400391ae
xor edx, edx
div r13
mov rax, rdx
jmp 0x1400391ae
test r12, r12
je 0x140039244
mov rdx, r10
mov rsi, r8
mov r8, r12
mov rbx, r10
call fcn.14007bd20
mov r8, rsi
mov rsi, qword [rbp + 0x240]
mov r10, rbx
test eax, eax
jne 0x140039190
mov r15, qword [rbp + 0x218]
jmp 0x14003a338
mov r15, qword [rbp + 0x218]
mov ecx, 0x30
call fcn.140076ec8
mov rdi, rax
lea rcx, [rax + 0x10]
cmp byte [rbp + 0x238], 0
js 0x14003cb9e
mov rax, qword [rbp + 0x1e0]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rbp + 0x1d0]
movups xmmword [rcx], xmm0
mov rax, r15
mov rcx, qword [rbp + 0x240]
mov dword [rdi + 0x28], 0
mov qword [rdi + 8], rcx
mov qword [rdi], 0
add rax, 1
js 0x1400392c0
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
test r13, r13
js 0x1400392dd
cvtsi2ss xmm1, r13
jmp 0x1400392f5
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test r13, r13
jns 0x1400392b9
mov rax, r13
shr rax, 1
mov ecx, r13d
and ecx, 1
or rcx, rax
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
movss xmm2, dword [0x1401382d0]
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x14003930f
test r13, r13
jne 0x14003a313
mov qword [rbp + 0x50], rdi
divss xmm0, xmm2
call fcn.1400a4cec
movss xmm7, dword [0x140114c00]
movaps xmm1, xmm0
subss xmm1, xmm7
cvttss2si rax, xmm1
movabs rcx, 0x8000000000000000
xor rcx, rax
cvttss2si rax, xmm0
ucomiss xmm0, xmm7
cmovae rax, rcx
mov rsi, r13
add rsi, r13
cmp r13, 2
jbe 0x140039485
lea rcx, [r13 - 1]
xor edx, edx
test r13, rcx
setne dl
or rsi, rdx
jmp 0x140039489
movabs r14, 0xaaaaaaaaaaaaaaaa
jmp 0x140039257
mov r14, rsi
cmp rsi, r13
jb 0x140039168
mov rax, rsi
xor edx, edx
div r13
mov r14, rdx
jmp 0x140039168
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 0x1400390e4
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 0x1400390e4
or rsi, 1
cmp rsi, rax
cmovb rsi, rax
cmp rsi, 1
mov r8, qword [rbp + 0x240]
je 0x140039b2b
lea rax, [rsi - 1]
test rsi, rax
je 0x1400394bc
mov rcx, rsi
call fcn.14003e54a
mov r8, qword [rbp + 0x240]
mov rsi, rax
mov rdi, qword [0x1401382b8]
cmp rsi, rdi
jbe 0x14003a2ee
mov rax, rsi
shr rax, 0x3d
jne 0x14003c997
lea rcx, [rsi*8]
call fcn.140076ec8
mov rcx, qword [0x1401382b0]
mov qword [0x1401382b0], rax
test rcx, rcx
je 0x1400394fe
call fcn.140076eb8
mov qword [0x1401382b8], rsi
lea rcx, [rsi - 1]
mov eax, esi
and eax, 3
cmp rcx, 3
mov r8, qword [rbp + 0x240]
jae 0x14003951f
xor ecx, ecx
jmp 0x140039578
mov rdx, rsi
and rdx, 0xfffffffffffffffc
xor ecx, ecx
nop dword [rax + rax]
mov rbx, qword [0x1401382b0]
mov qword [rbx + rcx*8], 0
mov rbx, qword [0x1401382b0]
mov qword [rbx + rcx*8 + 8], 0
mov rbx, qword [0x1401382b0]
mov qword [rbx + rcx*8 + 0x10], 0
mov rbx, qword [0x1401382b0]
mov qword [rbx + rcx*8 + 0x18], 0
add rcx, 4
cmp rdx, rcx
jne 0x140039530
test rax, rax
je 0x140039599
nop dword [rax]
mov rdx, qword [0x1401382b0]
mov qword [rdx + rcx*8], 0
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140039580
mov r9, qword [0x1401382c0]
test r9, r9
je 0x14003a2f4
mov r10, qword [r9 + 8]
mov rax, rsi
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rcx, rsi
sub rcx, rax
mov rax, rcx
movabs rdx, 0x3333333333333333
and rax, rdx
shr rcx, 2
and rcx, rdx
add rcx, rax
mov r11, rcx
shr r11, 4
add r11, rcx
movabs rax, 0xf0f0f0f0f0f0f0f
and r11, rax
movabs rax, 0x101010101010101
imul r11, rax
shr r11, 0x38
cmp r11, 1
ja 0x14003982f
lea rax, [rsi - 1]
and r10, rax
mov rax, qword [0x1401382b0]
lea rcx, [0x1401382c0]
mov qword [rax + r10*8], rcx
mov rdi, qword [r9]
test rdi, rdi
je 0x14003a2f4
lea r14, [rsi - 1]
mov qword [rbp + 0x218], r15
mov qword [rbp + 0x208], rsi
mov qword [rbp + 0x1c8], r11
mov qword [rbp + 0x1c0], r14
jmp 0x14003966f
mov r9, rdi
mov rdi, qword [r9]
test rdi, rdi
je 0x14003a2f4
mov rbx, qword [rdi + 8]
cmp r11d, 1
ja 0x1400397e0
and rbx, r14
cmp rbx, r10
je 0x140039660
mov rax, qword [0x1401382b0]
cmp qword [rax + rbx*8], 0
je 0x140039802
mov rax, qword [rdi]
test rax, rax
je 0x140039811
movzx ecx, byte [rdi + 0x27]
mov qword [rbp + 0x238], rcx
mov qword [rbp + 0x210], rcx
test cl, cl
jns 0x1400396c4
mov rcx, qword [rdi + 0x18]
mov qword [rbp + 0x238], rcx
lea r12, [rdi + 0x10]
mov r15, qword [rbp + 0x210]
add r15, 0xffffffffffffffff
mov r13, rdi
jmp 0x1400396ed
mov rax, qword [r13]
test rax, rax
je 0x140039819
mov rdx, r13
mov r13, rax
movzx eax, byte [rax + 0x27]
mov rcx, rax
test al, al
jns 0x140039702
mov rcx, qword [r13 + 0x18]
cmp qword [rbp + 0x238], rcx
jne 0x14003981f
mov qword [rbp + 0x200], rdx
lea rdx, [r13 + 0x10]
test al, al
jns 0x140039721
mov rdx, qword [rdx]
mov rax, qword [r12]
mov rcx, r12
cmp byte [rbp + 0x210], 0
cmovs rcx, rax
js 0x140039760
je 0x1400396e0
cmp byte [rdx], al
jne 0x1400397a3
xor eax, eax
nop dword [rax]
cmp r15, rax
je 0x1400396e0
movzx ecx, byte [rdi + rax + 0x11]
lea rsi, [rax + 1]
cmp cl, byte [rdx + rax + 1]
mov rax, rsi
je 0x140039740
jmp 0x1400397a3
cmp qword [rbp + 0x238], 0
je 0x1400396e0
mov r8, qword [rbp + 0x238]
mov rsi, r9
mov r14, r10
call fcn.14007bd20
mov r11, qword [rbp + 0x1c8]
mov r10, r14
mov r14, qword [rbp + 0x1c0]
mov r9, rsi
mov r8, qword [rbp + 0x240]
test eax, eax
je 0x1400396e0
mov r15, qword [rbp + 0x218]
mov rsi, qword [rbp + 0x208]
mov rdx, qword [rbp + 0x200]
mov qword [r9], r13
mov rax, qword [0x1401382b0]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax]
mov qword [rdx], rax
mov rax, qword [0x1401382b0]
mov rax, qword [rax + rbx*8]
mov qword [rax], rdi
jmp 0x140039663
cmp rbx, rsi
jb 0x140039680
mov rax, rbx
xor edx, edx
div rsi
mov rbx, rdx
cmp rbx, r10
je 0x140039660
jmp 0x140039685
mov qword [rax + rbx*8], r9
mov r9, rdi
mov r10, rbx
jmp 0x140039663
mov rdx, rdi
xor r13d, r13d
jmp 0x1400397b8
mov rdx, r13
xor r13d, r13d
mov r15, qword [rbp + 0x218]
mov rsi, qword [rbp + 0x208]
jmp 0x1400397b8
cmp r10, rsi
jb 0x14003961a
mov rax, r10
xor edx, edx
div rsi
mov r10, rdx
jmp 0x14003961a
mov rax, qword [rcx]
mov qword [rsi], rax
mov qword [rcx], rsi
jmp 0x1400384e4
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 0x1400390e4
lea rbx, [rdi - 1]
and rbx, r14
jmp 0x1400383cf
xor edx, edx
div rdi
mov rax, rdx
jmp 0x1400384d9
xor eax, eax
jmp 0x140037405
mov rdx, r15
and rdx, 0xfffffffffffffffc
xor ecx, ecx
nop word cs:[rax + rax]
nop dword [rax]
mov rbx, qword [0x140138260]
mov qword [rbx + rcx*8], 0
mov rbx, qword [0x140138260]
mov qword [rbx + rcx*8 + 8], 0
mov rbx, qword [0x140138260]
mov qword [rbx + rcx*8 + 0x10], 0
mov rbx, qword [0x140138260]
mov qword [rbx + rcx*8 + 0x18], 0
add rcx, 4
cmp rdx, rcx
jne 0x1400398d0
test rax, rax
je 0x140039936
mov rdx, qword [0x140138260]
mov qword [rdx + rcx*8], 0
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x14003991d
mov rbx, qword [0x140138270]
test rbx, rbx
je 0x14003cf1f
mov r11, qword [rbx + 8]
mov rax, r15
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rcx, r15
sub rcx, rax
mov rax, rcx
movabs rdx, 0x3333333333333333
and rax, rdx
shr rcx, 2
and rcx, rdx
add rcx, rax
mov r9, rcx
shr r9, 4
add r9, rcx
movabs rax, 0xf0f0f0f0f0f0f0f
and r9, rax
movabs rax, 0x101010101010101
imul r9, rax
shr r9, 0x38
cmp r9, 1
jbe 0x14003cd89
cmp r11, r15
jb 0x1400399c0
mov rax, r11
xor edx, edx
div r15
mov r11, rdx
mov rax, qword [0x140138260]
lea rcx, [0x140138270]
mov qword [rax + r11*8], rcx
nop word cs:[rax + rax]
nop dword [rax]
mov rdi, qword [rbx]
test rdi, rdi
je 0x14003cf1f
mov rax, qword [rdi + 8]
cmp r9d, 1
jbe 0x14003cb09
cmp rax, r15
jae 0x140039a25
cmp rax, r11
je 0x14003c31c
mov rcx, qword [0x140138260]
cmp qword [rcx + rax*8], 0
mov rdx, rdi
jne 0x140039a2f
mov qword [rcx + rax*8], rbx
mov rbx, rdi
mov r11, rax
jmp 0x1400399e0
xor edx, edx
div r15
mov rax, rdx
jmp 0x1400399ff
mov r10, rdx
mov rdx, qword [rdx]
test rdx, rdx
je 0x140039a42
mov ecx, dword [rdi + 0x10]
cmp ecx, dword [rdx + 0x10]
je 0x140039a2f
mov qword [rbx], rdx
mov rcx, qword [0x140138260]
mov rcx, qword [rcx + rax*8]
mov rcx, qword [rcx]
mov qword [r10], rcx
mov rcx, qword [0x140138260]
mov rax, qword [rcx + rax*8]
mov qword [rax], rdi
jmp 0x1400399e0
lea rcx, [r12 + 0x58]
mov rdx, qword [rbp + 0x300]
call fcn.140032420
mov r8d, dword [r12 + 0x84]
jmp 0x140037a59
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 0x140039e24
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]
call fcn.1400a6c50
jmp 0x140039e2f
mov esi, 2
jmp 0x1400394bc
lea rcx, [rdi - 1]
xor edx, edx
test rdi, rcx
setne dl
or r15, rdx
jmp 0x140038e5c
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 0x140039d4e
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 0x140039c36
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 0x14003873d
cmp rax, rbx
jb 0x140038d78
xor edx, edx
div rbx
mov rax, rdx
jmp 0x140038d78
cmp rax, rdi
jb 0x140038dc4
xor edx, edx
div rdi
mov rax, rdx
jmp 0x140038dc4
mov rcx, rdi
mov rdx, r12
call fcn.1400a6b50
xor ebx, ebx
jmp 0x1400381d4
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 0x14003a07e
mov rsi, qword [rbp + 0x208]
mov rsi, qword [rsi + r9]
mov qword [rbp + 0x1c0], rsi
add r9, 0x40
movabs r14, 0xb492b66fbe98f273
jmp 0x140039f26
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 0x1400390e4
mov r15d, 2
jmp 0x140038e88
cmp qword [rdi + 0x180], 0
jne 0x14003c423
mov rax, qword [0x140132ef0]
lea rcx, [0x14002ef20]
lea rbx, [rbp + 0x70]
cmp rax, rcx
jne 0x14003c941
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 0x14003c3a4
imul rax, rax, 0xf4240
cqo
idiv qword [0x140137780]
jmp 0x14003c3c6
movzx eax, word [0x140138490]
mov rdx, qword [0x140138488]
jmp 0x140039a90
lea rcx, [rbp + 0x1d0]
mov byte [rcx + 0x17], sil
jmp 0x140038622
divss xmm0, xmm2
call fcn.1400a4cec
cvttss2si rcx, xmm0
movss xmm1, dword [0x140114c00]
movaps xmm2, xmm0
subss xmm2, xmm1
cvttss2si rax, xmm2
btc rax, 0x3f
ucomiss xmm0, xmm1
cmovb rax, rcx
lea rdx, [rbx + rbx]
cmp rbx, 2
jbe 0x14003c324
lea rcx, [rbx - 1]
xor edi, edi
test rbx, rcx
setne dil
or rdx, rdi
jmp 0x14003c328
divss xmm0, xmm2
call fcn.1400a4cec
cvttss2si rcx, xmm0
movss xmm1, dword [0x140114c00]
movaps xmm2, xmm0
subss xmm2, xmm1
cvttss2si rax, xmm2
btc rax, 0x3f
ucomiss xmm0, xmm1
cmovb rax, rcx
lea rdx, [rdi + rdi]
cmp rdi, 2
jbe 0x14003c364
lea rcx, [rdi - 1]
xor ebx, ebx
test rdi, rcx
setne bl
or rdx, rbx
jmp 0x14003c368
mov r15, r14
lea r14, [rbp + 0xc8]
mov rcx, r14
call fcn.140032420
mov ebx, dword [r14 + 0x2c]
mov r14, r15
jmp 0x140037947
cmp qword [0x1401382d8], 0
jne 0x14003c4d6
mov rax, qword [0x140132ef0]
lea rcx, [0x14002ef20]
lea rsi, [rbp + 0x70]
cmp rax, rcx
jne 0x14003c98a
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 0x14003c457
imul rax, rax, 0xf4240
cqo
idiv qword [0x140137780]
jmp 0x14003c479
dec rdi
and rax, rdi
jmp 0x1400384d9
jb 0x14003d024
mov r13, qword [0x1401382b8]
lea rax, [r13 - 1]
test r13, rax
jne 0x14003afd8
lea r14, [r13 - 1]
and r14, r8
mov rdi, qword [rbp + 0x50]
mov rax, qword [0x1401382b0]
mov rcx, qword [rax + r14*8]
test rcx, rcx
je 0x14003aafd
mov rax, qword [rcx]
mov qword [rdi], rax
mov qword [rcx], rdi
add qword [0x1401382c8], 1
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, [0x140114998]
mov qword [rbp + 0x70], rcx
lea rcx, [0x140113618]
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 [0x140136840]
mov ecx, dword [0x140134a78]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003c4e7
mov rax, qword [0x140136838]
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, [0x140113268]
mov qword [rbp + rax + 0x70], rcx
mov rcx, rsi
call fcn.14003d406
lea rax, [0x1401135a0]
mov qword [rbp + 0x78], rax
movups xmmword [rbp + 0xb8], xmm7
movups xmmword [rbp + 0xc8], xmm7
mov dword [rbp + 0xd8], 0x10
movzx ebx, byte [rbp + 0x1e7]
test bl, bl
mov rdx, qword [rbp + 0x1d0]
lea r11, [rbp + 0x1d0]
cmovs r11, rdx
mov rax, qword [rbp + 0x1d8]
mov r14, rbx
cmovs r14, rax
cmp r14, 0x20
mov qword [rbp + 0x218], rsi
mov qword [rbp + 0x210], rdx
mov qword [rbp + 0x238], rbx
mov qword [rbp + 0x200], rax
ja 0x14003a591
cmp r14, 0x10
ja 0x14003ab93
cmp r14, 9
jae 0x14003ab49
cmp r14, 4
jae 0x14003b221
test r14, r14
je 0x14003c6b9
movzx eax, byte [r11]
mov rcx, r14
shr rcx, 1
movzx ecx, byte [r11 + rcx]
movzx edx, byte [r14 + r11 - 1]
shl rcx, 8
or rcx, rax
lea rax, [r14 + rdx*4]
movabs rdx, 0x9ae16a3b2f90404f
imul rcx, rdx
movabs rbx, 0xc949d7c7509e6557
imul rbx, rax
xor rbx, rcx
mov r13, rbx
shr r13, 0x2f
xor r13, rbx
jmp 0x14003a68b
cmp r14, 0x40
ja 0x14003be22
lea rax, [rdx + 0x10]
test bl, bl
lea rsi, [rbp + 0x1e0]
cmovs rsi, rax
lea rax, [rdx + 8]
test bl, bl
lea rdi, [rbp + 0x1d8]
cmovs rdi, rax
lea rax, [rdx + 0x18]
test bl, bl
lea rcx, [rbp + 0x1e8]
cmovs rcx, rax
mov r9, qword [r11 + r14 - 0x10]
lea rdx, [r9 + r14]
movabs r8, 0xc3a5c85c97cb3127
imul rdx, r8
add rdx, qword [r11]
mov rcx, qword [rcx]
lea r10, [rdx + rcx]
rol r10, 0xc
mov rax, rdx
rol rax, 0x1b
add rdx, qword [rdi]
mov rdi, rdx
rol rdi, 0x39
add rdi, rax
mov rsi, qword [rsi]
add rdx, rsi
mov rbx, rdx
rol rbx, 0x21
add rdi, r10
add rbx, rdi
add rsi, qword [r11 + r14 - 0x20]
add rdx, rcx
add rcx, qword [r11 + r14 - 8]
lea r10, [rcx + rsi]
rol r10, 0xc
mov rax, rsi
rol rax, 0x1b
add rsi, qword [r11 + r14 - 0x18]
mov rdi, rsi
rol rdi, 0x39
add rsi, r9
add rcx, rsi
rol rsi, 0x21
add rax, rdx
add rax, rdi
add rax, r10
add rax, rsi
movabs rdx, 0x9ae16a3b2f90404f
imul rax, rdx
add rcx, rbx
imul rcx, r8
add rcx, rax
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, r8
add rax, rbx
mov r13, rax
shr r13, 0x2f
xor r13, rax
imul r13, rdx
mov r12, qword [0x1401382b8]
test r12, r12
je 0x14003a817
mov rax, r12
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rcx, r12
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 0x14003aa94
lea r15, [r12 - 1]
and r15, r13
mov rax, qword [0x1401382b0]
mov rax, qword [rax + r15*8]
test rax, rax
je 0x14003a821
mov r8, qword [rax]
test r8, r8
je 0x14003a821
lea r9, [r12 - 1]
mov qword [rbp + 0x240], r15
jmp 0x14003a74c
mov r8, qword [r8]
test r8, r8
je 0x14003a821
mov rax, qword [r8 + 8]
cmp rax, r13
je 0x14003a766
cmp ebx, 1
ja 0x14003a7bb
and rax, r9
cmp rax, r15
jne 0x14003a821
mov dl, byte [r8 + 0x27]
movzx eax, dl
mov rcx, rax
test dl, dl
jns 0x14003a778
mov rcx, qword [r8 + 0x18]
cmp rcx, r14
jne 0x14003a740
mov rdi, r13
lea rcx, [r8 + 0x10]
mov rsi, qword [rcx]
test dl, dl
cmovs rcx, rsi
js 0x14003a7ca
je 0x14003a804
cmp byte [r11], sil
mov r13, rdi
jne 0x14003a740
dec rax
xor ecx, ecx
nop
cmp rax, rcx
je 0x14003a804
movzx edx, byte [r8 + rcx + 0x11]
lea rdi, [rcx + 1]
cmp dl, byte [r11 + rcx + 1]
mov rcx, rdi
je 0x14003a7a0
jmp 0x14003a740
cmp rax, r12
jb 0x14003a75d
xor edx, edx
div r12
mov rax, rdx
jmp 0x14003a75d
test r14, r14
je 0x14003a804
mov rdx, r11
mov r13, r8
mov r8, r14
mov rsi, r11
mov r15, r14
mov r14, r9
call fcn.14007bd20
mov r9, r14
mov r14, r15
mov r15, qword [rbp + 0x240]
mov r11, rsi
mov r8, r13
test eax, eax
mov r13, rdi
jne 0x14003a740
mov rax, qword [rbp + 0x210]
mov rcx, qword [rbp + 0x238]
jmp 0x14003a914
movabs r15, 0xaaaaaaaaaaaaaaaa
mov ecx, 0x30
call fcn.140076ec8
lea rcx, [rax + 0x10]
cmp byte [rbp + 0x238], 0
mov qword [rbp + 0x240], rax
js 0x14003cb7f
mov r8, rax
mov rax, qword [rbp + 0x1e0]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rbp + 0x1d0]
movups xmmword [rcx], xmm0
mov dword [r8 + 0x28], 0
mov qword [r8 + 8], r13
mov qword [r8], 0
mov rax, qword [0x1401382c8]
add rax, 1
js 0x14003a88f
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
test r12, r12
js 0x14003a8ac
cvtsi2ss xmm1, r12
jmp 0x14003a8c4
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
test r12, r12
jns 0x14003a888
mov rax, r12
shr rax, 1
mov ecx, r12d
and ecx, 1
or rcx, rax
cvtsi2ss xmm1, rcx
addss xmm1, xmm1
movss xmm2, dword [0x1401382d0]
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x14003aa3b
test r12, r12
je 0x14003aa3b
mov rax, qword [0x1401382b0]
mov rcx, qword [rax + r15*8]
test rcx, rcx
je 0x14003aab0
mov rax, qword [rcx]
mov qword [r8], rax
mov qword [rcx], r8
add qword [0x1401382c8], 1
mov cl, byte [rbp + 0x1e7]
mov rax, qword [rbp + 0x1d0]
mov r9d, dword [r8 + 0x28]
test cl, cl
lea r8, [rbp + 0x1d0]
cmovs r8, rax
lea rdx, str._s:_e_0_3_dm
lea r13, [rbp + 0x58]
mov rcx, r13
call fcn.14003db00
movzx edi, byte [rbp + 0x6f]
test dil, dil
jns 0x14003a949
mov rdi, qword [rbp + 0x60]
mov r13, qword [rbp + 0x58]
mov rax, qword [rbp + 0x70]
movsxd r12, dword [rax + 4]
cmp dword [rbp + r12 + 0x90], 0
jne 0x14003b0bf
mov rcx, qword [rbp + r12 + 0xf8]
test rcx, rcx
jne 0x14003cb11
mov edx, dword [rbp + r12 + 0x100]
cmp edx, 0xffffffff
je 0x14003bd76
lea r14, [rdi + r13]
mov eax, 0xb0
and eax, dword [rbp + r12 + 0x78]
mov r15, r14
cmp eax, 0x20
je 0x14003a99b
mov r15, r13
mov rsi, qword [rbp + r12 + 0x98]
test rsi, rsi
je 0x14003b099
mov rax, qword [rbp + r12 + 0x88]
xor ebx, ebx
sub rax, rdi
cmovg rbx, rax
mov rdi, r15
sub rdi, r13
test rdi, rdi
jle 0x14003aa00
mov rax, qword [rsi]
mov rcx, rsi
mov qword [rbp + 0x238], rsi
mov rsi, r15
mov r15, r14
mov r14d, edx
mov rdx, r13
mov r8, rdi
call qword [rax + 0x58]
mov edx, r14d
mov r14, r15
mov r15, rsi
mov rsi, qword [rbp + 0x238]
cmp rax, rdi
jne 0x14003b099
test rbx, rbx
jle 0x14003b06f
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x230], rax
movaps xmmword [rbp + 0x220], xmm6
cmp rbx, 0x16
ja 0x14003afe9
lea r13, [rbp + 0x220]
mov byte [r13 + 0x17], bl
jmp 0x14003b01c
divss xmm0, xmm2
call fcn.1400a4cec
movss xmm7, dword [0x140114c00]
movaps xmm1, xmm0
subss xmm1, xmm7
cvttss2si rax, xmm1
movabs rcx, 0x8000000000000000
xor rcx, rax
cvttss2si rax, xmm0
ucomiss xmm0, xmm7
cmovae rax, rcx
lea rsi, [r12 + r12]
cmp r12, 2
jbe 0x14003ac36
lea rcx, [r12 - 1]
xor edx, edx
test r12, rcx
setne dl
or rsi, rdx
jmp 0x14003ac3a
mov r15, r13
cmp r13, r12
jb 0x14003a70d
mov rax, r13
xor edx, edx
div r12
mov r15, rdx
jmp 0x14003a70d
lea rcx, [0x1401382c0]
mov rdx, qword [0x1401382c0]
mov qword [r8], rdx
mov qword [0x1401382c0], r8
mov qword [rax + r15*8], rcx
mov rax, qword [r8]
test rax, rax
je 0x14003a8ff
mov rax, qword [rax + 8]
lea rcx, [r12 - 1]
test r12, rcx
jne 0x14003b256
and rax, rcx
mov rcx, qword [0x1401382b0]
mov qword [rcx + rax*8], r8
jmp 0x14003a8ff
lea rcx, [0x1401382c0]
mov rdx, qword [0x1401382c0]
mov qword [rdi], rdx
mov qword [0x1401382c0], rdi
mov qword [rax + r14*8], rcx
mov rax, qword [rdi]
test rax, rax
je 0x14003a330
mov rax, qword [rax + 8]
lea rcx, [r13 - 1]
test r13, rcx
jne 0x14003b27c
and rax, rcx
mov rcx, qword [0x1401382b0]
mov qword [rcx + rax*8], rdi
jmp 0x14003a330
mov rax, qword [r11 + r14 - 8]
lea rdx, [rax + r14]
mov ecx, r14d
ror rdx, cl
mov rcx, qword [r11]
xor rcx, rdx
movabs rbx, 0x9ddfea08eb382d69
imul rcx, rbx
mov rsi, rcx
shr rsi, 0x2f
xor rcx, rdx
xor rcx, rsi
imul rcx, rbx
mov r13, rcx
shr r13, 0x2f
xor r13, rcx
imul r13, rbx
xor r13, rax
jmp 0x14003a68f
movabs rcx, 0xb492b66fbe98f273
imul rcx, qword [r11]
lea rax, [rdx + 8]
test bl, bl
lea rdx, [rbp + 0x1d8]
cmovs rdx, rax
movabs rax, 0x9ae16a3b2f90404f
imul rax, qword [r11 + r14 - 8]
mov r8, qword [rdx]
movabs rbx, 0xc3a5c85c97cb3127
imul rbx, qword [r11 + r14 - 0x10]
movabs rsi, 0xc949d7c7509e6557
xor rsi, r8
rol rsi, 0x2c
lea rdx, [rcx + r14]
add rdx, rsi
sub rdx, rax
sub rcx, r8
rol rcx, 0x15
rol rax, 0x22
add rax, rcx
add rax, rbx
xor rax, rdx
movabs rcx, 0x9ddfea08eb382d69
imul rax, rcx
mov rbx, rax
shr rbx, 0x2f
xor rax, rdx
xor rax, rbx
imul rax, rcx
mov r13, rax
shr r13, 0x2f
xor r13, rax
imul r13, rcx
jmp 0x14003a68f
or rsi, 1
cmp rsi, rax
cmovb rsi, rax
cmp rsi, 1
mov r8, qword [rbp + 0x240]
mov qword [rbp + 0x1c0], r13
je 0x14003be18
lea rax, [rsi - 1]
test rsi, rax
je 0x14003ac74
mov rcx, rsi
call fcn.14003e54a
mov r8, qword [rbp + 0x240]
mov rsi, rax
mov rdi, qword [0x1401382b8]
cmp rsi, rdi
jbe 0x14003c2d4
mov rax, rsi
shr rax, 0x3d
jne 0x14003c997
lea rcx, [rsi*8]
call fcn.140076ec8
mov rcx, qword [0x1401382b0]
mov qword [0x1401382b0], rax
test rcx, rcx
je 0x14003acb6
call fcn.140076eb8
mov qword [0x1401382b8], rsi
lea rcx, [rsi - 1]
mov eax, esi
and eax, 3
cmp rcx, 3
mov r8, qword [rbp + 0x240]
jae 0x14003acd7
xor ecx, ecx
jmp 0x14003ad28
mov rdx, rsi
and rdx, 0xfffffffffffffffc
xor ecx, ecx
mov rbx, qword [0x1401382b0]
mov qword [rbx + rcx*8], 0
mov rbx, qword [0x1401382b0]
mov qword [rbx + rcx*8 + 8], 0
mov rbx, qword [0x1401382b0]
mov qword [rbx + rcx*8 + 0x10], 0
mov rbx, qword [0x1401382b0]
mov qword [rbx + rcx*8 + 0x18], 0
add rcx, 4
cmp rdx, rcx
jne 0x14003ace0
test rax, rax
je 0x14003ad49
nop dword [rax]
mov rdx, qword [0x1401382b0]
mov qword [rdx + rcx*8], 0
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x14003ad30
mov r9, qword [0x1401382c0]
test r9, r9
je 0x14003c2da
mov r10, qword [r9 + 8]
mov rax, rsi
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rcx, rsi
sub rcx, rax
mov rax, rcx
movabs rdx, 0x3333333333333333
and rax, rdx
shr rcx, 2
and rcx, rdx
add rcx, rax
mov r11, rcx
shr r11, 4
add r11, rcx
movabs rax, 0xf0f0f0f0f0f0f0f
and r11, rax
movabs rax, 0x101010101010101
imul r11, rax
shr r11, 0x38
cmp r11, 1
ja 0x14003b208
lea rax, [rsi - 1]
and r10, rax
mov rax, qword [0x1401382b0]
lea rcx, [0x1401382c0]
mov qword [rax + r10*8], rcx
mov rbx, qword [r9]
test rbx, rbx
je 0x14003c2da
lea r13, [rsi - 1]
mov qword [rbp + 0x1f0], rsi
mov qword [rbp + 0x208], r11
mov qword [rbp + 0x1c8], r13
jmp 0x14003ae1f
mov r9, rbx
mov rbx, qword [r9]
test rbx, rbx
je 0x14003c2da
mov rdi, qword [rbx + 8]
cmp r11d, 1
ja 0x14003af90
and rdi, r13
cmp rdi, r10
je 0x14003ae10
mov rax, qword [0x1401382b0]
cmp qword [rax + rdi*8], 0
je 0x14003afb2
mov rax, qword [rbx]
test rax, rax
je 0x14003afc1
movzx ecx, byte [rbx + 0x27]
mov qword [rbp + 0x238], rcx
mov qword [rbp + 0x210], rcx
test cl, cl
jns 0x14003ae74
mov rcx, qword [rbx + 0x18]
mov qword [rbp + 0x238], rcx
lea r15, [rbx + 0x10]
mov r14, qword [rbp + 0x210]
add r14, 0xffffffffffffffff
mov r12, rbx
jmp 0x14003ae9d
mov rax, qword [r12]
test rax, rax
je 0x14003afc9
mov rdx, r12
mov r12, rax
movzx eax, byte [rax + 0x27]
mov rcx, rax
test al, al
jns 0x14003aeb3
mov rcx, qword [r12 + 0x18]
cmp qword [rbp + 0x238], rcx
jne 0x14003afcf
mov qword [rbp + 0x200], rdx
lea rdx, [r12 + 0x10]
test al, al
jns 0x14003aed3
mov rdx, qword [rdx]
mov rax, qword [r15]
mov rcx, r15
cmp byte [rbp + 0x210], 0
cmovs rcx, rax
js 0x14003af10
je 0x14003ae90
cmp byte [rdx], al
jne 0x14003af53
xor eax, eax
nop
cmp r14, rax
je 0x14003ae90
movzx ecx, byte [rbx + rax + 0x11]
lea rsi, [rax + 1]
cmp cl, byte [rdx + rax + 1]
mov rax, rsi
je 0x14003aef0
jmp 0x14003af53
cmp qword [rbp + 0x238], 0
je 0x14003ae90
mov r8, qword [rbp + 0x238]
mov rsi, r9
mov r13, r10
call fcn.14007bd20
mov r11, qword [rbp + 0x208]
mov r10, r13
mov r13, qword [rbp + 0x1c8]
mov r9, rsi
mov r8, qword [rbp + 0x240]
test eax, eax
je 0x14003ae90
mov rsi, qword [rbp + 0x1f0]
mov rdx, qword [rbp + 0x200]
mov qword [r9], r12
mov rax, qword [0x1401382b0]
mov rax, qword [rax + rdi*8]
mov rax, qword [rax]
mov qword [rdx], rax
mov rax, qword [0x1401382b0]
mov rax, qword [rax + rdi*8]
mov qword [rax], rbx
jmp 0x14003ae13
cmp rdi, rsi
jb 0x14003ae30
mov rax, rdi
xor edx, edx
div rsi
mov rdi, rdx
cmp rdi, r10
je 0x14003ae10
jmp 0x14003ae35
mov qword [rax + rdi*8], r9
mov r9, rbx
mov r10, rdi
jmp 0x14003ae13
mov rdx, rbx
xor r12d, r12d
jmp 0x14003af61
mov rdx, r12
xor r12d, r12d
mov rsi, qword [rbp + 0x1f0]
jmp 0x14003af61
cmp r8, r13
jae 0x14003b26c
mov r14, r8
jmp 0x14003a30f
lea rdi, [rbx + 0x10]
and rdi, 0xfffffffffffffff0
mov rcx, rdi
mov r13d, edx
call fcn.140076ec8
mov edx, r13d
mov r13, rax
mov qword [rbp + 0x220], rax
bts rdi, 0x3f
mov qword [rbp + 0x230], rdi
mov qword [rbp + 0x228], rbx
mov rcx, r13
mov r8, rbx
call fcn.14007c4d0
mov byte [r13 + rbx], 0
cmp byte [rbp + 0x237], 0
jns 0x14003b03f
mov rdx, qword [rbp + 0x220]
jmp 0x14003b046
lea rdx, [rbp + 0x220]
mov rax, qword [rsi]
mov rcx, rsi
mov r8, rbx
call qword [rax + 0x58]
mov rdi, rax
cmp byte [rbp + 0x237], 0
jns 0x14003b06a
mov rcx, qword [rbp + 0x220]
call fcn.140076eb8
cmp rdi, rbx
jne 0x14003b099
sub r14, r15
test r14, r14
jle 0x14003b08b
mov rax, qword [rsi]
mov rcx, rsi
mov rdx, r15
mov r8, r14
call qword [rax + 0x58]
cmp rax, r14
jne 0x14003b099
mov qword [rbp + r12 + 0x88], 0
jmp 0x14003b0bf
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 5
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
jne 0x14003cd0e
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
cmp qword [rbp + rax + 0x98], 0
je 0x14003b0e7
cmp dword [rbp + rax + 0x90], 0
jne 0x14003b0e7
test byte [rbp + rax + 0x79], 0x20
jne 0x14003cb23
cmp byte [rbp + 0x6f], 0
mov r12, qword [rbp + 0x1f8]
jns 0x14003b0fd
mov rcx, qword [rbp + 0x58]
call fcn.140076eb8
mov r9, qword [0x140138290]
test r9, r9
je 0x14003b5a3
mov r8d, dword [rbp + 0x1bc]
movsxd rcx, r8d
mov rax, r9
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, r9
sub rdx, rax
mov rax, rdx
movabs rbx, 0x3333333333333333
and rax, rbx
shr rdx, 2
and rdx, rbx
add rdx, rax
mov rsi, rdx
shr rsi, 4
add rsi, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rsi, rax
movabs rax, 0x101010101010101
imul rsi, rax
shr rsi, 0x38
cmp rsi, 1
ja 0x14003b1f0
lea rbx, [r9 - 1]
and rbx, rcx
mov rax, qword [0x140138288]
mov rax, qword [rax + rbx*8]
test rax, rax
je 0x14003b5a3
mov rdi, qword [rax]
test rdi, rdi
je 0x14003b5a3
lea r10, [r9 - 1]
jmp 0x14003b1c6
cmp dword [rdi + 0x10], r8d
je 0x14003b292
mov rdi, qword [rdi]
test rdi, rdi
je 0x14003b5a3
mov rax, qword [rdi + 8]
cmp rax, rcx
je 0x14003b1b0
cmp esi, 1
ja 0x14003b1e1
and rax, r10
cmp rax, rbx
je 0x14003b1ba
jmp 0x14003b5a3
cmp rax, r9
jb 0x14003b1d7
xor edx, edx
div r9
mov rax, rdx
jmp 0x14003b1d7
mov rbx, rcx
cmp r9, rcx
ja 0x14003b180
mov rax, rcx
xor edx, edx
div r9
mov rbx, rdx
jmp 0x14003b180
cmp r10, rsi
jb 0x14003adca
mov rax, r10
xor edx, edx
div rsi
mov r10, rdx
jmp 0x14003adca
mov eax, dword [r11]
mov ecx, dword [r11 + r14 - 4]
shl eax, 3
add rax, r14
xor rax, rcx
movabs rdx, 0x9ddfea08eb382d69
imul rax, rdx
mov rbx, rax
shr rbx, 0x2f
xor rax, rcx
xor rax, rbx
imul rax, rdx
jmp 0x14003a681
cmp rax, r12
jb 0x14003aaed
xor edx, edx
div r12
mov rax, rdx
jmp 0x14003aaed
mov rax, r8
xor edx, edx
div r13
mov r14, rdx
jmp 0x14003a30f
cmp rax, r13
jb 0x14003ab39
xor edx, edx
div r13
mov rax, rdx
jmp 0x14003ab39
mov rcx, qword [rdi + 0x28]
mov rax, qword [rdi + 0x30]
mov r14, rax
sub r14, rcx
jae 0x14003b2ac
sub rax, rcx
add rax, qword [rdi + 0x20]
mov r14, rax
test r14, r14
je 0x14003b5a3
lea r8, [rbp + 0x220]
lea r9, [0x14011a5c4]
nop word cs:[rax + rax]
nop dword [rax]
mov rax, qword [rbp + 0x70]
movsxd r12, dword [rax + 4]
cmp dword [rbp + r12 + 0x90], 0
jne 0x14003b4b8
mov rcx, qword [rbp + r12 + 0xf8]
test rcx, rcx
jne 0x14003ca76
mov ebx, dword [rbp + r12 + 0x100]
cmp ebx, 0xffffffff
je 0x14003b4f6
mov eax, dword [rbp + r12 + 0x78]
mov ecx, 0xb0
and eax, ecx
lea r13, [0x14011a5c6]
cmp eax, 0x20
je 0x14003b324
mov r13, r9
mov rsi, qword [rbp + r12 + 0x98]
test rsi, rsi
je 0x14003b492
mov rax, qword [rbp + r12 + 0x88]
lea r15, [rax - 2]
cmp rax, 2
mov eax, 0
cmovle r15, rax
mov rdi, r13
sub rdi, r9
test rdi, rdi
jle 0x14003b37f
mov rax, qword [rsi]
mov rcx, rsi
mov rdx, r9
mov r8, rdi
call qword [rax + 0x58]
lea r9, [0x14011a5c4]
lea r8, [rbp + 0x220]
cmp rax, rdi
jne 0x14003b492
test r15, r15
jle 0x14003b453
mov qword [rbp + 0x238], r14
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x230], rax
movaps xmmword [rbp + 0x220], xmm6
cmp r15, 0x16
ja 0x14003b3bc
mov byte [rbp + 0x237], r15b
mov r14, r8
mov rdi, r8
jmp 0x14003b3f0
lea rdi, [r15 + 0x10]
and rdi, 0xfffffffffffffff0
mov rcx, rdi
call fcn.140076ec8
mov r14, rax
mov qword [rbp + 0x220], rax
bts rdi, 0x3f
mov qword [rbp + 0x230], rdi
lea rdi, [rbp + 0x220]
mov qword [rbp + 0x228], r15
mov rcx, r14
mov edx, ebx
mov r8, r15
call fcn.14007c4d0
mov byte [r14 + r15], 0
cmp byte [rbp + 0x237], 0
mov rdx, rdi
jns 0x14003b415
mov rdx, qword [rbp + 0x220]
mov rax, qword [rsi]
mov rcx, rsi
mov r8, r15
call qword [rax + 0x58]
mov rdi, rax
cmp byte [rbp + 0x237], 0
mov r14, qword [rbp + 0x238]
jns 0x14003b440
mov rcx, qword [rbp + 0x220]
call fcn.140076eb8
cmp rdi, r15
lea r8, [rbp + 0x220]
lea r9, [0x14011a5c4]
jne 0x14003b492
mov rbx, r9
sub rbx, r13
add rbx, 2
test rbx, rbx
jle 0x14003b484
mov rax, qword [rsi]
mov rcx, rsi
mov rdx, r13
mov r8, rbx
call qword [rax + 0x58]
lea r9, [0x14011a5c4]
lea r8, [rbp + 0x220]
cmp rax, rbx
jne 0x14003b492
mov qword [rbp + r12 + 0x88], 0
jmp 0x14003b4b8
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 5
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
jne 0x14003cd0e
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
cmp qword [rbp + rax + 0x98], 0
je 0x14003b4e0
cmp dword [rbp + rax + 0x90], 0
jne 0x14003b4e0
test byte [rbp + rax + 0x79], 0x20
jne 0x14003ca96
add r14, 0xffffffffffffffff
mov r12, qword [rbp + 0x1f8]
jne 0x14003b2d0
jmp 0x14003b5a3
mov rsi, qword [rbp + r12 + 0xa0]
lock inc dword [rsi + 8]
lea rax, [0x140136858]
mov qword [rbp + 0x220], rax
lea rax, [0x14002e4e0]
mov qword [rbp + 0x228], rax
mov rax, qword [0x140136858]
cmp rax, 0xffffffffffffffff
jne 0x14003cd91
movsxd rax, dword [0x140136860]
lea rdx, [rax - 1]
mov rcx, qword [rsi + 0x10]
mov rbx, qword [rsi + 0x18]
sub rbx, rcx
sar rbx, 3
cmp rbx, rdx
jbe 0x14003cb7a
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
je 0x14003cb7a
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov bl, 0x20
lea rdx, [method.std::__1::ctype_char_.virtual_56]
cmp rax, rdx
jne 0x14003cdcd
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
test eax, eax
je 0x14003c917
movsx ebx, bl
mov dword [rbp + r12 + 0x100], ebx
mov rax, qword [rbp + 0x70]
movsxd r12, dword [rax + 4]
jmp 0x14003b309
cmp byte [rbp + 0x2c], 0
jne 0x14003b5b6
lea rdx, [rbp + 0x70]
mov rcx, qword [rbp + 0x10]
call fcn.1400a68c0
mov esi, dword [rbp + 0x1b8]
cmp sil, 0x45
jne 0x14003b6f3
movabs rax, 0x8000000000000001
mov rcx, qword [rbp + 0x20]
add rax, rcx
cmp rax, 2
jb 0x14003c715
xorps xmm2, xmm2
cvtsi2sd xmm2, rcx
divsd xmm2, qword [0x1401175e8]
lea rdx, str.___.3f_ms_
lea rsi, [rbp + 0x58]
mov rcx, rsi
movq r8, xmm2
call fcn.14003db00
movzx edi, byte [rbp + 0x6f]
test dil, dil
jns 0x14003b61a
mov rdi, qword [rbp + 0x60]
mov rsi, qword [rbp + 0x58]
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
cmp dword [rbp + r14 + 0x90], 0
jne 0x14003b91b
mov rcx, qword [rbp + r14 + 0xf8]
test rcx, rcx
jne 0x14003cbc3
mov r8d, dword [rbp + r14 + 0x100]
cmp r8d, 0xffffffff
je 0x14003c0c8
lea r15, [rsi + rdi]
mov eax, 0xb0
and eax, dword [rbp + r14 + 0x78]
mov r12, r15
cmp eax, 0x20
je 0x14003b66d
mov r12, rsi
mov r13, qword [rbp + r14 + 0x98]
test r13, r13
je 0x14003b8ee
mov rax, qword [rbp + r14 + 0x88]
xor ebx, ebx
sub rax, rdi
cmovg rbx, rax
mov rdi, r12
sub rdi, rsi
test rdi, rdi
jle 0x14003b6b9
mov rax, qword [r13]
mov rcx, r13
mov rdx, rsi
mov esi, r8d
mov r8, rdi
call qword [rax + 0x58]
mov r8d, esi
cmp rax, rdi
jne 0x14003b8ee
test rbx, rbx
jle 0x14003b8bc
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x230], rax
movaps xmmword [rbp + 0x220], xmm6
cmp rbx, 0x16
ja 0x14003b7da
lea rsi, [rbp + 0x220]
mov byte [rsi + 0x17], bl
jmp 0x14003b80d
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
cmp dword [rbp + r14 + 0x90], 0
jne 0x14003bae2
mov rcx, qword [rbp + r14 + 0xf8]
test rcx, rcx
jne 0x14003cbd5
mov r15d, dword [rbp + r14 + 0x100]
cmp r15d, 0xffffffff
je 0x14003c178
mov eax, 0xb0
and eax, dword [rbp + r14 + 0x78]
cmp eax, 0x20
je 0x14003cbe7
lea r13, str.e_0_m
mov rbx, qword [rbp + r14 + 0x98]
test rbx, rbx
je 0x14003baaf
mov rax, qword [rbp + r14 + 0x88]
lea rcx, [rax - 5]
xor edi, edi
cmp rax, 5
cmovg rdi, rcx
lea r12, str.e_0_m
mov rsi, r13
sub rsi, r12
test rsi, rsi
jle 0x14003b79c
mov rax, qword [rbx]
lea rdx, str.e_0_m
mov rcx, rbx
mov r8, rsi
call qword [rax + 0x58]
cmp rax, rsi
jne 0x14003baaf
test rdi, rdi
jle 0x14003ba74
mov qword [rbp + 0x238], r13
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x230], rax
movaps xmmword [rbp + 0x220], xmm6
cmp rdi, 0x16
ja 0x14003b831
lea r13, [rbp + 0x220]
mov byte [r13 + 0x17], dil
jmp 0x14003b85e
lea rdi, [rbx + 0x10]
and rdi, 0xfffffffffffffff0
mov rcx, rdi
mov esi, r8d
call fcn.140076ec8
mov r8d, esi
mov rsi, rax
mov qword [rbp + 0x220], rax
bts rdi, 0x3f
mov qword [rbp + 0x230], rdi
mov qword [rbp + 0x228], rbx
mov rcx, rsi
mov edx, r8d
mov r8, rbx
call fcn.14007c4d0
mov byte [rsi + rbx], 0
cmp byte [rbp + 0x237], 0
jns 0x14003b88b
mov rdx, qword [rbp + 0x220]
jmp 0x14003b892
lea rsi, [rdi + 0x10]
and rsi, 0xfffffffffffffff0
mov rcx, rsi
call fcn.140076ec8
mov r13, rax
mov qword [rbp + 0x220], rax
bts rsi, 0x3f
mov qword [rbp + 0x230], rsi
mov qword [rbp + 0x228], rdi
mov rcx, r13
mov edx, r15d
mov r8, rdi
call fcn.14007c4d0
mov byte [r13 + rdi], 0
cmp byte [rbp + 0x237], 0
jns 0x14003ba3d
mov rdx, qword [rbp + 0x220]
jmp 0x14003ba44
lea rdx, [rbp + 0x220]
mov rax, qword [r13]
mov rcx, r13
mov r8, rbx
call qword [rax + 0x58]
mov rsi, rax
cmp byte [rbp + 0x237], 0
jns 0x14003b8b7
mov rcx, qword [rbp + 0x220]
call fcn.140076eb8
cmp rsi, rbx
jne 0x14003b8ee
sub r15, r12
test r15, r15
jle 0x14003b8d9
mov rax, qword [r13]
mov rcx, r13
mov rdx, r12
mov r8, r15
call qword [rax + 0x58]
cmp rax, r15
jne 0x14003b8ee
mov qword [rbp + r14 + 0x88], 0
mov r12, qword [rbp + 0x1f8]
jmp 0x14003b91b
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 5
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
mov r12, qword [rbp + 0x1f8]
jne 0x14003cd0e
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
cmp qword [rbp + rax + 0x98], 0
je 0x14003b943
cmp dword [rbp + rax + 0x90], 0
jne 0x14003b943
test byte [rbp + rax + 0x79], 0x20
jne 0x14003cbf3
cmp byte [rbp + 0x6f], 0
jns 0x14003b952
mov rcx, qword [rbp + 0x58]
call fcn.140076eb8
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
cmp dword [rbp + r14 + 0x90], 0
jne 0x14003bc87
mov rcx, qword [rbp + r14 + 0xf8]
test rcx, rcx
jne 0x14003cc4a
mov r15d, dword [rbp + r14 + 0x100]
cmp r15d, 0xffffffff
je 0x14003c226
mov eax, 0xb0
and eax, dword [rbp + r14 + 0x78]
cmp eax, 0x20
je 0x14003cc5c
lea r13, str.e_0_m
mov rbx, qword [rbp + r14 + 0x98]
test rbx, rbx
je 0x14003bc5a
mov rax, qword [rbp + r14 + 0x88]
lea rcx, [rax - 5]
xor edi, edi
cmp rax, 5
cmovg rdi, rcx
lea r12, str.e_0_m
mov rsi, r13
sub rsi, r12
test rsi, rsi
jle 0x14003b9fb
mov rax, qword [rbx]
lea rdx, str.e_0_m
mov rcx, rbx
mov r8, rsi
call qword [rax + 0x58]
cmp rax, rsi
jne 0x14003bc5a
test rdi, rdi
jle 0x14003bc25
mov qword [rbp + 0x238], r13
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rbp + 0x230], rax
movaps xmmword [rbp + 0x220], xmm6
cmp rdi, 0x16
ja 0x14003bb9b
lea r13, [rbp + 0x220]
mov byte [r13 + 0x17], dil
jmp 0x14003bbc8
lea rdx, [rbp + 0x220]
mov r13, qword [rbp + 0x238]
mov rax, qword [rbx]
mov rcx, rbx
mov r8, rdi
call qword [rax + 0x58]
mov rsi, rax
cmp byte [rbp + 0x237], 0
jns 0x14003ba6f
mov rcx, qword [rbp + 0x220]
call fcn.140076eb8
cmp rsi, rdi
jne 0x14003baaf
sub r12, r13
add r12, 5
test r12, r12
jle 0x14003ba94
mov rax, qword [rbx]
mov rcx, rbx
mov rdx, r13
mov r8, r12
call qword [rax + 0x58]
cmp rax, r12
jne 0x14003baaf
mov qword [rbp + r14 + 0x88], 0
mov r12, qword [rbp + 0x1f8]
mov esi, dword [rbp + 0x1b8]
jmp 0x14003bae2
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 5
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
mov r12, qword [rbp + 0x1f8]
mov esi, dword [rbp + 0x1b8]
jne 0x14003cd0e
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
cmp qword [rbp + rax + 0x98], 0
je 0x14003bb0a
cmp dword [rbp + rax + 0x90], 0
jne 0x14003bb0a
test byte [rbp + rax + 0x79], 0x20
jne 0x14003cc68
cmp sil, 0x42
mov r14, qword [rbp + 0x48]
jne 0x14003bcb3
lea r8, [rbp + 0x1bc]
lea r9, [rbp + 0x58]
mov qword [r9], r8
lea rcx, [0x140138288]
lea rsi, [rbp + 0x220]
mov rdx, rsi
call fcn.140002700
mov rsi, qword [rsi]
lea rcx, [rsi + 0x18]
call fcn.1400a6bd0
mov rax, qword [rsi + 0x30]
cmp qword [rsi + 0x20], rax
jb 0x14003d00b
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rbp + 0x2f8]
mov rdx, qword [rdx]
mov qword [rcx + rax*8], rdx
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x30]
lea rdx, [rax - 1]
lea rbx, [rcx + 1]
xor edi, edi
cmp rcx, rdx
cmovne rdi, rbx
mov qword [rsi + 0x30], rdi
test rdi, rdi
cmove rdi, rax
dec rdi
cmp rax, rdi
jae 0x14003bcb3
int3
lea rsi, [rdi + 0x10]
and rsi, 0xfffffffffffffff0
mov rcx, rsi
call fcn.140076ec8
mov r13, rax
mov qword [rbp + 0x220], rax
bts rsi, 0x3f
mov qword [rbp + 0x230], rsi
mov qword [rbp + 0x228], rdi
mov rcx, r13
mov edx, r15d
mov r8, rdi
call fcn.14007c4d0
mov byte [r13 + rdi], 0
cmp byte [rbp + 0x237], 0
jns 0x14003bbee
mov rdx, qword [rbp + 0x220]
jmp 0x14003bbf5
lea rdx, [rbp + 0x220]
mov r13, qword [rbp + 0x238]
mov rax, qword [rbx]
mov rcx, rbx
mov r8, rdi
call qword [rax + 0x58]
mov rsi, rax
cmp byte [rbp + 0x237], 0
jns 0x14003bc20
mov rcx, qword [rbp + 0x220]
call fcn.140076eb8
cmp rsi, rdi
jne 0x14003bc5a
sub r12, r13
add r12, 5
test r12, r12
jle 0x14003bc45
mov rax, qword [rbx]
mov rcx, rbx
mov rdx, r13
mov r8, r12
call qword [rax + 0x58]
cmp rax, r12
jne 0x14003bc5a
mov qword [rbp + r14 + 0x88], 0
mov r12, qword [rbp + 0x1f8]
jmp 0x14003bc87
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 5
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
mov r12, qword [rbp + 0x1f8]
jne 0x14003cd0e
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
cmp qword [rbp + rax + 0x98], 0
mov r14, qword [rbp + 0x48]
je 0x14003bcb3
cmp dword [rbp + rax + 0x90], 0
jne 0x14003bcb3
test byte [rbp + rax + 0x79], 0x20
jne 0x14003ccbc
lea rdx, [rbp - 0x10]
mov rcx, qword [rbp + 0x218]
call fcn.14003da38
lea rsi, [rbp + 0xe0]
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
lea rcx, [0x140113268]
mov qword [rbp + rax + 0x70], rcx
lea rdi, [rbp + 0x78]
lea rax, [0x1401135a0]
mov qword [rbp + 0x78], rax
cmp byte [rbp + 0xcf], 0
jns 0x14003bd02
mov rcx, qword [rbp + 0xb8]
call fcn.140076eb8
mov rcx, rdi
call fcn.14003d3b2
mov rcx, rdi
call fcn.14003e3a0
mov rcx, rsi
call fcn.14003d3ac
cmp byte [rbp + 0x1e7], 0
jns 0x14003bd2f
mov rcx, qword [rbp + 0x1d0]
call fcn.140076eb8
lea rcx, [0x140138168]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [rbp + 0x47], 0
jns 0x14003bd4b
mov rcx, qword [rbp + 0x30]
call fcn.140076eb8
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
movups xmm0, xmmword [rbp - 0x10]
movaps xmmword [rbp + 0x30], xmm0
test r14, r14
jne 0x140037bbc
lea rcx, [0x140138160]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140037bbc
mov r15, qword [rbp + r12 + 0xa0]
lock inc dword [r15 + 8]
lea rax, [0x140136858]
mov qword [rbp + 0x220], rax
lea rax, [0x14002e4e0]
mov qword [rbp + 0x228], rax
mov rax, qword [0x140136858]
cmp rax, 0xffffffffffffffff
jne 0x14003cde6
movsxd rax, dword [0x140136860]
lea rdx, [rax - 1]
mov rcx, qword [r15 + 0x10]
mov rbx, qword [r15 + 0x18]
sub rbx, rcx
sar rbx, 3
cmp rbx, rdx
jbe 0x14003cb7a
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
je 0x14003cb7a
mov rax, qword [rcx]
mov dl, 0x20
call qword [rax + 0x38]
mov r14d, eax
mov eax, 0xffffffff
lock xadd dword [r15 + 8], eax
test eax, eax
je 0x14003c933
movsx edx, r14b
mov dword [rbp + r12 + 0x100], edx
mov rax, qword [rbp + 0x70]
movsxd r12, dword [rax + 4]
jmp 0x14003a982
mov esi, 2
jmp 0x14003ac74
mov rax, qword [r11 + r14 - 0x28]
mov r8, qword [r11 + r14 - 0x10]
mov r9, qword [r11 + r14 - 0x38]
mov rsi, qword [r11 + r14 - 0x30]
mov r13, r11
lea r11, [r9 + r8]
mov rcx, qword [r13 + r14 - 0x18]
lea rdi, [rsi + r14]
xor rdi, rcx
movabs rdx, 0x9ddfea08eb382d69
imul rdi, rdx
mov rbx, rdi
shr rbx, 0x2f
xor rdi, rcx
xor rdi, rbx
imul rdi, rdx
mov r15, rdi
shr r15, 0x2f
xor r15, rdi
imul r15, rdx
mov rbx, qword [r13 + r14 - 0x40]
add rbx, r14
lea rdi, [rbx + rax]
add rdi, r15
rol rdi, 0x2b
add rsi, r9
add rsi, rbx
mov rdx, rsi
rol rdx, 0x14
add rdx, rbx
add rdx, rdi
add rsi, rax
mov rdi, qword [r13 + r14 - 0x20]
add rdi, r11
mov r9, qword [r13 + r14 - 8]
movabs r10, 0xb492b66fbe98f273
add rdi, r10
lea r12, [r9 + rax]
add r12, rdi
rol r12, 0x2b
add rcx, r8
add rcx, rdi
mov rbx, rcx
rol rbx, 0x14
add rbx, rdi
add rbx, r12
add rcx, r9
imul rax, r10
mov qword [rbp + 0x1f0], r13
mov rdi, qword [r13]
mov r13, r10
mov qword [rbp + 0x208], rdi
add rax, rdi
lea rdi, [r14 - 1]
and rdi, 0xffffffffffffffc0
mov qword [rbp + 0x1c0], rdi
mov r10d, 0x40
mov r9, qword [rbp + 0x1f0]
mov qword [rbp + 0x240], r15
add rax, rsi
add rax, r11
mov r12, qword [r9 + r10 - 0x38]
add r11, rdx
mov rdi, qword [r9 + r10 - 0x10]
mov qword [rbp + 0x1c8], rdi
add r11, rdi
rol r11, 0x16
mov rdi, r11
imul rdi, r13
mov r8, qword [r9 + r10 - 0x18]
add rsi, r8
mov r11, rsi
add r11, rdi
mov rsi, r13
mov r13, qword [r9 + r10 - 0x30]
add rax, r12
rol rax, 0x1b
imul rax, rsi
mov r15, rax
xor r15, rbx
mov rax, qword [rbp + 0x240]
add rax, rcx
rol rax, 0x1f
mov qword [rbp + 0x240], rax
imul rdx, rsi
add rdx, qword [rbp + 0x208]
add rcx, rdx
add r12, rdx
add r12, r13
mov rax, r12
rol rax, 0x14
add rdx, rax
mov rdi, qword [r9 + r10 - 0x28]
add rcx, rdi
add rcx, r15
rol rcx, 0x2b
add rdx, rcx
mov rsi, r12
movabs r12, 0xb492b66fbe98f273
mov rax, qword [rbp + 0x240]
imul rax, r12
add rsi, rdi
add r13, r11
add rbx, rax
mov rdi, qword [r9 + r10 - 8]
add rbx, qword [r9 + r10 - 0x20]
add r13, rdi
add r13, rbx
rol r13, 0x2b
add r8, qword [rbp + 0x1c8]
add r8, rbx
mov rcx, r8
rol rcx, 0x14
add rbx, rcx
add rbx, r13
mov rcx, r8
add rcx, rdi
mov rdi, qword [rbp + 0x1c0]
cmp rdi, r10
je 0x14003c029
mov rdi, qword [rbp + 0x1f0]
mov rdi, qword [rdi + r10]
mov qword [rbp + 0x208], rdi
add r10, 0x40
mov r13, r12
jmp 0x14003bf12
xor rdx, rbx
movabs r8, 0x9ddfea08eb382d69
imul rdx, r8
mov rdi, rdx
shr rdi, 0x2f
xor rdx, rbx
xor rdx, rdi
imul rdx, r8
mov rbx, rdx
shr rbx, 0x2f
xor rbx, rdx
imul rbx, r8
add rbx, rax
xor rsi, rcx
imul rsi, r8
mov rax, rsi
shr rax, 0x2f
xor rsi, rcx
xor rsi, rax
imul rsi, r8
mov rax, rsi
shr rax, 0x2f
xor rax, rsi
imul rax, r8
mov rcx, r11
shr rcx, 0x2f
xor rcx, r11
imul rcx, r12
add rcx, r15
add rcx, rax
xor rcx, rbx
imul rcx, r8
mov rax, rcx
shr rax, 0x2f
xor rcx, rbx
xor rcx, rax
imul rcx, r8
mov r13, rcx
shr r13, 0x2f
xor r13, rcx
imul r13, r8
mov r11, qword [rbp + 0x1f0]
jmp 0x14003a68f
mov r15, qword [rbp + r14 + 0xa0]
lock inc dword [r15 + 8]
lea rax, [0x140136858]
mov qword [rbp + 0x220], rax
lea rax, [0x14002e4e0]
mov qword [rbp + 0x228], rax
mov rax, qword [0x140136858]
cmp rax, 0xffffffffffffffff
jne 0x14003cf54
movsxd rax, dword [0x140136860]
lea rdx, [rax - 1]
mov rcx, qword [r15 + 0x10]
mov rbx, qword [r15 + 0x18]
sub rbx, rcx
sar rbx, 3
cmp rbx, rdx
jbe 0x14003cb7a
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
je 0x14003cb7a
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov r8d, 0x20
lea rdx, [method.std::__1::ctype_char_.virtual_56]
cmp rax, rdx
jne 0x14003cf84
mov eax, 0xffffffff
lock xadd dword [r15 + 8], eax
test eax, eax
je 0x14003c94e
mov dword [rbp + r14 + 0x100], r8d
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
jmp 0x14003b654
mov rsi, qword [rbp + r14 + 0xa0]
lock inc dword [rsi + 8]
lea rax, [0x140136858]
mov qword [rbp + 0x220], rax
lea rax, [0x14002e4e0]
mov qword [rbp + 0x228], rax
mov rax, qword [0x140136858]
cmp rax, 0xffffffffffffffff
jne 0x14003cf91
movsxd rax, dword [0x140136860]
lea rdx, [rax - 1]
mov rcx, qword [rsi + 0x10]
mov rbx, qword [rsi + 0x18]
sub rbx, rcx
sar rbx, 3
cmp rbx, rdx
jbe 0x14003cb7a
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
je 0x14003cb7a
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov r15d, 0x20
lea rdx, [method.std::__1::ctype_char_.virtual_56]
cmp rax, rdx
jne 0x14003cfc1
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
test eax, eax
je 0x14003c962
mov dword [rbp + r14 + 0x100], r15d
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
jmp 0x14003b72d
mov rsi, qword [rbp + r14 + 0xa0]
lock inc dword [rsi + 8]
lea rax, [0x140136858]
mov qword [rbp + 0x220], rax
lea rax, [0x14002e4e0]
mov qword [rbp + 0x228], rax
mov rax, qword [0x140136858]
cmp rax, 0xffffffffffffffff
jne 0x14003cfce
movsxd rax, dword [0x140136860]
lea rdx, [rax - 1]
mov rcx, qword [rsi + 0x10]
mov rbx, qword [rsi + 0x18]
sub rbx, rcx
sar rbx, 3
cmp rbx, rdx
jbe 0x14003cb7a
mov rcx, qword [rcx + rax*8 - 8]
test rcx, rcx
je 0x14003cb7a
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov r15d, 0x20
lea rdx, [method.std::__1::ctype_char_.virtual_56]
cmp rax, rdx
jne 0x14003cffe
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
test eax, eax
je 0x14003c970
mov dword [rbp + r14 + 0x100], r15d
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
jmp 0x14003b98c
jb 0x14003d00e
mov r12, qword [0x1401382b8]
lea rax, [r12 - 1]
test r12, rax
jne 0x14003c2fc
lea r15, [r12 - 1]
and r15, qword [rbp + 0x1c0]
jmp 0x14003a8e2
mov r15, qword [rbp + 0x1c0]
cmp r15, r12
jb 0x14003a8e2
mov rax, r15
xor edx, edx
div r12
mov r15, rdx
jmp 0x14003a8e2
mov rbx, rdi
jmp 0x1400399e0
or rdx, 1
cmp rdx, rax
cmovb rdx, rax
lea rcx, [0x140138288]
call fcn.1400a6d60
mov rbx, qword [0x140138290]
lea r15, [rbx - 1]
test rbx, r15
jne 0x14003c353
and r15, r14
jmp 0x140038a6e
cmp rbx, r14
jbe 0x14003c430
mov r15, r14
jmp 0x140038a6e
or rdx, 1
cmp rdx, rax
cmovb rdx, rax
lea rcx, [0x140138288]
call fcn.1400a6d60
mov rdi, qword [0x140138290]
lea r15, [rdi - 1]
test rdi, r15
jne 0x14003c393
and r15, r14
jmp 0x140038c41
cmp rdi, r14
jbe 0x14003c440
mov r15, r14
jmp 0x140038c41
mov rcx, qword [0x140137780]
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 0x14003c400
cmp rax, rcx
je 0x14003d164
sar rcx, 0x3f
movabs rax, 0x8000000000000000
add rax, rcx
jmp 0x14003c41c
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.14003f460
jmp 0x14003819c
mov rax, r14
xor edx, edx
div rbx
mov r15, rdx
jmp 0x140038a6e
mov rax, r14
xor edx, edx
div rdi
mov r15, rdx
jmp 0x140038c41
xor eax, eax
jmp 0x140038002
mov rcx, qword [0x140137780]
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 [0x1401382f0]
movabs rdx, 0x8000000000000001
add rdx, rcx
cmp rdx, 2
jae 0x14003c4b3
cmp rax, rcx
je 0x14003d28d
sar rcx, 0x3f
movabs rax, 0x8000000000000000
add rax, rcx
jmp 0x14003c4cf
xor edx, edx
cmp rax, rcx
setns dl
movabs rbx, 0x7fffffffffffffff
add rbx, rdx
sub rax, rcx
cmovo rax, rbx
mov qword [0x1401382d8], rax
lea rcx, [0x140138158]
call fcn.14003f460
jmp 0x140037e1d
lea rcx, [0x140136840]
call fcn.140076f64
cmp dword [0x140136840], 0xffffffff
jne 0x14003a467
call fcn.14005fb68
mov rax, qword [rax]
mov qword [0x140136830], rax
lea rcx, [0x140136830]
lock inc dword [rax + 8]
mov qword [0x140136838], rcx
lea rcx, [0x140136840]
call fcn.140076f04
jmp 0x14003a467
cmp byte [rsi], 0
je 0x140037547
mov rdi, qword [0x1401384f8]
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c99c
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, [0x140138168]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14003c8f2
lea rcx, [0x140138260]
lea rdi, [rbp + 0x70]
lea r14, [rbp - 0x10]
mov rdx, rdi
mov r8, r14
call fcn.1400beff0
mov rax, qword [rdi]
test rax, rax
jne 0x14003d290
lea rax, [rbp + 0x58]
mov qword [rax], r14
lea rcx, [rbp + 0x1a8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea rcx, [0x140138260]
lea r9, [0x14011a650]
lea rdi, [rbp + 0x70]
mov rdx, rdi
mov r8, r14
call fcn.1400672ca
mov rcx, qword [rdi]
add rcx, 0x18
mov rdx, rsi
call fcn.1400448f8
lea rcx, [0x140138168]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140037547
lea rcx, [0x140138500]
call fcn.140076f64
cmp dword [0x140138500], 0xffffffff
jne 0x140037504
mov ecx, 8
call fcn.140076ec8
mov rdi, rax
mov qword [rax], 0
mov rcx, rax
xor edx, edx
call fcn.14003f000
mov qword [0x1401384f8], rdi
lea rcx, [0x140138500]
call fcn.140076f04
jmp 0x140037504
lea rsi, [0x14011f192]
jmp 0x1400374db
lea rcx, [0x14013d410]
call fcn.140076f64
cmp dword [0x14013d410], 0xffffffff
jne 0x14003774e
mov qword [0x14013d408], 0
lea rcx, [0x14013d408]
xor edx, edx
call fcn.14003f000
lea rcx, [0x14013d410]
call fcn.140076f04
jmp 0x14003774e
call fcn.140006d10
jmp 0x14003756f
movabs r15, 0x9ae16a3b2f90404f
jmp 0x14003873d
movabs r13, 0x9ae16a3b2f90404f
jmp 0x14003a68f
lea rcx, [0x14013bca8]
call fcn.1400498e0
test al, al
je 0x14003c9b9
mov qword [0x14013bcb0], 0
lea rdi, [0x14013bca8]
lea rsi, [0x14013bcb0]
mov rcx, rsi
xor edx, edx
call fcn.14003f000
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.1400498c0
jmp 0x14003779b
shr rcx, 0x3f
lea rax, [0x1401175f0]
movsd xmm2, qword [rax + rcx*8]
jmp 0x14003b5f1
movabs rsi, 0x9ae16a3b2f90404f
jmp 0x1400390e4
lea rcx, [0x14013bb80]
call fcn.140076f64
cmp dword [0x14013bb80], 0xffffffff
jne 0x14003749d
lea rcx, [0x14013bb78]
xor edx, edx
call fcn.14003f000
lea rcx, [0x14013bb80]
call fcn.140076f04
jmp 0x14003749d
lea rcx, [0x14013bb88]
call fcn.1400498e0
test al, al
je 0x14003c97e
mov ecx, pe_nt_image_headers64
call fcn.140076ec8
mov rsi, rax
mov rcx, rax
call fcn.1400b34c0
lea rcx, [0x14013bb88]
mov rdx, rsi
xor r8d, r8d
xor r9d, r9d
call fcn.1400498c0
jmp 0x140037478
lea rcx, [0x140137750]
call fcn.140076f64
cmp dword [0x140137750], 0xffffffff
jne 0x1400373eb
mov r14d, esi
mov edi, ebx
lea rsi, [rbp + 0x70]
mov rcx, rsi
call fcn.1400b8610
mov bl, byte [rsi + 0x2e]
cmp byte [rsi + 0x5f], 0
jns 0x14003c7f3
mov rcx, qword [rbp + 0xb8]
call fcn.140076eb8
cmp byte [rbp + 0xb7], 0
js 0x14003d35b
mov byte [0x14013774c], bl
lea rcx, [0x140137750]
call fcn.140076f04
mov ebx, edi
mov esi, r14d
jmp 0x1400373eb
lea rcx, [0x140138168]
call fcn.14003e480
jmp 0x14003820a
lea rcx, [0x1401384e8]
call fcn.140076f64
cmp dword [0x1401384e8], 0xffffffff
jne 0x1400373a6
lea rcx, [0x140138158]
call fcn.1400bf5c0
lea rcx, [0x1401384e8]
call fcn.140076f04
jmp 0x1400373a6
lea rcx, [0x140138160]
call fcn.14003e480
jmp 0x140037d51
mov rcx, rsi
call fcn.14003e480
jmp 0x140038126
mov rcx, rsi
call fcn.1400b7e60
mov rcx, rsi
call fcn.140076eb8
mov ecx, 0x30
call fcn.140076ec8
mov rsi, rax
mov rcx, rax
call fcn.1400a73d0
mov ecx, dword [0x140134758]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14003c9a6
movsxd rcx, dword [0x140138448]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x14013844c]
movsxd rdx, dword [0x140138448]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
jmp 0x140037812
mov rcx, rsi
call fcn.14003e480
jmp 0x1400376a2
lea rcx, [0x140138168]
call fcn.14003e480
jmp 0x14003c586
mov rax, qword [rdi]
mov rcx, rdi
mov esi, r8d
call qword [rax + 8]
mov r8d, esi
jmp 0x1400380bd
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
lea r9, [0x14011a5c4]
lea r8, [rbp + 0x220]
jmp 0x14003b58b
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 8]
jmp 0x14003bdff
mov rcx, rbx
call rax
mov rax, qword [rbx]
jmp 0x14003c3ca
mov rax, qword [r15]
mov rcx, r15
mov ebx, r8d
call qword [rax + 8]
mov r8d, ebx
jmp 0x14003c163
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
jmp 0x14003c211
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
jmp 0x14003c2bf
mov rax, qword [0x14013bb88]
jmp 0x140037478
mov rcx, rsi
call rax
mov rax, qword [rsi]
jmp 0x14003c47d
call fcn.1400771f0
call fcn.140006d10
jmp 0x14003c558
test rsi, rsi
je 0x140037812
call fcn.140006d10
jmp 0x14003c8bc
mov rsi, qword [0x14013bca8]
jmp 0x14003779b
xor esi, esi
jmp 0x1400374d2
xor eax, eax
jmp 0x140037539
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.1400eca80
jmp 0x140037559
xor r14d, r14d
jmp 0x140037847
call fcn.1400c6528
mov rax, qword [rbp + 0x80]
movsxd r14, dword [rax + 4]
jmp 0x140037c6e
call fcn.1400c8715
test al, al
jne 0x140037f94
mov rax, qword [rbp + 0x80]
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax + 0xa8]
mov rax, qword [rcx]
call qword [rax + 0x28]
cmp eax, 0xffffffff
jne 0x140037f94
mov rax, qword [rbp + 0x80]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0xa0]
or ecx, 1
mov dword [rbp + rax + 0xa0], ecx
test dword [rbp + rax + 0xa4], ecx
je 0x140037f94
jmp 0x14003cd0e
int3
call fcn.1400c6528
lea r9, [0x14011a5c4]
lea r8, [rbp + 0x220]
mov rax, qword [rbp + 0x70]
movsxd r12, dword [rax + 4]
jmp 0x14003b2f8
call fcn.1400c8715
lea r9, [0x14011a5c4]
lea r8, [rbp + 0x220]
test al, al
jne 0x14003b4e0
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax + 0x98]
mov rax, qword [rcx]
call qword [rax + 0x28]
lea r9, [0x14011a5c4]
lea r8, [rbp + 0x220]
cmp eax, 0xffffffff
jne 0x14003b4e0
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 1
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
je 0x14003b4e0
jmp 0x14003cd0e
and rax, r8
jmp 0x1400399ff
call fcn.1400c6528
mov rax, qword [rbp + 0x70]
movsxd r12, dword [rax + 4]
jmp 0x14003a971
call fcn.1400c8715
test al, al
jne 0x14003b0e7
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax + 0x98]
mov rax, qword [rcx]
call qword [rax + 0x28]
cmp eax, 0xffffffff
jne 0x14003b0e7
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 1
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
je 0x14003b0e7
jmp 0x14003cd0e
call fcn.1400c86e2
mov rdx, qword [rbp + 0x210]
mov r8, qword [rbp + 0x200]
call fcn.14004b062
mov r8, qword [rbp + 0x240]
jmp 0x14003a85b
mov rdx, qword [rbp + 0x210]
mov r8, qword [rbp + 0x200]
call fcn.14004b062
mov rax, qword [0x1401382c8]
jmp 0x14003928d
int3
int3
call fcn.1400c6528
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
jmp 0x14003b642
call fcn.1400c6528
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
jmp 0x14003b71b
lea r13, [0x14011a5d7]
jmp 0x14003b747
call fcn.1400c8715
test al, al
jne 0x14003b943
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax + 0x98]
mov rax, qword [rcx]
call qword [rax + 0x28]
cmp eax, 0xffffffff
jne 0x14003b943
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 1
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
je 0x14003b943
jmp 0x14003cd0e
call fcn.1400c6528
mov rax, qword [rbp + 0x70]
movsxd r14, dword [rax + 4]
jmp 0x14003b97a
lea r13, [0x14011a5d7]
jmp 0x14003b9a6
call fcn.1400c8715
test al, al
jne 0x14003bb0a
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax + 0x98]
mov rax, qword [rcx]
call qword [rax + 0x28]
cmp eax, 0xffffffff
jne 0x14003bb0a
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 1
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
je 0x14003bb0a
jmp 0x14003cd0e
call fcn.1400c8715
test al, al
jne 0x14003bcb3
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax + 0x98]
mov rax, qword [rcx]
call qword [rax + 0x28]
cmp eax, 0xffffffff
jne 0x14003bcb3
mov rax, qword [rbp + 0x70]
movsxd rax, dword [rax + 4]
mov ecx, dword [rbp + rax + 0x90]
or ecx, 1
mov dword [rbp + rax + 0x90], ecx
test dword [rbp + rax + 0x94], ecx
je 0x14003bcb3
lea rcx, str.ios_base::clear
call fcn.1400cc8b5
lea rcx, [rbp + 0x1d0]
call fcn.1400ac2dc
int3
lea rax, [rbp + 0x220]
lea rcx, [rbp + 0x1d0]
mov qword [rcx], rax
lea rdx, [rbp + 0x58]
mov qword [rdx], rcx
lea rcx, [0x140136858]
lea r8, [0x140076890]
call fcn.14004dcff
jmp 0x14003805d
mov dl, 0x20
call rax
movsx r8d, al
jmp 0x1400380ab
jae 0x14003cf1f
mov rax, qword [0x140138278]
test rax, rax
js 0x14003ce16
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x14003ce2e
and r11, r8
jmp 0x1400399c0
mov qword [rbp + 0x58], r8
lea rax, [rbp + 0x58]
mov qword [rbp + 0x1a8], rax
lea rcx, [0x140136858]
lea rdx, [rbp + 0x1a8]
lea r8, [0x140076890]
call fcn.14004dcff
lea r9, [0x14011a5c4]
lea r8, [rbp + 0x220]
jmp 0x14003b52f
mov dl, 0x20
call rax
lea r9, [0x14011a5c4]
lea r8, [rbp + 0x220]
mov ebx, eax
jmp 0x14003b579
lea rax, [rbp + 0x220]
lea rcx, [rbp + 0x1a8]
mov qword [rcx], rax
lea rdx, [rbp + 8]
mov qword [rdx], rcx
lea rcx, [0x140136858]
lea r8, [0x140076890]
call fcn.14004dcff
jmp 0x14003bdb0
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [0x140138280]
call fcn.1400a4cec
cvttss2si rcx, xmm0
movaps xmm1, xmm0
subss xmm1, xmm7
cvttss2si rax, xmm1
btc rax, 0x3f
ucomiss xmm0, xmm7
cmovb rax, rcx
cmp rdi, 3
jb 0x14003cedb
mov rcx, rdi
shr rcx, 1
movabs rdx, 0x5555555555555555
and rcx, rdx
mov rdx, rdi
sub rdx, rcx
mov rcx, rdx
shr rcx, 2
movabs rbx, 0x3333333333333333
and rdx, rbx
and rcx, rbx
add rcx, rdx
mov rdx, rcx
shr rdx, 4
add rdx, rcx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rdx, rcx
movabs rcx, 0x101010101010101
imul rdx, rcx
shr rdx, 0x38
cmp edx, 1
ja 0x14003cedb
cmp rax, 2
jb 0x14003cee3
dec rax
bsr rcx, rax
xor ecx, 0x3f
neg cl
mov eax, 1
shl rax, cl
jmp 0x14003cee3
mov rcx, rax
call fcn.14003e54a
cmp r15, rax
cmovb r15, rax
cmp r15, rdi
jae 0x14003cf1f
test r15, r15
jne 0x140038e91
mov rcx, qword [0x140138260]
mov qword [0x140138260], 0
test rcx, rcx
je 0x14003cf14
call fcn.140076eb8
mov qword [0x140138268], 0
mov rdi, qword [0x140138268]
lea rbx, [rdi - 1]
test rdi, rbx
je 0x14003cf4c
cmp rdi, r14
jbe 0x14003cf3c
mov rbx, r14
jmp 0x140038487
mov rax, r14
xor edx, edx
div rdi
mov rbx, rdx
jmp 0x140038487
and rbx, r14
jmp 0x140038487
lea rax, [rbp + 0x220]
lea rcx, [rbp + 0x1a8]
mov qword [rcx], rax
lea rdx, [rbp + 8]
mov qword [rdx], rcx
lea rcx, [0x140136858]
lea r8, [0x140076890]
call fcn.14004dcff
jmp 0x14003c102
mov dl, 0x20
call rax
movsx r8d, al
jmp 0x14003c150
lea rax, [rbp + 0x220]
lea rcx, [rbp + 0x58]
mov qword [rcx], rax
lea rdx, [rbp + 0x1a8]
mov qword [rdx], rcx
lea rcx, [0x140136858]
lea r8, [0x140076890]
call fcn.14004dcff
jmp 0x14003c1b1
mov dl, 0x20
call rax
movsx r15d, al
jmp 0x14003c1ff
lea rax, [rbp + 0x220]
lea rcx, [rbp + 0x58]
mov qword [rcx], rax
lea rdx, [rbp + 0x1a8]
mov qword [rdx], rcx
lea rcx, [0x140136858]
lea r8, [0x140076890]
call fcn.14004dcff
jmp 0x14003c25f
mov dl, 0x20
call rax
movsx r15d, al
jmp 0x14003c2ad
int3
mov rax, qword [0x1401382c8]
test rax, rax
js 0x14003d044
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x14003d05c
mov r14, r15
mov rax, qword [0x1401382c8]
test rax, rax
js 0x14003d167
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x14003d17f
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [0x1401382d0]
call fcn.1400a4cec
cvttss2si rcx, xmm0
movaps xmm1, xmm0
subss xmm1, xmm7
cvttss2si rax, xmm1
btc rax, 0x3f
ucomiss xmm0, xmm7
cmovb rax, rcx
cmp rdi, 3
jb 0x14003d109
mov rcx, rdi
shr rcx, 1
movabs rdx, 0x5555555555555555
and rcx, rdx
mov rdx, rdi
sub rdx, rcx
mov rcx, rdx
shr rcx, 2
movabs rbx, 0x3333333333333333
and rdx, rbx
and rcx, rbx
add rcx, rdx
mov rdx, rcx
shr rdx, 4
add rdx, rcx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rdx, rcx
movabs rcx, 0x101010101010101
imul rdx, rcx
shr rdx, 0x38
cmp edx, 1
ja 0x14003d109
cmp rax, 2
jb 0x14003d111
dec rax
bsr rcx, rax
xor ecx, 0x3f
neg cl
mov eax, 1
shl rax, cl
jmp 0x14003d111
mov rcx, rax
call fcn.14003e54a
cmp rsi, rax
cmovb rsi, rax
cmp rsi, rdi
mov r8, qword [rbp + 0x240]
jae 0x14003c2da
test rsi, rsi
jne 0x14003ac84
mov rcx, qword [0x1401382b0]
mov qword [0x1401382b0], 0
test rcx, rcx
je 0x14003d14d
call fcn.140076eb8
mov qword [0x1401382b8], 0
mov r8, qword [rbp + 0x240]
jmp 0x14003c2da
int3
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [0x1401382d0]
call fcn.1400a4cec
cvttss2si rcx, xmm0
movaps xmm1, xmm0
subss xmm1, xmm7
cvttss2si rax, xmm1
btc rax, 0x3f
ucomiss xmm0, xmm7
cmovb rax, rcx
cmp rdi, 3
jb 0x14003d22c
mov rcx, rdi
shr rcx, 1
movabs rdx, 0x5555555555555555
and rcx, rdx
mov rdx, rdi
sub rdx, rcx
mov rcx, rdx
shr rcx, 2
movabs rbx, 0x3333333333333333
and rdx, rbx
and rcx, rbx
add rcx, rdx
mov rdx, rcx
shr rdx, 4
add rdx, rcx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rdx, rcx
movabs rcx, 0x101010101010101
imul rdx, rcx
shr rdx, 0x38
cmp edx, 1
ja 0x14003d22c
cmp rax, 2
jb 0x14003d234
dec rax
bsr rcx, rax
xor ecx, 0x3f
neg cl
mov eax, 1
shl rax, cl
jmp 0x14003d234
mov rcx, rax
call fcn.14003e54a
cmp rsi, rax
cmovb rsi, rax
cmp rsi, rdi
mov r15, r14
mov r8, qword [rbp + 0x240]
jae 0x14003a2f4
test rsi, rsi
jne 0x1400394cc
mov rcx, qword [0x1401382b0]
mov qword [0x1401382b0], 0
test rcx, rcx
je 0x14003d273
call fcn.140076eb8
mov qword [0x1401382b8], 0
mov r15, r14
mov r8, qword [rbp + 0x240]
jmp 0x14003a2f4
int3
mov r14d, ebx
movabs rcx, 0xaaaaaaaaaaaaaaaa
lea rbx, [rbp + 0x70]
mov qword [rbx + 0x10], rcx
movaps xmm0, xmmword [0x1401146a0]
movaps xmmword [rbx], xmm0
lea rcx, [0x140114a14]
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.14000fa50
mov rdx, qword [rbx]
mov rbx, qword [rbx + 8]
lea r13, [rbp + 0x58]
lea r9, [rbp + 0x30]
mov rcx, r13
mov r8, rbx
call fcn.1400eca10
cmp qword [r13], rbx
je 0x14003d33a
mov rcx, qword [rbp + 0x70]
test rcx, rcx
je 0x14003d332
mov qword [rbp + 0x78], rcx
call fcn.140076eb8
mov ebx, r14d
jmp 0x14003c5f0
mov rax, qword [rbp + 0x70]
cmp rax, qword [rbp + 0x78]
je 0x14003d34e
mov rcx, r15
mov dl, 0x2c
call fcn.140031be2
mov rcx, r15
mov rdx, rsi
call fcn.140067d0e
jmp 0x14003d320
mov rcx, qword [rbp + 0xa0]
call fcn.140076eb8
jmp 0x14003c800