Function at 0x14004cfd0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], rcx
mov edx, dword [0x1402746b8]
mov ecx, dword [0x1402746bc]
mov eax, edx
xor eax, ecx
mov r8d, 0x598f74d6
xor r8d, 0xa6708b29
xor ecx, r8d
and edx, ecx
mov ecx, 0xf37ad9bc
xor ecx, 0xf37ad9be
imul ecx, edx
sub ecx, eax
mov edx, 0x89d287ab
xor edx, 0x762d7854
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x1f3f8d47
and ecx, 0x1f3f8d47
mov edx, 0x76cfbe7e
xor edx, 0x89304181
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x424f1c33
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x424f1c33
or eax, 0x424f1c33
imul eax, edx
add eax, ecx
mov ecx, 0x4bde3d1f
xor ecx, 0xaab80b23
and eax, ecx
cmp eax, 0xbc6746b4
ja 0x14004d4f1
mov eax, dword [0x1402746c0]
mov ecx, 0xc459a600
xor ecx, 0x3acfcc4
xor eax, ecx
mov r8d, dword [0x1402746c4]
mov ecx, 0x77356f2a
xor ecx, 0x88ca90d5
mov r9d, r8d
xor r9d, ecx
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
add eax, 0x740de99a
add eax, 0x6f32bdcf
mov ecx, 0x47b39664
xor ecx, 0xeb1dc142
add eax, ecx
sub eax, 0x6f32bdcf
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x1c38192f
add eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, 0x3c33aeb
xor eax, 0x83d1b99e
mov dword [rsp + 0x58], eax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x58]
mov r9, rax
mov eax, dword [rsp + 0x5c]
add r9, 0x60
mov qword [rsp + 0x60], r9
mov rdx, qword [rdx]
mov qword [rsp + 0x68], rdx
cmp rdx, r8
setg dl
mov byte [rsp + 0x77], dl
cmp eax, ecx
je 0x14004d4f1
mov al, byte [rsp + 0x77]
test al, 1
jne 0x14004d16b
jmp 0x14004d182
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x80]
call fcn.14004cbb0
jmp 0x14004d4e9
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x78]
cmp rax, rcx
jge 0x14004d4e9
mov rax, qword [rsp + 0x80]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x48], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x50], rax
cmp rax, 0
je 0x14004d1dc
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x50]
movabs rax, 0xbfffffffffffffff
and rax, qword [rdx]
cmp rax, rcx
jge 0x14004d2e8
mov rdx, qword [rsp + 0x68]
mov r9, qword [rsp + 0x78]
mov rcx, r9
xor rcx, rdx
movabs r8, 0x677abb3848192bc4
movabs rax, 0x988544c7b7e6d43b
xor r8, rax
mov rax, rdx
xor rax, r8
mov r8, r9
and r8, rax
movabs rax, 0xec6545e86ec865b9
movabs r10, 0xec6545e86ec865bb
xor rax, r10
imul rax, r8
sub rax, rcx
mov qword [rsp + 0x40], rax
movabs rcx, 0x22960d95d911c8e6
movabs r8, 0xdd69f26a26ee3719
xor rcx, r8
mov r8, rax
xor r8, rcx
mov rcx, r9
and rcx, r8
xor r9, 0xffffffffffffffff
mov r8, rax
and r8, r9
or rcx, r8
cmp rcx, 0
setl cl
xor rax, rdx
movabs rdx, 0x9e089943145be89f
movabs r8, 0x61f766bceba41760
xor rdx, r8
cmp rax, rdx
setg dl
mov al, cl
and al, dl
xor r8d, r8d
xor r8b, 1
xor al, r8b
xor cl, 0xff
xor dl, 0xff
or cl, dl
and al, cl
xor al, 0xff
test al, 1
jne 0x14004d2de
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
mov r9d, 8
mov qword [rsp + 0x20], 8
call fcn.1400265f0
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax], rcx
jmp 0x14004d2e8
call fcn.14000f24b
jmp 0x14004d4e9
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov qword [rcx], rdx
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rax
cmp rax, rcx
jge 0x14004d4e9
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 3
add rcx, rax
xor eax, eax
mov edx, eax
call fcn.1401edc1f
mov rax, qword [rsp + 0x60]
mov al, byte [rax]
mov cl, 0xfe
xor cl, 0xfe
cmp al, cl
jne 0x14004d4e9
mov r8, qword [rsp + 0x30]
xor eax, eax
mov ecx, eax
sub rcx, r8
movabs rax, 0x456ef7ade981d4ee
movabs rdx, 0x456ef7ade981d4ee
xor rax, rdx
movabs rdx, 0x243b313bf89cc57d
movabs r9, 0x243b313bf89cc57c
xor rdx, r9
sub rax, rdx
add rcx, rax
movabs rax, 0xb754637c26f66489
movabs rdx, 0xb754637c26f66489
xor rax, rdx
sub rax, rcx
movabs rcx, 0x5ff6204a2100029
movabs rdx, 0xfa009dfb5defffd6
xor rcx, rdx
xor r8, rcx
mov rcx, rax
xor rcx, 0xffffffffffffffff
mov rdx, r8
xor rdx, 0xffffffffffffffff
or rcx, rdx
mov rdx, rax
and rdx, r8
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0xc68c15e0c19d0956
movabs r8, 0x3973ea1f3e62f6a9
xor rdx, r8
xor rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x38], rax
jge 0x14004d302
mov eax, dword [0x1402746c8]
sub eax, dword [0x1402746cc]
imul eax, eax, 0x8b641d4c
mov ecx, 0xec200d66
xor ecx, 0xe21c0ac3
xor edx, edx
div ecx
mov ecx, 0xffffffff
xor ecx, 0x5689b67d
add eax, ecx
mov ecx, 0x9a56854a
xor ecx, 0x9a56854b
add eax, ecx
cmp eax, 0xa784574e
je 0x14004d4fa
mov eax, dword [0x1402746d0]
xor eax, dword [str.4XQVUA]
mov r8d, 0xffffffff
xor r8d, 0x7bd04fb4
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x7bd04fb4
or eax, 0x7bd04fb4
imul eax, edx
add eax, ecx
xor eax, 0xa9f68ab1
mov r8d, 0xffffffff
xor r8d, 0x7dde8143
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0xc0c522d3
xor r8d, 0x3f3add2c
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x7dde8143
or eax, 0x7dde8143
imul eax, edx
add eax, ecx
mov dword [rsp + 0x2c], eax
call fcn.14000f24b
mov eax, dword [rsp + 0x2c]
cmp eax, 0xea0ecbf
jb 0x14004d4fa
jmp 0x14004d4e9
add rsp, 0x88
ret
xlatb
xchg ecx, eax
sahf
sbb cl, ch
xchg esp, eax
sti
invalid
invalid