Function at 0x140048070
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x88
mov qword [rsp + 0x80], rcx
cmp qword [rcx], 0
jle 0x140048493
mov rax, qword [rsp + 0x80]
add rax, 8
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x50], rdx
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov rcx, rax
add rcx, 8
imul rdx, rdx, 0x28
add rcx, rdx
add rcx, 0x10
mov rcx, qword [rcx]
mov qword [rsp + 0x60], rcx
cmp rcx, 0
mov qword [rsp + 0x68], rax
je 0x140048133
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
mov qword [rsp + 0x68], rax
jne 0x140048133
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x60]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x48], rax
mov ecx, dword [0x1402a9f08]
xor ecx, 0x17724950
mov edx, dword [0x1402a9f0c]
mov eax, 0x64e25a36
xor eax, 0x9b1da5c9
xor edx, eax
mov eax, ecx
xor eax, edx
and eax, ecx
xor eax, 0xaf52346
imul eax, eax, 0xa56f1a74
add eax, 0xdd751236
mov ecx, 0xa57bf205
xor ecx, 0x68252427
cmp eax, ecx
ja 0x1400484d6
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov eax, dword [0x1402a9f10]
mov r9d, dword [0x1402a9f14]
mov r10d, eax
xor r10d, r9d
mov r8d, 0xabff47eb
xor r8d, 0x5400b814
xor r10d, r8d
mov r8d, r9d
and r8d, r10d
shl r8d, 1
sub r8d, r9d
sub eax, r8d
mov r8d, eax
and r8d, 0x32050655
xor eax, 0x32050655
or r8d, eax
mov eax, 0x355b1d98
xor eax, 0x355b1d98
sub eax, r8d
mov r8d, 0xbe4ea633
xor r8d, 0xbe4ea633
mov r9d, 0xa7c6200b
xor r9d, 0x97f9cd75
sub r8d, r9d
add eax, r8d
mov edi, 0x9d04f0f5
xor edi, 0x9d04f0f5
sub edi, eax
mov r8d, edi
xor r8d, 0xffffffff
mov r10d, 0xb7951c5b
xor r10d, 0x481b3d72
mov eax, 0xbb754dac
xor eax, 0x448ab253
xor r10d, eax
mov r9d, 0xffffffff
xor r9d, 0x73ba1107
mov r11d, 0xfc24d755
xor r11d, 0x8f9ec652
mov eax, r8d
and eax, r11d
and edi, r9d
mov r11d, r10d
and r11d, 0x73ba1107
mov esi, r9d
and esi, 0xff8e2129
or eax, edi
or r11d, esi
xor eax, r11d
or r8d, r10d
mov r10d, 0x48e99dd9
xor r10d, 0xb7166226
xor r8d, r10d
or r9d, 0x73ba1107
and r8d, r9d
or eax, r8d
add rcx, 8
imul rdx, rdx, 0x28
add rcx, rdx
add rcx, 0x20
mov rcx, qword [rcx]
mov qword [rsp + 0x38], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x47], cl
cmp eax, 0x16afe35d
je 0x140048184
mov al, byte [rsp + 0x47]
test al, 1
jne 0x140048454
jmp 0x1400482ca
mov rcx, qword [rsp + 0x38]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0xd8cd9b263321d87f
movabs rdx, 0xd8cd9b263321d87f
xor rcx, rdx
cmp rax, rcx
jne 0x140048454
mov eax, dword [0x1402a9f18]
mov r8d, dword [0x1402a9f1c]
xor r8d, 0x25cfa091
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov ecx, 0x27dff64e
xor ecx, 0xd82009b1
mov r9d, r8d
xor r9d, ecx
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x285d93e2
xor ecx, 0xffffffff
and ecx, 0x285d93e2
shl ecx, 1
sub ecx, 0x285d93e2
sub eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xdfaae779
mov r8d, 0xffffffff
xor r8d, 0xdfaae779
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xdfaae779
mov r8d, 0x5c88f3f0
xor r8d, 0x83221489
or eax, r8d
imul eax, edx
add eax, ecx
mov r8d, 0xffffffff
xor r8d, 0x49761c37
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x49761c37
or eax, 0x49761c37
imul eax, edx
add eax, ecx
cmp eax, 0x31b9780f
je 0x1400484df
mov eax, dword [0x1402a9f20]
xor edx, edx
div dword [0x1402a9f24]
mov ecx, 0xb6a84327
xor ecx, 0xe0d28736
xor edx, edx
div ecx
add eax, 0x1dac9bf4
add eax, 0x22daf9a3
mov ecx, 0xc2547249
xor ecx, 0xdff8e9bd
sub eax, ecx
mov ecx, 0xf3c5d6d6
xor edx, edx
div ecx
mov dword [rsp + 0x34], eax
mov eax, 0xb77d796
xor eax, 0xdfbbff67
mov dword [rsp + 0x30], eax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x38]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
mov ecx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
cmp eax, ecx
ja 0x1400484df
jmp 0x140048454
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x50]
mov rax, rdx
and rax, 1
movabs r8, 0xcb1c1869aa601875
movabs r9, 0xcb1c1869aa601874
xor r8, r9
or rdx, r8
add rax, rdx
cmp rax, qword [rcx]
mov qword [rsp + 0x78], rax
jl 0x1400480a3
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 8]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x1400484cb
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x28]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
nop
add rsp, 0x88
pop rdi
pop rsi
ret
enter 0x38b, 0x34
jmp 0x140048184
loop 0x140048538
mov ebp, dword [rcx - 0x11417]
dec dword [rax - 0x7d]
in al, dx
cmp byte [rax - 0x77], cl
and al, 0x28
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
call fcn.140279bc4
mov rax, qword [rsp + 0x30]
cmp byte [rax + 0x60], 0
jne 0x140048525
mov rcx, qword [rsp + 0x28]
call fcn.140279be9
nop
add rsp, 0x38
ret
mov qword [rsp + 0x48], rcx
mov r8, qword [rcx]
mov rax, r8
add rax, 0xffffffffffffffff
mov qword [rsp + 0x50], rax
mov rcx, rax
or rcx, rcx
xor rcx, 0xffffffffffffffff
movabs r9, 0xb5b7b17474c1623
movabs rdx, 0xf4a484e8b8b3e9dc
xor r9, rdx
mov rdx, r8
xor rdx, r9
movabs r10, 0x70eb09efb1665561
movabs r9, 0x8f14f6104e99aa9e
xor r10, r9
mov r9, r8
xor r9, r10
and rdx, r9
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rcx, rdx
mov rdx, rax
or rdx, r8
movabs r8, 0x4bcb39514aedb5f
movabs r9, 0xfb434c6aeb5124a0
xor r8, r9
xor rdx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0x2b10b37f22fc6c1c
movabs r8, 0x2b10b37f22fc6c1c
xor rdx, r8
cmp rcx, rdx
setl cl
movabs rdx, 0xdccf5ab74f7e09d3
movabs r8, 0x2330a548b081f62c
xor rdx, r8
cmp rax, rdx
setg al
and al, cl
test al, 1
jne 0x14004862b
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
add rcx, 8
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
jmp 0x140048724
mov eax, dword [0x1402a9f28]
mov ecx, dword [0x1402a9f2c]
xor ecx, 0x76bee041
xor edx, edx
div ecx
mov ecx, 0xbe52ebf9
xor ecx, 0xdbb4aa4b
xor eax, ecx
or eax, 0x509f3750
mov ecx, 0xcee482a6
xor ecx, 0x82f4cf12
xor edx, edx
div ecx
cmp eax, 0xa85c8f69
je 0x1400487da
mov r8d, dword [0x1402a9f30]
imul r8d, dword [0x1402a9f34]
mov eax, 0xa7a69ce2
xor eax, 0x907d0a03
add r8d, eax
mov eax, 0x70e95221
xor eax, 0x5d9812f3
mov ecx, 0xf967f170
xor ecx, 0x6980e8f
xor eax, ecx
add r8d, eax
add r8d, 1
mov eax, 0x7a83ff91
xor eax, 0x857c006e
mov ecx, r8d
xor ecx, eax
mov eax, 0x2db6f435
xor eax, 0xf4c95237
and eax, ecx
mov edx, 0xffffffff
xor edx, 0xd97fa602
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0x6d3d5302
mov r9d, 0xce44d6f6
xor r9d, 0x173b70f4
and ecx, r9d
and edx, 0x6d3d5302
or eax, r8d
or ecx, edx
xor eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, 0xea7c5934
xor eax, 0x1a4c2df8
mov dword [rsp + 0x28], eax
call fcn.14000ee80
mov ecx, dword [rsp + 0x28]
mov eax, dword [rsp + 0x2c]
cmp eax, ecx
jae 0x14004866d
jmp 0x1400487d5
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
cmp rax, rcx
jl 0x1400487c8
mov rax, qword [rsp + 0x20]
cmp rax, 0
jl 0x14004875e
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x48]
cmp rax, qword [rcx]
jl 0x14004876b
mov rcx, rdx
call fcn.140025e55
jmp 0x1400487d5
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
shl rcx, 4
lea rcx, [rax + rcx + 8]
call 0x1400484e8
mov rcx, qword [rsp + 0x20]
mov rax, rcx
dec rax
mov rdx, rax
xor rdx, rcx
sets r8b
test rcx, rcx
setne cl
sete dl
or dl, r8b
add cl, dl
inc cl
test cl, 1
mov qword [rsp + 0x38], rax
jne 0x1400487be
jmp 0x140048724
call fcn.14000ee80
jmp 0x1400487d5
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov qword [rax], rcx
add rsp, 0x58
ret
or esi, esp
sub al, 0x8e
jmp 0x14004866d