Function at 0x140035af0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rcx
mov rdx, qword [rcx]
movabs rcx, 0x88a8959013312e1a
movabs rax, 0x89be6d7b240a8b81
xor rcx, rax
mov rax, rdx
sub rax, rcx
movabs rcx, 0x74646de64c6c73dc
movabs r8, 0x8b9b9219b3938c23
xor rcx, r8
add rax, rcx
movabs rcx, 0x116f8eb373ba59b
add rax, rcx
mov qword [rsp + 0x50], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x140035b85
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
add rcx, 8
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
jmp 0x140035b8f
call fcn.14000ee80
jmp 0x140035c93
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x28], rax
cmp rax, rcx
jl 0x140035c86
mov rax, qword [rsp + 0x28]
cmp rax, 0
jl 0x140035bc9
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x48]
cmp rax, qword [rcx]
jl 0x140035bd6
mov rcx, rdx
call fcn.140025e55
jmp 0x140035c93
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
call fcn.140035aa2
mov rcx, qword [rsp + 0x28]
mov rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
movabs rax, 0x7c3b97402fecf4e4
movabs r8, 0x7c3b97402fecf4e4
xor rax, r8
movabs r8, 0x1292836bff1e3945
movabs r9, 0x1292836bff1e3944
xor r8, r9
sub rax, r8
sub rdx, rax
mov rax, rcx
sub rax, rdx
mov rdx, rax
xor rdx, rcx
cmp rdx, 0
setl dl
movabs r8, 0x16b01c139ccb8a75
movabs r9, 0x16b01c139ccb8a75
xor r8, r9
cmp rcx, r8
setne cl
and cl, dl
test cl, 1
mov qword [rsp + 0x38], rax
jne 0x140035c7c
jmp 0x140035b8f
call fcn.14000ee80
jmp 0x140035c93
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov qword [rax], rcx
mov ecx, dword [0x1402a9698]
mov edx, dword [0x1402a969c]
mov eax, ecx
and eax, edx
shl eax, 1
xor ecx, edx
add ecx, eax
mov eax, 0xba89ae81
xor eax, 0x77e5ba54
xor ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x85c725db
mov edx, 0xffffffff
xor edx, 0x85c725db
and ecx, edx
or eax, ecx
mov ecx, 0x7a187398
xor edx, edx
div ecx
cmp eax, 0xbd6f74bc
jae 0x140035d53
mov ecx, dword [0x1402a96a0]
and ecx, dword [0x1402a96a4]
mov edx, 0xbc2ea05e
xor edx, 0x9d210caf
mov eax, ecx
or eax, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0x4bc44c06
xor edx, 0x6acbe0f7
mov r8d, 0x40b9c14
xor r8d, 0xfbf463eb
xor edx, r8d
and ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x3e62ad52
xor ecx, 0xe438e261
xor eax, ecx
mov ecx, 0x5505df33
xor ecx, 0x279426ba
xor eax, ecx
cmp eax, 0xdbc8557b
je 0x140035ce3
add rsp, 0x58
ret
in al, dx
pop rcx
movabs dword [0x1f0fffffff87e992], eax
add byte [rbp + 0x48], dl
sub esp, 0x160
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xd0], xmm8
movaps xmmword [rbp + 0xc0], xmm7
movaps xmmword [rbp + 0xb0], xmm6
mov qword [rbp + 0x98], rdx
mov qword [rbp + 0x90], rcx
mov eax, 0x30
call fcn.1402a7dd0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x88], rax
mov ecx, dword [0x1402d10b0]
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x98]
add rsp, 0x20
add rax, 0x60
mov qword [rbp + 0xa0], rax
mov rax, qword [rcx]
mov qword [rbp + 0xa8], rax
cmp rax, rdx
jle 0x140035e0b
mov rdx, qword [rbp + 0x98]
mov rcx, qword [rbp + 0x90]
sub rsp, 0x20
call fcn.140035af0
add rsp, 0x20
jmp 0x1400366d2
mov rax, qword [rbp + 0xa8]
mov rcx, qword [rbp + 0x98]
cmp rax, rcx
jge 0x1400366d2
mov rax, qword [rbp + 0x90]
mov rcx, rax
add rcx, 8
mov qword [rbp + 0x78], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x80], rax
cmp rax, 0
je 0x140035e7d
mov rcx, qword [rbp + 0x98]
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
movabs rdx, 0xe2f852495cdccd13
movabs r8, 0x5d07adb6a32332ec
xor rdx, r8
and rax, rdx
cmp rax, rcx
jge 0x140035f32
mov rdx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0x98]
mov rcx, rax
sub rcx, rdx
mov qword [rbp + 0x70], rcx
mov r9, rcx
xor r9, rax
xor r9, 0xffffffffffffffff
mov r8, rax
and r8, r9
shl r8, 1
sub r8, rax
mov rax, rcx
sub rax, r8
cmp rax, 0
setl al
xor rcx, rdx
movabs rdx, 0x2232295779abe4e5
movabs r8, 0xddcdd6a886541b1a
xor rdx, r8
cmp rcx, rdx
setg cl
and al, cl
test al, 1
jne 0x140035f20
mov r8, qword [rbp + 0x70]
mov rdx, qword [rbp + 0x80]
mov rcx, qword [rbp + 0xa8]
mov r9d, 0x28
sub rsp, 0x30
mov qword [rsp + 0x20], 8
call fcn.140023a90
add rsp, 0x30
mov rcx, rax
mov rax, qword [rbp + 0x78]
mov qword [rax], rcx
jmp 0x140035f32
sub rsp, 0x20
call fcn.14000ee80
add rsp, 0x20
jmp 0x1400366d2
mov eax, dword [0x1402a96a8]
xor edx, edx
div dword [0x1402a96ac]
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xefcd34fc
mov edx, 0xffffffff
xor edx, 0xefcd34fc
and ecx, edx
or eax, ecx
imul eax, eax, 0xa1e3ed48
xor eax, 0xffffffff
mov ecx, 0xfef82026
xor ecx, 0xb221e6a5
mov edx, 0xeb66bcb0
xor edx, 0x1499434f
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xb1d492b
or eax, ecx
mov ecx, 0x5dd8ca91
xor ecx, 0x56c583ba
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0x935c5eb
je 0x1400366f1
mov rcx, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x98]
mov eax, dword [0x1402a96b0]
mov r8d, dword [0x1402a96b4]
xor r8d, 0x39829d6e
and eax, r8d
sub eax, 0xd81b6ca1
add eax, 0x123daaa5
add eax, 0xd81b6ca1
sub eax, 0xca79a2f5
or eax, 0x99965d4e
mov qword [rcx], rdx
cmp eax, 0x5303bc2e
jb 0x1400366f1
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0x68], rax
jmp 0x140036002
mov rax, qword [rbp + 0x68]
mov qword [rbp + 0x10], rax
mov ecx, dword [0x1402d10b0]
sub rsp, 0x20
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
add rsp, 0x20
movaps xmm0, xmmword [0x1402bac40]
movaps xmm1, xmmword [0x1402bac50]
movaps xmm2, xmmword [0x1402bac60]
movaps xmm3, xmmword [0x1402bac70]
xor eax, eax
mov qword [rbp + 0x18], rax
movaps xmmword [rbp + 0x20], xmm3
movaps xmmword [rbp + 0x30], xmm2
movaps xmmword [rbp + 0x40], xmm1
movaps xmmword [rbp + 0x50], xmm0
jmp 0x140036058
mov rax, qword [rbp + 0x18]
movaps xmm2, xmmword [rbp + 0x20]
movaps xmm7, xmmword [rbp + 0x30]
movaps xmm8, xmmword [rbp + 0x40]
movaps xmm5, xmmword [rbp + 0x50]
movaps xmmword [rbp - 0x50], xmm5
movaps xmmword [rbp - 0x40], xmm8
movaps xmmword [rbp - 0x30], xmm7
movaps xmmword [rbp - 0x20], xmm2
mov qword [rbp - 8], rax
movaps xmm6, xmmword [0x1402bac80]
pxor xmm2, xmm6
pshufd xmm1, xmm2, 0xf5
movaps xmm3, xmmword [0x1402bac80]
movaps xmm0, xmm3
pcmpeqd xmm0, xmm1
movaps xmm4, xmmword [0x1402bac90]
movaps xmm1, xmm4
pcmpgtd xmm1, xmm2
pshufd xmm2, xmm1, 0xa0
pand xmm0, xmm2
pshufd xmm1, xmm1, 0xf5
por xmm0, xmm1
pxor xmm7, xmm6
pshufd xmm1, xmm7, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm1
movaps xmm1, xmm4
pcmpgtd xmm1, xmm7
pshufd xmm7, xmm1, 0xa0
pand xmm2, xmm7
pshufd xmm1, xmm1, 0xf5
por xmm2, xmm1
movaps xmm1, xmm0
packssdw xmm1, xmm2
pxor xmm8, xmm6
pshufd xmm7, xmm8, 0xf5
movaps xmm2, xmm3
pcmpeqd xmm2, xmm7
movaps xmm7, xmm4
pcmpgtd xmm7, xmm8
pshufd xmm8, xmm7, 0xa0
pand xmm2, xmm8
pshufd xmm7, xmm7, 0xf5
por xmm2, xmm7
pxor xmm5, xmm6
pshufd xmm6, xmm5, 0xf5
pcmpeqd xmm3, xmm6
pcmpgtd xmm4, xmm5
pshufd xmm5, xmm4, 0xa0
pand xmm3, xmm5
pshufd xmm4, xmm4, 0xf5
por xmm3, xmm4
packssdw xmm2, xmm3
packssdw xmm1, xmm2
movaps xmmword [rbp], xmm1
movd eax, xmm0
test al, 1
jne 0x14003615e
jmp 0x140036171
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 8]
mov dl, 0x4a
xor dl, 0x4a
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rbp]
movd eax, xmm0
shr eax, 0x10
test al, 1
jne 0x140036189
jmp 0x1400361b2
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 8]
movabs rdx, 0xaa767c2852bad85f
movabs r8, 0xaa767c2852bad85e
xor rdx, r8
or rcx, rdx
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp]
pextrw eax, xmm0, 2
test al, 1
jne 0x1400361c8
jmp 0x1400361df
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 8]
or rcx, 2
mov dl, 0xc4
xor dl, 0xc4
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rbp]
pextrw eax, xmm0, 3
test al, 1
jne 0x1400361f5
jmp 0x1400362ea
mov eax, dword [0x1402a96b8]
mov edx, dword [0x1402a96bc]
xor edx, 0xaee7d15e
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
and eax, 0x63aa49b
mov ecx, 0x917b97a1
xor ecx, 0x854e6f3a
imul eax, ecx
mov ecx, eax
xor ecx, 0x53c4706c
mov edx, 0x62889302
xor edx, 0x9d776cfd
xor ecx, edx
mov edx, 0x49fa1b5b
xor edx, 0x1a3e6b37
or eax, edx
and eax, ecx
cmp eax, 0x97588edb
ja 0x1400366fa
mov rcx, qword [rbp + 0x88]
mov eax, dword [0x1402a96c0]
mov r8d, dword [0x1402a96c4]
xor r8d, 0x9bc36ba9
xor edx, edx
div r8d
mov rdx, qword [rbp - 8]
mov r8d, eax
mov eax, 0x21d578e5
xor eax, 0x21d578e5
mov r9d, 0x507df97e
xor r9d, 0x68ebadc6
sub eax, r9d
add r8d, eax
mov eax, r8d
or eax, 0x97d1a371
xor eax, 0xffffffff
or r8d, 0x97d1a371
xor r8d, 0xffffffff
xor eax, 0xffffffff
xor r8d, 0xffffffff
and eax, r8d
mov r8d, 0xc10e55bd
xor r8d, 0x1ba6fceb
add eax, r8d
or rdx, 3
mov r8b, 0xc8
xor r8b, 0xc8
mov byte [rcx + rdx], r8b
cmp eax, 0x4a06c469
jbe 0x140036257
jmp 0x1400362ea
movaps xmm0, xmmword [rbp]
pextrw eax, xmm0, 4
test al, 1
jne 0x140036300
jmp 0x140036329
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 8]
movabs rdx, 0x813d98d0300208f9
movabs r8, 0x813d98d0300208fd
xor rdx, r8
or rcx, rdx
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp]
pextrw eax, xmm0, 5
test al, 1
jne 0x14003633f
jmp 0x140036368
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 8]
movabs rdx, 0xa97ab58671b7551e
movabs r8, 0xa97ab58671b7551b
xor rdx, r8
or rcx, rdx
mov byte [rax + rcx], 0
movaps xmm0, xmmword [rbp]
pextrw eax, xmm0, 6
test al, 1
jne 0x14003637e
jmp 0x140036395
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 8]
or rcx, 6
mov dl, 0x5a
xor dl, 0x5a
mov byte [rax + rcx], dl
movaps xmm0, xmmword [rbp]
pextrw eax, xmm0, 7
test al, 1
jne 0x1400363ab
jmp 0x140036412
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 8]
mov rdx, rcx
and rdx, 7
movabs r8, 0x707a1d4aac33d2cb
movabs r9, 0x8f85e2b553cc2d34
xor r8, r9
xor rdx, r8
movabs r8, 0x5de5c681b68aa051
movabs r9, 0x5de5c681b68aa056
xor r8, r9
add rcx, r8
movabs r8, 0xa18d1a33cae21a93
movabs r9, 0xa18d1a33cae21a92
xor r8, r9
add rcx, r8
add rcx, rdx
mov byte [rax + rcx], 0
movaps xmm7, xmmword [rbp - 0x20]
movaps xmm6, xmmword [rbp - 0x30]
movaps xmm5, xmmword [rbp - 0x40]
movaps xmm4, xmmword [rbp - 0x50]
mov rax, qword [rbp - 8]
add rax, 8
movaps xmm8, xmmword [0x1402baca0]
movaps xmmword [rbp - 0x60], xmm8
movaps xmm0, xmm4
pand xmm0, xmm8
movaps xmm1, xmm5
pand xmm1, xmm8
movaps xmm2, xmm6
pand xmm2, xmm8
movaps xmm3, xmm7
pand xmm3, xmm8
por xmm4, xmm8
por xmm5, xmm8
por xmm6, xmm8
por xmm7, xmm8
paddq xmm3, xmm7
paddq xmm2, xmm6
paddq xmm1, xmm5
paddq xmm0, xmm4
mov rcx, rax
sub rcx, 0x28
mov qword [rbp + 0x18], rax
movaps xmmword [rbp + 0x20], xmm3
movaps xmmword [rbp + 0x30], xmm2
movaps xmmword [rbp + 0x40], xmm1
movaps xmmword [rbp + 0x50], xmm0
jne 0x140036058
jmp 0x1400364a1
mov eax, dword [0x1402a96c8]
mov ecx, dword [0x1402a96cc]
xor ecx, 0x82fbd0bc
sub eax, ecx
mov ecx, 0xe67dab17
xor ecx, 0x552f9315
xor eax, ecx
xor ecx, ecx
sub ecx, 0x5ab2e4e2
sub eax, ecx
xor eax, 0x9cc740d1
cmp eax, 0xf7e26f90
jae 0x140036703
mov rcx, qword [rbp + 0x78]
mov eax, dword [0x1402a96d0]
mov r8d, dword [0x1402a96d4]
xor r8d, 0xb32bcae3
mov edx, eax
xor edx, r8d
xor edx, 0xffffffff
or eax, r8d
and eax, edx
mov r8d, 0x7f980a96
xor edx, edx
div r8d
mov rdx, qword [rbp + 0x88]
mov r8d, eax
mov rax, qword [rbp + 0x10]
imul r8d, r8d, 0x20ab5e66
sub r8d, 0x44e20453
sub r8d, 0x73661473
add r8d, 0x44e20453
mov dword [rbp - 0x68], r8d
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
sub rsp, 0x20
call fcn.14006cee0
mov rcx, qword [rbp + 0xa0]
mov eax, dword [rbp - 0x68]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0x50
xor dl, 0x50
cmp cl, dl
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0xdaddbe39
je 0x1400364dc
mov al, byte [rbp - 0x61]
test al, 1
jne 0x140036589
jmp 0x1400366b0
mov eax, dword [0x1402a96d8]
xor eax, 0x3932d5fa
imul eax, dword [0x1402a96dc]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x4deece06
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0x7c4add45
xor ecx, 0xc3412187
xor edx, edx
div ecx
mov ecx, 0x4a826af2
xor edx, edx
div ecx
cmp eax, 0xe8ad78df
je 0x14003670c
mov r8, qword [rbp + 0x10]
mov eax, dword [0x1402a96e0]
xor edx, edx
div dword [0x1402a96e4]
imul eax, eax, 0xcb86136f
xor eax, 0xb020fb8b
sub eax, 0x379e616
mov rcx, r8
add rcx, 1
mov qword [rbp - 0x78], rcx
mov rdx, r8
or rdx, rdx
xor rdx, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
or r9, 0xffffffffffffffff
movabs r10, 0x6c77c63c58bf7d11
movabs r11, 0x938839c3a74082ee
xor r10, r11
xor r9, r10
or rdx, r9
xor rdx, 0xffffffffffffffff
movabs r9, 0x1751ea7d24677687
movabs r10, 0xe8ae1582db988978
xor r9, r10
xor r8, r9
mov r9, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
and r8, r9
xor rdx, 0xffffffffffffffff
movabs r9, 0x71df107b185f7841
movabs r10, 0x8e20ef84e7a087be
xor r9, r10
xor r8, r9
and rdx, r8
and rcx, rdx
cmp rcx, 0
setl cl
mov byte [rbp - 0x69], cl
cmp eax, 0xb6f7ae85
je 0x14003670c
mov al, byte [rbp - 0x69]
test al, 1
jne 0x1400366a3
jmp 0x1400366b5
sub rsp, 0x20
call fcn.14000ee80
add rsp, 0x20
jmp 0x1400366d2
mov rax, qword [rbp - 0x78]
mov rcx, qword [rbp + 0x98]
cmp rax, rcx
mov qword [rbp + 0x68], rax
je 0x1400366b0
jmp 0x140036002
movaps xmm6, xmmword [rbp + 0xb0]
movaps xmm7, xmmword [rbp + 0xc0]
movaps xmm8, xmmword [rbp + 0xd0]
lea rsp, [rbp + 0xe0]
pop rbp
ret
push rsp
xor al, 0xe9
lodsb al, byte [rsi]
clc
invalid
stosb byte [rdi], al
push rdx
movsb byte [rdi], byte [rsi]
add eax, 0xfffb54e9
call [rax]
and dword [rsi - 0x32], 0xffffffe9
sar ch, 1
sbb byte [rbx - 0x2f16319a], al
std
invalid
sahf
push 0xffffffffbae96172
invalid