Function at 0x140037eb0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0xc8
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x80], rcx
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
add rax, 0x60
mov qword [rsp + 0x90], rax
mov rax, qword [rcx]
mov qword [rsp + 0x98], rax
cmp rax, rdx
jle 0x140038032
mov ecx, dword [0x1402a9778]
mov eax, dword [0x1402a977c]
xor eax, 0x7064637a
add ecx, eax
add ecx, 0xc7da241e
mov eax, ecx
add eax, 1
xor ecx, 0xffffffff
mov edx, 0x4f1bf456
xor edx, 0x6535e2ac
or ecx, edx
add ecx, eax
mov eax, ecx
and eax, eax
mov edx, 0x553270a1
xor edx, 0xaacd8f5e
xor eax, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xd864bad
or eax, edx
mov edx, 0xd864bad
and edx, 0xd864bad
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xd402d255
xor ecx, 0xd3785844
cmp eax, ecx
jbe 0x140038535
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
mov eax, dword [0x1402a9780]
mov r8d, dword [0x1402a9784]
xor eax, 0xffffffff
xor r8d, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x26cbdf3
or eax, r8d
mov r8d, 0xaec8c13
xor r8d, 0x88031e0
or r8d, r9d
mov r9d, 0x29489ca1
xor r9d, 0xd6b7635e
xor eax, r9d
and eax, r8d
mov r8d, 0x846afbb6
xor r8d, 0xe986f749
or eax, r8d
mov r8d, eax
and r8d, 0x876f1c4c
xor r8d, 0xffffffff
mov r9d, 0xc89593bc
xor r9d, 0x4ffa8ff0
add eax, r9d
add eax, 1
add eax, r8d
xor eax, 0xa523e442
mov dword [rsp + 0x7c], eax
call fcn.140037920
mov eax, dword [rsp + 0x7c]
cmp eax, 0x36931b03
jb 0x140038535
jmp 0x14003852d
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x88]
cmp rax, rcx
jge 0x14003852d
mov rax, qword [rsp + 0x80]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x68], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x70], rax
cmp rax, 0
je 0x1400380a5
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
movabs rdx, 0xe54b13c9d18d38e2
movabs r8, 0x5ab4ec362e72c71d
xor rdx, r8
and rax, rdx
cmp rax, rcx
jge 0x14003828f
mov eax, dword [str.l_r]
xor eax, 0x82c0fdb
xor eax, dword [0x1402a978c]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, eax
xor edx, 0xffffffff
and ecx, edx
mov edx, 0xffffffff
xor edx, 0x50ab8026
mov r8d, 0xe9088b9e
xor r8d, 0xb9a30bb8
mov r9d, 0xfdc9b7ff
xor r9d, 0x2364800
xor r8d, r9d
and edx, r8d
or ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
mov edx, 0x59727b7b
xor edx, 0x9d9fb5d
mov r8d, 0x2e70653
xor r8d, 0xfd18f9ac
xor edx, r8d
and eax, edx
mov edx, 0x2d5de17f
xor edx, 0xd2a21e80
xor ecx, edx
xor eax, 0xffffffff
and ecx, eax
mov edx, 0xf9c39ea8
xor edx, 0x63c6157
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x6cb5177c
or ecx, 0x6cb5177c
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xa80a3884
xor ecx, 0x57f5c77b
xor eax, ecx
mov ecx, 0x224c3050
xor edx, edx
div ecx
cmp eax, 0x765d6228
ja 0x14003853e
mov r9, qword [rsp + 0x98]
mov r10, qword [rsp + 0x88]
mov ecx, dword [0x1402a9790]
mov edx, dword [0x1402a9794]
xor edx, 0x6ab3d91c
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, edx
xor ecx, 0xffffffff
mov r8d, 0x8f05895c
xor r8d, 0x70fa76a3
xor edx, r8d
or ecx, edx
mov edx, 0x469d8dc
xor edx, 0xfb962723
xor eax, edx
mov edx, 0x3d87b0c3
xor edx, 0xc2784f3c
xor ecx, edx
or eax, ecx
xor eax, 0xc4ff6934
imul eax, eax, 0xa4a73d1b
mov ecx, 0x77e0e26
xor ecx, 0x47746224
or eax, ecx
mov ecx, 0x1fb3e170
xor ecx, 0x33833a82
mov rdx, r10
sub rdx, r9
mov qword [rsp + 0x58], rdx
mov r8, rdx
xor r8, r10
movabs r10, 0xe449c2dee97590e1
movabs r11, 0xe449c2dee97590e1
xor r10, r11
cmp r8, r10
setl r8b
xor rdx, r9
cmp rdx, 0xffffffffffffffff
setg r9b
xor r9b, 0xff
mov dl, r8b
xor dl, r9b
and dl, r8b
mov byte [rsp + 0x67], dl
cmp eax, ecx
je 0x140038169
mov al, byte [rsp + 0x67]
test al, 1
jne 0x140038285
jmp 0x14003824f
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x98]
mov r9d, 0x20
mov qword [rsp + 0x20], 8
call fcn.140023a90
mov rcx, rax
mov rax, qword [rsp + 0x68]
mov qword [rax], rcx
jmp 0x14003828f
call fcn.14000ee80
jmp 0x14003852d
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov qword [rcx], rdx
lea rcx, [rsp + 0xa0]
add rcx, 0x10
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x40], rax
mov ecx, dword [0x1402d10b0]
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x40]
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rdx], xmm0
mov rcx, qword [rcx]
add rcx, 8
shl rax, 5
add rcx, rax
lea rdx, [rsp + 0xa0]
call fcn.140088050
mov rax, qword [rsp + 0x90]
cmp byte [rax], 0
jne 0x1400383c2
mov rdx, qword [rsp + 0x40]
movabs rax, 0x75bfedfdc1c2509c
movabs rcx, 0x75bfedfdc1c2509d
xor rax, rcx
mov rcx, rdx
and rcx, rax
movabs rax, 0x40b087a4b52ea9b6
movabs r8, 0x40b087a4b52ea9b4
xor rax, r8
imul rcx, rax
mov rax, rdx
xor rax, 1
add rax, rcx
mov qword [rsp + 0x38], rax
mov rcx, rdx
xor rcx, 0xffffffffffffffff
and rcx, 0xffffffffffffffff
movabs r8, 0x8f9afa7f08d9f2e1
movabs r9, 0x70650580f7260d1e
xor r8, r9
movabs r9, 0xfa09c236afcc164a
movabs r10, 0x5f63dc95033e9b5
xor r9, r10
xor r8, r9
and rdx, r8
or rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x140038456
call fcn.14000ee80
mov ecx, dword [0x1402a9798]
mov edx, dword [0x1402a979c]
mov r8d, 0xf84925f0
xor r8d, 0x7b6da0f
mov eax, ecx
xor eax, r8d
mov r8d, edx
xor r8d, 0xffffffff
or eax, r8d
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
and eax, 0xb34c97d7
sub eax, 0x9ccb4810
mov ecx, 0xb67fad91
xor ecx, 0x2006b2b1
add eax, ecx
add eax, 0x9ccb4810
and eax, 0xeb81f045
cmp eax, 0x36b7f39a
je 0x140038547
mov eax, dword [0x1402a97a0]
xor eax, dword [0x1402a97a4]
add eax, 0x57a677d2
mov ecx, 0x7a5ec539
xor ecx, 0xd4b535de
xor eax, ecx
xor eax, 0x531d3979
cmp eax, 0xbfe8a584
jbe 0x140038547
jmp 0x14003852d
mov ecx, dword [0x1402a97a8]
mov eax, 0x820e1cba
xor eax, 0xdd51aa7b
xor ecx, eax
imul ecx, dword [0x1402a97ac]
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xfcdd4b99
mov edx, 0xffffffff
xor edx, 0xfcdd4b99
and ecx, edx
or eax, ecx
and eax, 0x8c4e357a
mov ecx, 0xb0333673
xor edx, edx
div ecx
mov ecx, 0x6dcaf50d
xor ecx, 0x2e47a405
cmp eax, ecx
je 0x140038550
mov rcx, qword [rsp + 0x38]
mov edx, dword [0x1402a97b0]
xor edx, 0x3ddc9b0a
mov r8d, dword [0x1402a97b4]
mov r9d, edx
xor r9d, 0xffffffff
mov eax, r8d
and eax, r9d
xor r8d, 0xffffffff
and edx, r8d
or eax, edx
mov edx, 0x80d90271
xor edx, 0x7b42d5a2
or eax, edx
mov r8d, 0x3ef98792
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x88]
add eax, 0x15dd577
cmp rcx, rdx
sete cl
mov byte [rsp + 0x37], cl
cmp eax, 0xf9060c58
jae 0x1400384a9
mov rax, qword [rsp + 0x38]
mov cl, byte [rsp + 0x37]
test cl, 1
mov qword [rsp + 0x50], rax
jne 0x1400383c2
jmp 0x1400382c0
add rsp, 0xc8
ret
sti
xchg ecx, eax
in al, 0x6b
jmp 0x140037f85
sbb dl, dh
jl 0x1400385a7
jmp 0x140038169
leave
invalid
scasb al, byte [rdi]
invalid
or ecx, 0xe0745c79
mov edx, 0xeb9f2357
xor edx, 0x1460dca8
xor ecx, edx
mov edx, 0xe6e7955a
xor edx, 0x19186aa5
xor eax, edx
mov edx, 0x31264d6f
xor edx, 0xced9b290
xor ecx, edx
and eax, ecx
add eax, 0x3bd1e592
mov ecx, 0x6efb5c3f
xor ecx, 0xd620d061
cmp eax, ecx
je 0x1400389a2
mov rcx, qword [rsp + 0x80]
mov eax, dword [0x1402a97c0]
xor eax, 0x6841ce45
imul eax, dword [0x1402a97c4]
mov r8d, 0xfe985dbf
xor edx, edx
div r8d
xor edx, edx
sub edx, eax
xor eax, eax
sub eax, 0x43c61b29
add edx, eax
xor eax, eax
sub eax, edx
mov edx, eax
and edx, 0x6a9fb97f
xor edx, 0xffffffff
add eax, 0x6a9fb97f
add eax, 1
add eax, edx
mov r8, qword [rcx]
mov qword [rsp + 0x48], r8
mov rdx, rcx
add rdx, 8
mov qword [rsp + 0x50], rdx
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x58], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x67], cl
mov rcx, r8
and rcx, 1
mov rdx, r8
or rdx, 1
add rcx, rdx
mov qword [rsp + 0x68], rcx
mov rdx, r8
xor rdx, 0xffffffffffffffff
mov r9, r8
xor r9, 0xffffffffffffffff
or rdx, r9
xor rdx, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
or rdx, r9
mov r9, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
mov r10, 0xffffffffffffffff
xor r10, 0xffffffffffffffff
or r9, r10
movabs r10, 0x9aad921ae83a1150
movabs r11, 0x65526de517c5eeaf
xor r10, r11
xor r8, r10
xor r9, 0xffffffffffffffff
or r8, r9
and rdx, r8
xor rdx, 0xffffffffffffffff
and rcx, rdx
mov qword [rsp + 0x70], rcx
cmp eax, 0xdef8321d
je 0x1400389a2
mov al, byte [rsp + 0x67]
test al, 1
jne 0x1400388bd
jmp 0x1400386ff
mov rax, qword [rsp + 0x70]
cmp rax, 0
jl 0x1400388b3
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
movabs rcx, 0xbfffffffffffffff
and rcx, qword [rax]
cmp rcx, rdx
mov qword [rsp + 0x40], rax
jge 0x140038952
mov eax, dword [0x1402a97c8]
xor eax, 0x418a9298
mov r8d, dword [0x1402a97cc]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov ecx, 0xd1a66a34
xor ecx, 0x2e5995cb
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, 0xc903b901
xor ecx, 0x48b92643
add eax, ecx
and eax, 0xdceb740d
mov ecx, eax
add ecx, 1
mov edx, 0xa3db24f7
xor edx, 0x5c24db08
xor eax, edx
mov edx, 0x5b3d9b4e
xor edx, 0x58d200d6
or eax, edx
add eax, ecx
mov ecx, 0xe6f42422
xor ecx, 0x4eeed854
cmp rax, r9
call fcn.14000ee80
jmp 0x14003899a
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
movabs r8, 0xd3c1414bc929c473
movabs rax, 0xd3c1414bc929c472
xor r8, rax
movabs r9, 0x6e2bffab53207f46
movabs rax, 0x6e2bffab53207f66
xor r9, rax
movabs rax, 0x3f765a0f98917329
movabs r10, 0x3f765a0f98917321
xor rax, r10
mov qword [rsp + 0x20], rax
call fcn.140023a90
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov qword [rdx], rax
movabs rdx, 0x7ccb9e0b67e89eff
movabs r8, 0x7ccb9e0b67e89eff
xor rdx, r8
cmp rcx, rdx
mov qword [rsp + 0x40], rax
jge 0x140038952
call fcn.14000ee80
jmp 0x14003899a
invalid