Function at 0x18007fdb0
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x218]
sub rsp, 0x2e0
mov qword [rbp + 0x78], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
movaps xmmword [rax - 0x48], xmm10
movaps xmmword [rax - 0x58], xmm11
movaps xmmword [rax - 0x68], xmm12
movaps xmmword [rax - 0x78], xmm13
movaps xmmword [rax - 0x88], xmm14
mov rax, qword [0x180136320]
xor rax, rsp
mov qword [rbp + 0x180], rax
movapd xmm14, xmm3
mov ebx, r8d
mov rsi, rdx
mov r12, rcx
mov dword [rsp + 0x68], ebx
mov r13d, dword [rbp + 0x248]
xor r14d, r14d
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 0xc]
call fcn.1800a1130
mov qword [rbp - 0x30], rax
mov rcx, rax
call qword [0x18013ae90]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], 0xc
mov dword [rax], ebx
mov rax, qword [rbp - 0x28]
mov dword [rax + 4], r14d
mov rax, qword [rbp - 0x28]
mov dword [rax + 8], r14d
mov rbx, qword [0x1801298f8]
test rbx, rbx
jne 0x18007fe91
lea ecx, [rbx + 4]
call fcn.180034390
mov rbx, rax
test rax, rax
je 0x18007fe87
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbx], eax
jmp 0x18007fe8a
mov rbx, r14
mov qword [0x1801298f8], rbx
mov ecx, dword [rbx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx r8d, word [r12 + 0x10]
lea rdx, [rbp - 0x60]
mov rcx, rax
call fcn.18007eed0
nop
mov rbx, qword [0x1801298f8]
test rbx, rbx
jne 0x18007fedc
lea ecx, [rbx + 4]
call fcn.180034390
mov rbx, rax
test rax, rax
je 0x18007fed2
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbx], eax
jmp 0x18007fed5
mov rbx, r14
mov qword [0x1801298f8], rbx
mov ecx, dword [rbx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ebx, word [r12 + 0x10]
lea rdx, [rbp + 0x18]
mov rcx, rax
call fcn.180060ac0
mov rcx, rax
mov r8d, ebx
lea rdx, [rbp + 0x168]
call fcn.18007c290
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x18007ff18
mov rax, r14
jmp 0x18007ff1b
mov rax, qword [rax]
mov rdx, qword [rdx + 0x10]
mov rcx, rdx
shr rcx, 1
and edx, 1
mov r8, qword [rax + 0x10]
cmp r8, rcx
ja 0x18007ff34
sub rcx, r8
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8]
mov rdx, qword [rcx + rdx*8]
add rdx, 0x20
lea rcx, [rsp + 0x78]
call fcn.180078080
test r13b, 4
setg byte [rsp + 0x60]
mov edi, r13d
shr edi, 1
and edi, 1
lea rdx, [rsp + 0x70]
mov rcx, qword [rbp - 0x60]
call qword [0x18013b4d0]
test rax, rax
je 0x18007ff7c
mov rcx, rax
call fcn.1800a01b0
int3
lea rdx, [rsp + 0x68]
cmp dword [rsp + 0x70], 4
jne 0x18007ffdc
lea rcx, [rsp + 0x70]
call fcn.1800786a0
movsxd r8, dword [rsp + 0x70]
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x60]
call fcn.180033bd0
nop
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x68]
mov rcx, qword [rax]
call qword [0x18013b5d8]
test rax, rax
je 0x18007ffc6
mov rcx, rax
call fcn.1800a01b0
int3
movzx ebx, word [rsp + 0x70]
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x18007fffe
call qword [0x18013b070]
jmp 0x18007fffe
lea r8, [rsp + 0x70]
mov rcx, qword [rbp - 0x60]
call qword [0x18013b5d8]
test rax, rax
je 0x18007fff9
mov rcx, rax
call fcn.1800a01b0
int3
movzx ebx, word [rsp + 0x70]
movzx eax, bx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsd qword [rsp + 0x20], xmm1
xorpd xmm3, xmm3
movapd xmm2, xmm3
lea rcx, [rbp]
call fcn.180078050
mov r15, qword [rbp]
mov qword [rbp + 0x168], r15
mov rax, qword [rbp + 8]
mov qword [rbp + 0x170], rax
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x178], rax
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x50], r14
mov qword [rbp + 0x58], r14
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], r14
mov qword [rbp + 0x40], r14
mov qword [rsp + 0x70], r14
mov qword [rbp + 0x60], r14
mov dword [rbp + 0x68], 0xf
mov qword [rbp + 0x70], r14
mov rbx, qword [0x1801298f8]
test rbx, rbx
jne 0x18008009d
lea ecx, [rbx + 4]
call fcn.180034390
mov rbx, rax
test rax, rax
je 0x180080093
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbx], eax
jmp 0x180080096
mov rbx, r14
mov qword [0x1801298f8], rbx
mov ecx, dword [rbx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ebx, word [r12 + 0x10]
lea rdx, [rbp + 0x18]
mov rcx, rax
call fcn.180060ac0
mov rcx, rax
mov r8d, ebx
lea rdx, [rbp - 0x18]
call fcn.18007c290
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x1800800d6
mov rax, r14
jmp 0x1800800d9
mov rax, qword [rax]
mov rdx, qword [rdx + 0x10]
mov rcx, rdx
shr rcx, 1
and edx, 1
mov r8, qword [rax + 0x10]
cmp r8, rcx
ja 0x1800800f2
sub rcx, r8
mov rax, qword [rax + 8]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + rdx*8]
mov r14, qword [rax + 0x50]
mov rbx, qword [0x1801298f8]
test rbx, rbx
jne 0x180080131
lea ecx, [rbx + 4]
call fcn.180034390
mov rbx, rax
test rax, rax
je 0x180080128
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbx], eax
jmp 0x18008012a
xor ebx, ebx
mov qword [0x1801298f8], rbx
mov ecx, dword [rbx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ebx, word [r12 + 0x10]
lea rdx, [rbp + 0xf8]
mov rcx, rax
call fcn.180060ac0
mov rcx, rax
mov r8d, ebx
lea rdx, [rbp + 0xe0]
call fcn.18007c290
mov rdx, rax
mov rax, qword [rax]
xor r12d, r12d
test rax, rax
jne 0x180080173
mov eax, r12d
jmp 0x180080176
mov rax, qword [rax]
mov rdx, qword [rdx + 0x10]
mov rcx, rdx
shr rcx, 1
and edx, 1
mov r8, qword [rax + 0x10]
cmp r8, rcx
ja 0x18008018f
sub rcx, r8
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx + rdx*8]
add rax, 0x38
lea rcx, [rbp + 0x60]
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x50], 2
lea rcx, [rbp + 0x48]
mov qword [rsp + 0x48], rcx
lea rcx, [rbp + 0x30]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rax
movzx eax, byte [rsp + 0x60]
mov byte [rsp + 0x20], al
lea r9, [rsp + 0x70]
lea r8, [rbp - 0x30]
lea rdx, [rbp + 0x168]
lea rcx, [rbp - 0x60]
call fcn.1800a3be0
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1800a0550
nop
mov r8, qword [0x180136090]
mov rdx, qword [rbp - 0x40]
lea rcx, [0x180136070]
call fcn.18002b030
mov rbx, rax
test rax, rax
jne 0x180080223
call fcn.18009fae0
mov qword [rbp - 0x38], rbx
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x180080238
call qword [0x18013b070]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [0x18013ae88]
test rcx, rcx
je 0x180080256
test rax, rax
je 0x180080256
call rax
mov rax, qword [0x18013ae88]
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x180080266
test rax, rax
je 0x180080266
call rax
call fcn.18009c840
xor edx, edx
mov ecx, 0x400
call qword [rax]
mov rdx, rax
lea rcx, [rbp + 0x80]
call fcn.1800a0550
nop
lea rcx, [rbp + 0x80]
call fcn.180078c20
nop
movss xmm13, dword [0x1800d8c38]
movss dword [rbp + 0x138], xmm13
xorps xmm12, xmm12
movss dword [rbp + 0x13c], xmm12
movss dword [rbp + 0x140], xmm12
movss dword [rbp + 0x144], xmm13
movss dword [rbp + 0x148], xmm12
movss dword [rbp + 0x14c], xmm12
mov dword [rbp + 0x128], 0x80000000
mov dword [rbp + 0x12c], 0x80000000
mov dword [rbp + 0x130], 0x7fffffff
mov dword [rbp + 0x134], 0x7fffffff
test r13b, 1
lea rdx, [rbp + 0x138]
cmove rdx, r12
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x80]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rbp + 0x128]
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x38]
call qword [rax + 0x60]
test rax, rax
je 0x180080347
mov rcx, rax
call fcn.1800a01b0
int3
mov rdx, qword [rbp + 0x90]
mov rax, qword [rbp + 0xa0]
mov rcx, qword [rax]
sub rcx, qword [rdx]
sar rcx, 2
mov qword [rbp - 0x50], rcx
mov rax, qword [rbp + 0x88]
mov rcx, qword [rax]
mov qword [rbp - 0x48], rcx
mov rax, qword [rdx]
mov qword [rbp - 0x58], rax
lea rcx, [rbp - 0x18]
call fcn.18005f8d0
mov qword [rbp - 0x10], r12
lea rax, [rbp - 0x18]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x40], 0x40000000
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 0
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], r12
xor r9d, r9d
mov r8, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
call fcn.18009d430
mov rdx, rax
mov r8b, 1
lea rcx, [rbp - 0x70]
call fcn.18009d3c0
nop
call fcn.18009c7d0
mov qword [rbp - 0x68], rax
lea rcx, [rbp - 0x18]
call fcn.18009fa80
mov qword [rbp + 0x18], r15
mov rax, qword [rbp + 8]
mov qword [rbp + 0x20], rax
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x28], rax
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0x18]
call fcn.180032710
movss xmm11, dword [rbp - 0x78]
movaps xmm10, xmm11
mulss xmm10, dword [rbp + 0x114]
movss xmm1, dword [rbp - 0x74]
movaps xmm0, xmm1
mulss xmm0, dword [rbp + 0x11c]
addss xmm10, xmm0
addss xmm10, dword [rbp + 0x124]
mulss xmm11, dword [rbp + 0x110]
mulss xmm1, dword [rbp + 0x118]
addss xmm11, xmm1
addss xmm11, dword [rbp + 0x120]
movss xmm5, dword [rbp - 0x80]
movaps xmm4, xmm5
mulss xmm4, dword [rbp + 0x114]
movss xmm1, dword [rbp - 0x7c]
movaps xmm0, xmm1
mulss xmm0, dword [rbp + 0x11c]
addss xmm4, xmm0
mulss xmm5, dword [rbp + 0x110]
mulss xmm1, dword [rbp + 0x118]
addss xmm5, xmm1
movss xmm2, dword [rsp + 0x78]
movaps xmm3, xmm2
mulss xmm3, dword [rbp + 0x114]
movss xmm1, dword [rsp + 0x7c]
movaps xmm0, xmm1
mulss xmm0, dword [rbp + 0x11c]
addss xmm3, xmm0
mulss xmm2, dword [rbp + 0x110]
mulss xmm1, dword [rbp + 0x118]
addss xmm2, xmm1
movss dword [rsp + 0x78], xmm2
movss dword [rsp + 0x7c], xmm3
movss dword [rbp - 0x80], xmm5
movss dword [rbp - 0x7c], xmm4
movss dword [rbp - 0x78], xmm11
movss dword [rbp - 0x74], xmm10
mov rax, qword [rsp + 0x78]
mov qword [rbp + 0x110], rax
mov rax, qword [rbp - 0x80]
mov qword [rbp + 0x118], rax
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x120], rax
lea r8, [rbp + 0x110]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x70]
call fcn.180038c90
mov rbx, rax
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.1800a0580
mov r11, qword [rsp + 0x68]
mov rcx, qword [rbp - 0x70]
mov qword [rsp + 0x68], rcx
mov qword [rbp - 0x70], r11
lea rcx, [rsp + 0x68]
call fcn.18009fa80
mov r11, qword [rbx + 8]
mov qword [rbp - 0x68], r11
lea rcx, [rsp + 0x78]
call fcn.18009fa80
movss dword [rbp + 0x150], xmm13
movss dword [rbp + 0x154], xmm12
movss dword [rbp + 0x158], xmm12
movss dword [rbp + 0x15c], xmm13
cvtsd2ss xmm0, xmm14
movss dword [rbp + 0x160], xmm0
cvtsd2ss xmm1, qword [rbp + 0x240]
movss dword [rbp + 0x164], xmm1
lea r8, [rbp + 0x150]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x70]
call fcn.180038c90
mov rbx, rax
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.1800a0580
mov r11, qword [rsp + 0x68]
mov rcx, qword [rbp - 0x70]
mov qword [rsp + 0x68], rcx
mov qword [rbp - 0x70], r11
lea rcx, [rsp + 0x68]
call fcn.18009fa80
mov r11, qword [rbx + 8]
mov qword [rbp - 0x68], r11
lea rcx, [rsp + 0x78]
call fcn.18009fa80
mov r11, qword [rsi]
mov rcx, rsi
call qword [r11 + 8]
lea r11, [rsp + 0x68]
mov qword [rsp + 0x20], r11
lea r9, [rbp - 0x58]
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x50]
mov rcx, qword [rbp - 0x70]
mov rax, qword [rbp - 0x68]
call qword [rax + 0x20]
test rax, rax
je 0x18008062a
mov rcx, rax
call fcn.1800a01b0
int3
mov rdi, qword [rbp - 0x48]
mov rax, qword [rbp - 0x50]
lea r13, [rdi + rax*8]
mov r12, qword [rbp - 0x58]
cmp rdi, r13
jae 0x1800806db
mov ecx, dword [r12]
test ecx, ecx
je 0x1800806b8
dec ecx
je 0x1800806a4
dec ecx
je 0x180080662
dec ecx
jne 0x1800806ca
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x1800806ca
mov rax, qword [rsi]
movss xmm0, dword [rdi + 0x14]
movss dword [rsp + 0x30], xmm0
movss xmm2, dword [rdi + 0x10]
movss dword [rsp + 0x28], xmm2
movss xmm0, dword [rdi + 0xc]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [rdi + 8]
movss xmm2, dword [rdi + 4]
movss xmm1, dword [rdi]
mov rcx, rsi
call qword [rax + 0x28]
add rdi, 0x10
add r12, 8
jmp 0x1800806ca
mov rax, qword [rsi]
movss xmm2, dword [rdi + 4]
movss xmm1, dword [rdi]
mov rcx, rsi
call qword [rax + 0x20]
jmp 0x1800806ca
mov rax, qword [rsi]
movss xmm2, dword [rdi + 4]
movss xmm1, dword [rdi]
mov rcx, rsi
call qword [rax + 0x18]
add rdi, 8
add r12, 4
cmp rdi, r13
jb 0x180080643
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
nop
lea rcx, [rbp - 0x70]
call fcn.18009fa80
nop
lea rcx, [rbp + 0x80]
call fcn.18009fa80
nop
lea rcx, [rbp - 0x40]
call fcn.18009fa80
nop
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x180080716
call qword [0x18013b070]
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x18008072d
mov rax, qword [0x18013ae88]
test rax, rax
je 0x18008072d
call rax
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.1800a6020
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x58]
movaps xmm10, xmmword [r11 - 0x10]
movaps xmm11, xmmword [r11 - 0x20]
movaps xmm12, xmmword [r11 - 0x30]
movaps xmm13, xmmword [r11 - 0x40]
movaps xmm14, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret