Function at 0x14001ace0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x110
mov qword [rsp + 0xe8], r8
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], rcx
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0xf8]
add rax, 0x60
mov qword [rsp + 0x100], rax
mov rcx, qword [rcx]
mov qword [rsp + 0x108], rcx
movabs rdx, 0x69e48b012624b96e
movabs rax, 0x69e48b012624b96d
xor rdx, rax
mov rax, rcx
and rax, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
movabs rdx, 0x11e0a5ed5e7e7d80
movabs r8, 0x11e0a5ed5e7e7d83
xor rdx, r8
movabs r8, 0xe756ae7269d1b4a4
movabs r9, 0x18a9518d962e4b5b
xor r8, r9
xor rdx, r8
or rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
movabs rcx, 0x9503b16644b247b5
movabs rdx, 0x9503b16644b247b4
xor rcx, rdx
cmp rax, rcx
je 0x14001baaf
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf8]
mov r8, qword [rsp + 0x108]
mov rdx, r8
xor rdx, 0xffffffffffffffff
movabs r9, 0xff890a8281a44cd9
movabs r10, 0x76f57d7e5bb325
xor r9, r10
movabs r10, 0xf91e756606701739
movabs r11, 0x6e18a99f98fe8c6
xor r10, r11
xor r9, r10
or rdx, r9
and r8, 0xfffffffffffffffc
movabs r9, 0xaebbf995b2353709
movabs r10, 0x5144066a4dcac8f6
xor r9, r10
xor r8, r9
and rdx, r8
xor rdx, 0xffffffffffffffff
or rdx, 1
mov qword [rcx], rdx
mov rcx, rax
add rcx, 0x38
mov qword [rsp + 0xd8], rcx
mov r9, qword [rax + 0x38]
xor eax, eax
mov ecx, eax
sub rcx, 1
mov rax, r9
sub rax, rcx
mov qword [rsp + 0xe0], rax
mov rcx, r9
xor rcx, 0xffffffffffffffff
movabs rdx, 0xc749ea3c50fc25af
movabs r8, 0x3516e36fc8b73851
xor rdx, r8
and rdx, rcx
mov r8, 0xffffffffffffffff
movabs rcx, 0xf25f0953984b1dfe
xor r8, rcx
and r9, r8
mov rcx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
movabs r10, 0x280cfe682682bc1d
movabs r11, 0xda53f73bbec9a1e3
xor r10, r11
and rcx, r10
and r8, 0xffffffffffffffff
or rdx, r9
or rcx, r8
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
movabs rcx, 0x782bb69efac5115a
movabs rdx, 0x782bb69efac5115a
xor rcx, rdx
cmp rax, rcx
jl 0x14001b98c
mov rdx, qword [rsp + 0x108]
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xe0]
mov qword [rax], rcx
sar rdx, 4
xor eax, eax
sub rax, 1
mov rcx, rdx
sub rcx, rax
mov qword [rsp + 0xd0], rcx
movabs r8, 0x1222de8d548a5e62
movabs rax, 0xeddd2172ab75a19d
xor r8, rax
mov rax, rdx
and rax, r8
shl rax, 1
movabs r8, 0xb1897eb7075eaa5c
movabs r9, 0x4e768148f8a155a3
xor r8, r9
add rdx, r8
sub rdx, rax
movabs rax, 0x8c378bee9c33dfbe
movabs r8, 0x73c8741163cc2041
xor rax, r8
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jl 0x14001b98c
mov r8, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xe8]
mov rcx, rax
add rcx, 0x48
mov qword [rsp + 0xc0], rcx
mov rdx, qword [rax + 0x48]
mov rcx, rdx
add rcx, r8
mov qword [rsp + 0xc8], rcx
mov rax, rcx
xor rax, rdx
mov r9, rcx
xor r9, r8
xor r9, 0xffffffffffffffff
mov rdx, r8
and rdx, r9
shl rdx, 1
sub rdx, r8
sub rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0x5cdd267867f44e21
xor rdx, r8
or rax, rcx
movabs rcx, 0x88f730e233f76609
movabs r8, 0xd42a169a54032828
xor rcx, r8
or rcx, rdx
movabs rdx, 0x81da75f0af021a60
movabs r8, 0x7e258a0f50fde59f
xor rdx, r8
xor rax, rdx
and rax, rcx
cmp rax, 0
jl 0x14001b98c
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
mov qword [rax], rcx
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0xf0]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xb8], rax
cmp rax, 0
je 0x14001b0c1
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf8]
movabs r9, 0x6807c980defa8cff
movabs r8, 0x6807c980defa8cef
xor r9, r8
mov r8, rcx
and r8, r9
shl r8, 1
xor rcx, 0x10
add rcx, r8
call rax
mov rax, qword [rsp + 0x100]
cmp byte [rax], 0
jne 0x14001baaf
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
mov qword [rsp + 0xb0], rax
movabs rcx, 0x8972208b1c10572a
movabs rdx, 0x8972208b1c10572a
xor rcx, rdx
cmp rax, rcx
jle 0x14001baaf
mov eax, dword [0x140272d68]
and eax, dword [0x140272d6c]
or eax, 0x7b8fd5f5
mov ecx, 0x3ede6550
xor edx, edx
div ecx
mov ecx, 0x9805cf25
xor edx, edx
div ecx
cmp eax, 0xc8b20a69
jae 0x14001baba
mov rcx, qword [rsp + 0xe8]
mov eax, dword [str.ke:]
xor eax, 0x8445b550
mov r8d, dword [0x140272d74]
xor r8d, 0x6711595f
xor edx, edx
div r8d
add eax, 0x3aa75d19
add eax, 0x1396ce56
sub eax, 0x3aa75d19
mov edx, 0x84904999
xor edx, 0x7b6fb666
mov r8d, eax
xor r8d, edx
and r8d, 0x231067ba
mov r9d, 0xc8b96997
xor r9d, 0xeba90e2d
mov edx, 0xf7061383
xor edx, 0x8f9ec7c
xor r9d, edx
mov edx, eax
and edx, r9d
imul edx, r8d
mov r9d, 0x87374eda
xor r9d, 0xa4272960
mov r8d, eax
and r8d, r9d
mov r9d, 0xdaeca0da
xor r9d, 0xf9fcc760
or eax, r9d
imul eax, r8d
add eax, edx
sub eax, 0x9e21c9f4
mov rdx, rcx
add rdx, 0x40
mov qword [rsp + 0xa0], rdx
add rcx, 0x10
mov qword [rsp + 0xa8], rcx
cmp eax, 0x78cce0a2
jbe 0x14001baba
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x98], rax
jmp 0x14001b20d
mov rcx, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x98]
dec rdx
mov r8, qword [rax]
mov r9, rdx
shl r9, 4
mov rax, qword [r8 + r9]
mov r8, qword [r8 + r9 + 8]
mov qword [rsp + 0x70], r8
mov qword [rcx], rdx
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
mov rcx, rax
add rcx, 0xfffffffffffffff0
mov qword [rsp + 0x80], rcx
mov r8, qword [rax - 0x10]
mov qword [rsp + 0x88], r8
mov rcx, r8
add rcx, 0xfffffffffffffff0
mov qword [rsp + 0x90], rcx
mov rax, r8
not rax
mov rdx, rcx
or rdx, rax
mov rax, rcx
not rax
or rax, r8
not rdx
not rax
or rdx, rax
test rcx, rcx
setns al
or rcx, rdx
sets cl
add al, cl
inc al
test al, 1
jne 0x14001b98c
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x90]
mov qword [rcx], rdx
mov rcx, qword [rax]
movabs rdx, 0x35e6c9d5938eb491
movabs rax, 0x35e6c9d5938eb490
xor rdx, rax
mov rax, rcx
add rax, rdx
mov qword [rsp + 0x68], rax
movabs r8, 0x745a14dc4f8eb2cc
movabs rdx, 0x8ba5eb23b0714d33
xor r8, rdx
mov rdx, rcx
xor rdx, r8
and rdx, 0xffffffffffffffff
movabs r8, 0x353d8ec7292eca62
movabs r9, 0xcac27138d6d1359d
xor r8, r9
movabs r9, 0x1b86960da6f51005
movabs r10, 0xe47969f2590aeffa
xor r9, r10
xor r8, r9
and rcx, r8
or rdx, rcx
mov rcx, rax
xor rcx, rdx
movabs r8, 0xfc34518103f75e65
movabs r9, 0x3cbae7efc08a19a
xor r8, r9
xor rcx, r8
or rax, rdx
and rax, rcx
movabs rcx, 0xde6f1d5fb6a4162
movabs rdx, 0xde6f1d5fb6a4162
xor rcx, rdx
cmp rax, rcx
jl 0x14001b98c
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x68]
mov qword [rax], rdx
mov rax, rcx
xor rax, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
xor rdx, 3
or rax, rdx
movabs rdx, 0x16aacc74b0efd6fe
movabs r8, 0xe955338b4f102901
xor rdx, r8
xor rcx, rdx
mov rdx, 0xffffffffffffffff
xor rdx, 3
or rcx, rdx
movabs rdx, 0xc9c22bcdddd6b954
movabs r8, 0x363dd432222946ab
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
or rax, rcx
cmp rax, 1
je 0x14001b8a1
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x90]
and rdx, 0xfffffffffffffffc
movabs r8, 0xf7a582c1f9ef67b0
movabs r9, 0xf7a582c1f9ef67b1
xor r8, r9
or rdx, r8
mov qword [rcx], rdx
mov rcx, qword [rax]
mov rdx, rcx
and rdx, 1
shl rdx, 1
mov rax, rcx
xor rax, 1
add rax, rdx
mov qword [rsp + 0x60], rax
xor rcx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
movabs rdx, 0x6ead69b09f5bbc42
movabs r8, 0x9152964f60a443bd
xor rdx, r8
xor rcx, rdx
movabs rdx, 0x6a4339452f8c4f03
movabs r8, 0x3f48f44c48f223f1
xor rdx, r8
movabs r8, 0xe485966ca572c5e8
movabs r9, 0x1b7a69935a8d3a17
xor r8, r9
xor rdx, r8
or rax, rcx
movabs rcx, 0x1916db0cd2163b07
movabs r8, 0x4c1d1605b56857f5
xor rcx, r8
or rcx, rdx
movabs rdx, 0xb2db80d6bfbe16e5
movabs r8, 0x4d247f294041e91a
xor rdx, r8
xor rax, rdx
and rax, rcx
cmp rax, 0
jl 0x14001b98c
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x60]
mov qword [rcx], rdx
movabs rcx, 0x24ff41c8c7b2340c
movabs rdx, 0x24ff41c8c7b23408
xor rcx, rdx
sar rax, cl
mov rcx, rax
mov rax, rcx
add rax, 2
mov qword [rsp + 0x58], rax
xor rcx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
movabs rdx, 0x2ce73331f5318af1
movabs r8, 0xb97bfb40fc20ed63
xor rdx, r8
movabs r8, 0xd75c609aef9ca58a
movabs r9, 0x28a39f6510635a75
xor r8, r9
xor rdx, r8
or rax, rcx
movabs rcx, 0x54e39054f21a7fef
movabs r8, 0xc17f5825fb0b187d
xor rcx, r8
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jl 0x14001b98c
mov eax, dword [0x140272d78]
xor eax, 0xd114dc76
xor eax, dword [0x140272d7c]
mov ecx, 0xffffffff
xor ecx, 0x4585f674
add eax, ecx
mov ecx, 0xf7bcc297
xor ecx, 0xf7bcc296
add eax, ecx
and eax, 0xac5ecc8f
mov ecx, 0x7455924a
xor edx, edx
div ecx
cmp eax, 0x24cf826
je 0x14001bac3
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0xc0]
mov r10d, dword [0x140272d80]
mov r9d, dword [0x140272d84]
mov eax, r10d
xor eax, 0xffffffff
and eax, 0x26184349
mov r11d, 0x713d8b1d
xor r11d, 0x5725c854
mov ecx, 0xc3cff4b7
xor ecx, 0x3c300b48
xor r11d, ecx
and r10d, r11d
mov esi, 0xfca86955
xor esi, 0x35796aa
mov ecx, r9d
xor ecx, esi
mov esi, 0xbd85d9ff
xor esi, 0x9b9d9ab6
and ecx, esi
and r9d, r11d
or eax, r10d
or ecx, r9d
xor eax, ecx
imul ecx, eax, 0x742d60f5
mov eax, ecx
and eax, 0xebff2c3d
xor ecx, 0xebff2c3d
or eax, ecx
mov r9d, eax
xor r9d, 0x99efcde9
xor r9d, 0xffffffff
mov ecx, 0x8d0ae58b
xor ecx, 0x14e52862
and ecx, r9d
shl ecx, 1
sub ecx, 0x99efcde9
sub eax, ecx
mov ecx, 0xa23e1bfd
xor ecx, 0xf29c57fa
mov r11, qword [r8]
movabs r8, 0x29bedb656849bd9
mov r9, r11
sub r9, r8
add r9, rdx
movabs r8, 0x29bedb656849bd9
add r9, r8
mov qword [rsp + 0x48], r9
movabs r10, 0x7fa0505ffece506f
movabs r8, 0x805fafa00131af90
xor r10, r8
mov r8, r9
xor r8, r10
movabs r10, 0x169fc1d0bbf07ee5
and r8, r10
mov rdi, 0xffffffffffffffff
movabs r10, 0x169fc1d0bbf07ee5
xor rdi, r10
mov rsi, r9
and rsi, rdi
mov r10, r11
xor r10, 0xffffffffffffffff
movabs rbx, 0x169fc1d0bbf07ee5
and r10, rbx
and r11, rdi
or r8, rsi
or r10, r11
xor r8, r10
xor r9, rdx
movabs rdx, 0xe02eebab24bd9a3e
movabs r10, 0x1fd11454db4265c1
xor rdx, r10
xor r9, rdx
mov rdx, r8
xor rdx, r9
and rdx, r8
cmp rdx, 0
setl dl
mov byte [rsp + 0x57], dl
cmp eax, ecx
jbe 0x14001b5e6
mov al, byte [rsp + 0x57]
test al, 1
jne 0x14001b98c
jmp 0x14001b76f
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x48]
mov qword [rax], rcx
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x40], rax
cmp rax, 0
je 0x14001b890
mov eax, dword [0x140272d88]
or eax, dword [0x140272d8c]
mov ecx, 0x4ffcf0d4
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
or eax, 0x70b129f3
xor eax, 0xffffffff
or ecx, 0x70b129f3
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
add eax, 0x4761fc27
cmp eax, 0xd3f1f7a9
je 0x14001bacc
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x78]
mov r8d, dword [0x140272d90]
sub r8d, dword [0x140272d94]
mov r10d, r8d
xor r10d, 0xffffffff
and r10d, 0xc10c6a0e
mov r11d, 0xffffffff
xor r11d, 0xc10c6a0e
mov r9d, r8d
and r9d, r11d
imul r9d, r10d
mov r10d, r8d
and r10d, 0xc10c6a0e
or r8d, 0xc10c6a0e
imul r8d, r10d
add r8d, r9d
and r8d, r8d
xor r8d, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0xcfbe3fae
mov r10d, 0xffffffff
xor r10d, 0xcfbe3fae
or r9d, r10d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
or r8d, r9d
imul r8d, r8d, 0xe38e7bf6
mov dword [rsp + 0x3c], r8d
call rax
mov eax, dword [rsp + 0x3c]
cmp eax, 0x896484f7
je 0x14001b7e2
jmp 0x14001b890
mov rax, qword [rsp + 0x100]
cmp byte [rax], 0
jne 0x14001baaf
mov ecx, dword [0x140272d98]
mov edx, dword [str._i6:]
mov r8d, 0xa77a54ce
xor r8d, 0x5885ab31
mov eax, ecx
xor eax, r8d
xor ecx, 0xffffffff
or eax, ecx
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
mov edx, 0x2c7001d6
xor edx, 0xd38ffe29
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
imul eax, eax, 0xc6ff5fa5
or eax, 0x9ca714fd
sub eax, 0x193d6697
cmp eax, 0xb772516b
je 0x14001bad5
mov rcx, qword [rsp + 0xe8]
mov eax, dword [0x140272da0]
mov edx, dword [str._r_O]
xor edx, 0xffffffff
add eax, edx
add eax, 1
sub eax, 0x98229a2a
mov r8d, 0x6f893158
xor r8d, 0x6e2f1324
xor edx, edx
div r8d
mov r8d, 0xffffffff
xor r8d, 0xaca0ccc3
mov edx, eax
and edx, r8d
mov r8d, eax
xor r8d, 0xaca0ccc3
add eax, r8d
sub eax, edx
mov rcx, qword [rcx]
mov qword [rsp + 0x30], rcx
cmp rcx, 0
setg cl
mov byte [rsp + 0x3b], cl
cmp eax, 0x97f6941b
jb 0x14001bad5
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x3b]
test cl, 1
mov qword [rsp + 0x98], rax
jne 0x14001b20d
jmp 0x14001baaf
mov eax, dword [0x140272da8]
xor eax, 0xce9149d5
mov ecx, dword [0x140272dac]
mov edx, 0xb4622999
xor edx, 0xa707f37
xor ecx, edx
xor edx, edx
div ecx
mov ecx, 0x12c10c12
xor ecx, 0xafc3895c
xor eax, ecx
add eax, 0x14959d2a
mov ecx, 0xffffffff
xor ecx, 0x40e5eb3
add eax, ecx
add eax, 1
cmp eax, 0x75bf20da
jbe 0x14001bade
mov r11d, dword [0x140272db0]
mov r10d, dword [0x140272db4]
mov eax, 0xaece06ad
xor eax, 0x93199447
xor r10d, eax
mov eax, 0x1735dc56
xor eax, 0xe8ca23a9
mov ecx, r11d
xor ecx, eax
mov eax, 0xa01c39c3
xor eax, 0x5fe3c63c
mov r8d, r10d
xor r8d, eax
mov edx, 0xffffffff
xor edx, 0x535ece4
mov eax, ecx
and eax, 0x535ece4
and r11d, edx
mov r9d, r8d
and r9d, 0x535ece4
and r10d, edx
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
mov r8d, 0xce796d67
xor r8d, 0x31869298
xor ecx, r8d
or edx, 0x535ece4
and ecx, edx
or eax, ecx
mov ecx, eax
and ecx, 0x3c1903eb
shl ecx, 1
mov edx, 0x6445c704
xor edx, 0x585cc4ef
xor eax, edx
add eax, ecx
mov ecx, 0xd7e5fbc3
xor edx, edx
div ecx
mov ecx, eax
and ecx, 0x629a0dba
shl ecx, 1
xor eax, 0x629a0dba
add eax, ecx
mov dword [rsp + 0x2c], eax
call fcn.14000f24b
mov eax, dword [rsp + 0x2c]
cmp eax, 0x87fde6f9
ja 0x14001bade
jmp 0x14001baaf
add rsp, 0x110
pop rbx
pop rdi
pop rsi
ret
mov ecx, 0x70e9988f
idiv bh
push qword [rax + 0x2f]
jo 0x14001baf4
cmp bh, ah
jmp 0x14001b5e6
cwde
jno 0x14001bb18
add eax, 0xfffd0de9
call qword [rbx - 0x164d9267]
xchg ebx, eax
cdq
insd dword [rdi], dx
mov dl, 0xe9
sbb eax, 0x8dfffffe
ret 0x58e6
invalid
add byte [rax], al
add byte [rcx + rcx*4 - 0x7c], cl
and al, 0xc0
add byte [rax], al
add byte [rax - 0x77], cl
xchg esp, eax
and al, 0xd8
add byte [rax], al
add byte [rax - 0x77], cl
mov word [rax + rdi*4], fs
add byte [rax], al
add byte [rbx + 0x27c59b0d], cl
add bh, bh
adc eax, 0x2e2695
add byte cs:[rax - 0x75], cl
mov word [rax + rdi*4], fs
add byte [rax], al
add byte [rbx + rcx*4 - 0x7c], cl
and al, 0xc0
add byte [rax], al
add byte [rax - 0x7d], cl
shl byte [rax + 0x48], 0x89
test byte [rax + rcx*8], ah
add byte [rax], al
add byte [rax - 0x75], cl
add dword [rax - 0x7d], ecx
loopne 0x14001bb3a