Function at 0x140031800
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rcx
cmp rdx, 1
jge 0x140031836
mov rax, qword [rsp + 0x48]
mov qword [rax], 0
mov qword [rax + 8], 0
jmp 0x140031bd7
mov rcx, qword [rsp + 0x40]
movabs rdx, 0x2a8a0b1025fd202e
mov rax, rcx
add rax, rdx
movabs rdx, 0x5fd032d9658b2a09
movabs r8, 0x5fd032d9658b2a08
xor rdx, r8
add rax, rdx
movabs rdx, 0x2a8a0b1025fd202e
sub rax, rdx
movabs rdx, 0xe08d984aad6d744f
movabs r8, 0x1f7267b552928bb0
xor rdx, r8
xor rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x1400319e6
mov ecx, dword [0x1402a94f8]
xor ecx, 0xdcc3a706
or ecx, dword [0x1402a94fc]
xor ecx, 0x7d2b9c77
and ecx, 0x42c1e86f
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov edx, 0x73101bd2
xor edx, 0xecd874ab
mov r8d, 0x76442dc9
xor r8d, 0x89bbd236
xor edx, r8d
mov r8d, 0xffffffff
xor r8d, 0x9fc86f79
and edx, r8d
mov r8d, 0xfcb264c6
xor r8d, 0x34d9b39
xor eax, r8d
xor edx, 0xffffffff
and eax, edx
xor ecx, 0xffffffff
mov edx, 0x1e0f456
xor edx, 0x9e289b2f
mov r8d, 0xfc948bb6
xor r8d, 0x36b7449
xor edx, r8d
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0x2adebe69
xor ecx, 0xb3b8f90c
cmp eax, ecx
je 0x140031d06
mov ecx, dword [0x1402a9500]
xor ecx, 0x90bf5a0c
add ecx, dword [0x1402a9504]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
mov edx, 0xca14e9e9
xor edx, 0x1ec03264
and eax, edx
mov edx, 0x5e2083f5
xor edx, 0xa1df7c0a
xor eax, edx
mov edx, 0xee6118d6
xor edx, 0x3ab5c35b
mov r8d, 0x1dbe594c
xor r8d, 0xe241a6b3
xor edx, r8d
mov r8d, 0xffffffff
xor r8d, 0xd4d4db8d
or edx, r8d
and ecx, edx
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
mov ecx, eax
and ecx, 0x94a31fb7
shl ecx, 1
add eax, 0x94a31fb7
sub eax, ecx
add eax, 0x904db6f1
mov dword [rsp + 0x3c], eax
mov eax, 0xa3582ae0
xor eax, 0xc72b23f8
mov dword [rsp + 0x38], eax
call fcn.14000ee80
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x3c]
cmp eax, ecx
jb 0x140031936
jmp 0x140031bd7
mov r8, qword [rsp + 0x40]
movabs rcx, 0x533ba618878579dc
movabs rax, 0x533ba618878579d5
xor rcx, rax
mov rax, r8
add rax, rcx
mov qword [rsp + 0x30], rax
movabs rdx, 0x5c58d8545c6288b7
movabs rcx, 0xa3a727aba39d7749
xor rdx, rcx
movabs rcx, 0x83fa6129105121d1
movabs r9, 0x7c059ed6efaede2e
xor rcx, r9
xor rdx, rcx
and rdx, r8
xor r8, 0xffffffffffffffff
movabs rcx, 0xbb03e350b806a8b6
movabs r9, 0x44fc1caf47f95748
xor rcx, r9
and rcx, r8
sub rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x140031a79
call fcn.14000ee80
jmp 0x140031bd7
mov ecx, dword [0x1402a9508]
xor ecx, 0x37766f7b
mov edx, dword [0x1402a950c]
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov ecx, eax
and ecx, 0xe8dc0aa5
xor ecx, 0xffffffff
add eax, 0xe8dc0aa5
add eax, 1
add eax, ecx
and eax, 0x267e3752
add eax, 0x1b4f85fd
add eax, 0xb9bacb1
mov ecx, 0x1fe56d63
xor ecx, 0x4aae89e
sub eax, ecx
cmp eax, 0x7b54df3d
jae 0x140031d0f
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x1402a9510]
mov r9d, dword [0x1402a9514]
mov edx, 0x9c006798
xor edx, 0x63ff9867
mov r8d, r9d
xor r8d, edx
mov edx, eax
and edx, r8d
mov r8d, eax
xor r8d, r9d
add eax, r8d
sub eax, edx
mov edx, 0x58f98e26
xor edx, 0x4a1bf156
or eax, edx
mov r8d, 0xffffffff
xor r8d, 0x74d8774b
mov edx, eax
and edx, r8d
mov r8d, eax
xor r8d, 0x74d8774b
add eax, r8d
sub eax, edx
mov r8d, 0xffffffff
xor r8d, 0xc3eb9dad
mov edx, eax
and edx, r8d
mov r8d, eax
xor r8d, 0xc3eb9dad
add eax, r8d
sub eax, edx
cmp rcx, 0
setl cl
mov byte [rsp + 0x2f], cl
cmp eax, 0xc4a295f8
jbe 0x140031d0f
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x140031b78
jmp 0x140031b88
mov rcx, r8
mov rdx, r8
call fcn.140018506
jmp 0x140031bd7
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x30]
mov rcx, rax
add rcx, 0x68
call fcn.140013e80
mov rdx, qword [rsp + 0x40]
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov qword [rcx], rdx
mov byte [rcx + 8], 0
movabs rdx, 0xa2daf9a59df149a3
movabs r8, 0xa2daf9a59df149a3
xor rdx, r8
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov ecx, dword [0x1402a9518]
mov r8d, dword [0x1402a951c]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov edx, r8d
xor edx, 0xffffffff
or eax, edx
mov edx, r8d
xor edx, 0xffffffff
xor r8d, 0xffffffff
or edx, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x1fcf5ee9
mov r8d, 0x887cb4f6
xor r8d, 0x97b3ea1f
mov ecx, 0x67e4786e
xor ecx, 0x981b8791
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xff301279
xor r8d, 0xe0ff4c90
mov edx, eax
and edx, r8d
mov r8d, 0x31d9a516
xor r8d, 0x2e16fbff
or eax, r8d
imul eax, edx
add eax, ecx
and eax, 0x5cbf2cdc
mov ecx, 0x25fd5dad
xor edx, edx
div ecx
cmp eax, 0x690bb691
je 0x140031d18
mov eax, dword [0x1402a9520]
mov ecx, dword [0x1402a9524]
mov edx, 0x3c1dfe37
xor edx, 0xc3e201c8
xor ecx, edx
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0x295fb6f7
xor ecx, 0x75f0cfbc
xor eax, ecx
mov ecx, 0x919074b9
xor ecx, 0x9f75263c
mov edx, 0xaa654ec6
xor edx, 0x559ab139
xor ecx, edx
mov edx, 0xc4151b0
xor edx, 0xc4151b0
mov r8d, 0xce38bac7
xor r8d, 0xce38bac6
sub edx, r8d
sub ecx, edx
sub eax, ecx
xor eax, 0x1f9859d9
cmp eax, 0x918aa69d
je 0x140031d18
mov rax, qword [rsp + 0x50]
add rsp, 0x58
ret
jb 0x140031d47
adc r9b, r13b
invalid
mov edx, 0xe93d2890
mov bh, 0xfd
invalid
ret 0xb1dc
mov qword [rsp + 0xb0], rcx
xor eax, eax
test r8, r8
cmovg rax, r8
mov qword [rsp + 0xb8], rax
mov rcx, qword [rdx]
movabs r8, 0x736b8cf67cdef112
movabs rdx, 0x8c94730983210eed
xor r8, rdx
mov rdx, rcx
add rdx, r8
cmp rcx, r9
cmovg rdx, r9
movabs rcx, 0xb9f323e3f6abe1bb
movabs r8, 0xb9f323e3f6abe1bb
xor rcx, r8
sub rcx, rax
mov rax, rdx
add rax, rcx
mov qword [rsp + 0xc0], rax
movabs r8, 0x650e7c86c3ce6b0e
movabs rcx, 0x9af183793c3194f1
xor r8, rcx
mov rcx, rax
xor rcx, r8
movabs r9, 0xe8cb739d996f884e
movabs r8, 0x17348c62669077b1
xor r9, r8
mov r8, rax
xor r8, r9
or rcx, r8
xor rcx, 0xffffffffffffffff
mov r8, rdx
xor r8, 0xffffffffffffffff
or rcx, r8
mov r8, rdx
xor r8, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or r8, rdx
mov rdx, rax
and rdx, r8
xor rdx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
movabs r8, 0xf73af0cb67c012f5
movabs r9, 0x8c50f34983fed0a
xor r8, r9
xor rdx, r8
or rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x140031e50
jmp 0x140031e5a
call fcn.14000ee80
jmp 0x1400321a4
mov rdx, qword [rsp + 0xc0]
mov rax, rdx
add rax, 1
mov qword [rsp + 0x98], rax
movabs rcx, 0x6fc3352498eb7f4
movabs r8, 0xf903ccadb671480b
xor rcx, r8
xor rdx, rcx
mov rcx, rax
add rcx, 1
movabs r8, 0x74ffab3ab0667901
movabs r9, 0x8b0054c54f9986fe
xor r8, r9
xor rax, r8
or rax, rdx
add rax, rcx
cmp rax, 0
jge 0x140031ec6
call fcn.14000ee80
jmp 0x1400321a4
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x98]
xor edx, edx
test rax, rax
cmovg rdx, rax
mov qword [rsp + 0x90], rdx
call fcn.140031020
mov rax, qword [rsp + 0xc0]
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
ja 0x1400321a4
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xa0]
mov r8, rax
add r8, 8
mov qword [rsp + 0x68], r8
add rcx, 8
mov qword [rsp + 0x70], rcx
mov rcx, rdx
sub rcx, 2
mov ecx, 1
cmovae rcx, rdx
mov qword [rsp + 0x78], rcx
mov rcx, qword [rax]
xor eax, eax
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rcx
cmp rax, rcx
jl 0x140031f8e
mov rcx, rdx
call fcn.140025e55
jmp 0x1400321a4
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx]
mov qword [rsp + 0x48], rcx
cmp rcx, 0
mov qword [rsp + 0x50], rax
je 0x14003209e
mov eax, dword [0x1402a9528]
xor eax, dword [0x1402a952c]
mov ecx, eax
and ecx, 0xc89a7197
shl ecx, 1
xor eax, 0xc89a7197
add eax, ecx
add eax, 0x6cf41380
sub eax, 0x2cade7cc
cmp eax, 0xf9d33a56
jae 0x1400321b4
mov rcx, qword [rsp + 0x48]
mov eax, dword [0x1402a9530]
mov r9d, dword [0x1402a9534]
xor r9d, 0xe7c81e3
mov r8d, r9d
xor r8d, 0xffffffff
mov edx, eax
and edx, r8d
mov r8d, eax
xor r8d, r9d
add eax, r8d
sub eax, edx
mov edx, 0xb6f2b602
xor edx, 0x32eb4975
add eax, edx
mov r8d, 0xafd243e7
xor edx, edx
div r8d
xor eax, 0xe29f8beb
mov rdx, qword [rcx]
mov r8, 0xffffffffffffffff
movabs rcx, 0x4000000000000000
xor r8, rcx
mov rcx, rdx
xor rcx, r8
and rcx, rdx
cmp rcx, 0
sete cl
mov byte [rsp + 0x47], cl
cmp eax, 0x5a2e9d58
je 0x140031fe2
mov rax, qword [rsp + 0x60]
mov cl, byte [rsp + 0x47]
test cl, 1
mov qword [rsp + 0x50], rax
jne 0x14003209e
jmp 0x140032081
mov rcx, qword [rsp + 0xa8]
call fcn.140027e50
mov rax, qword [rsp + 0xa8]
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov qword [rsp + 0x30], r8
add rax, rdx
mov qword [rsp + 0x38], rax
cmp rax, qword [rcx]
jl 0x140032159
mov eax, dword [0x1402a9538]
and eax, dword [0x1402a953c]
mov ecx, eax
xor ecx, 0xbce0fc02
mov edx, 0xffffffff
xor edx, 0xbce0fc02
and eax, edx
shl eax, 1
sub eax, ecx
xor eax, 0xa553090c
imul eax, eax, 0x8f877cca
cmp eax, 0xfa5954bc
ja 0x1400321bd
mov eax, dword [0x1402a9540]
xor eax, 0x544ebf87
mov ecx, dword [0x1402a9544]
mov edx, 0xafa0877f
xor edx, 0x4c2a876e
xor ecx, edx
xor eax, ecx
xor eax, 0x5f2ed1ee
or eax, 0x55b4826
or eax, 0x40e3da4
mov dword [rsp + 0x2c], eax
mov rcx, rdx
call fcn.140025e55
mov eax, dword [rsp + 0x2c]
cmp eax, 0x6938e9a7
jbe 0x14003210a
jmp 0x1400321a4
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
mov r10, qword [rsp + 0x38]
mov r9, qword [rsp + 0x70]
mov r9, qword [r9]
mov r9b, byte [r9 + r10 + 8]
mov r8, qword [r8]
mov byte [r8 + rax + 8], r9b
add rax, 1
cmp rax, rdx
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
jne 0x140031f5e
mov rax, qword [rsp + 0xb0]
add rsp, 0xc8
ret
mov cl, 0x2e
mov eax, 0xfffe25e9
jmp qword [rdx]
and dh, byte [rax + 0x44e9a854]
invalid