Function at 0x14004d8e0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0xe8
mov qword [rsp + 0xe0], rcx
cmp qword [rcx], 0
jle 0x14004e198
mov rax, qword [rsp + 0xe0]
add rax, 8
mov qword [rsp + 0xd0], rax
xor eax, eax
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0xc0], rcx
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x10
mov rax, qword [rax]
mov qword [rsp + 0xc8], rax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0xc8]
cmp rax, 0
je 0x14004db9e
mov rax, qword [rsp + 0xc8]
movabs rcx, 0xf9557b780a88e28e
add rax, rcx
add rax, 0xfffffffffffffff0
movabs rcx, 0xf9557b780a88e28e
sub rax, rcx
mov qword [rsp + 0xb0], rax
mov rax, qword [rax]
mov qword [rsp + 0xb8], rax
cmp rax, 0x10
jb 0x14004da6a
mov r8, qword [rsp + 0xb8]
movabs rcx, 0xc748ef01b63d6f8e
movabs rax, 0x38b710fe49c2907e
xor rcx, rax
mov rax, r8
add rax, rcx
mov qword [rsp + 0xa8], rax
mov rcx, rax
and rcx, rcx
movabs rdx, 0x8f8b07ce76141d9
movabs r9, 0xf7074f83189ebe26
xor rdx, r9
xor rcx, rdx
and rcx, r8
xor rcx, 0xffffffffffffffff
and r8, r8
xor r8, 0xffffffffffffffff
mov rdx, rax
and rdx, r8
xor rdx, 0xffffffffffffffff
and rcx, rdx
xor rcx, 0xffffffffffffffff
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x14004da36
jmp 0x14004da40
call fcn.14000ee80
jmp 0x14004db9e
mov rdx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xa8]
mov qword [rdx], rcx
mov r8, qword [rax]
xor ecx, ecx
call fcn.14001d8a6
jmp 0x14004db9e
mov eax, dword [0x1402aa188]
sub eax, dword [0x1402aa18c]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0xdeeb514a
xor edx, 0x4e7f6e32
and ecx, edx
mov edx, 0xffffffff
xor edx, 0x90943f78
and eax, edx
sub eax, ecx
imul eax, eax, 0x820c59d0
mov r8d, 0x9d52807
xor r8d, 0x1c95a266
mov ecx, 0x823d5e01
xor ecx, 0x7dc2a1fe
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x15408a61
mov r8d, 0xaf00a002
xor r8d, 0xba402a63
or eax, r8d
imul eax, edx
add eax, ecx
cmp eax, 0x5535c48
jbe 0x14004e2ba
mov eax, dword [0x1402aa190]
imul eax, dword [0x1402aa194]
mov edx, 0xb8d2cf9c
xor edx, 0x472d3063
mov ecx, eax
xor ecx, edx
mov edx, 0x67e72788
xor edx, 0x50e9dd44
and ecx, edx
mov edx, 0xffffffff
xor edx, 0x370efacc
and eax, edx
sub eax, ecx
mov ecx, 0x53cd18ad
xor edx, edx
div ecx
mov rdx, qword [rsp + 0xb0]
mov ecx, eax
mov rax, qword [rsp + 0xc8]
imul ecx, ecx, 0x67e68c08
mov dword [rsp + 0xa4], ecx
mov r8, qword [rax]
mov ecx, 1
call fcn.14001d8a6
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x10
mov rcx, qword [rax]
call fcn.14001d970
mov eax, dword [rsp + 0xa4]
cmp eax, 0x54ae3bb0
ja 0x14004e2ba
jmp 0x14004db9e
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x20
mov rax, qword [rax]
mov qword [rsp + 0x98], rax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x98]
cmp rax, 0
je 0x14004dce1
mov rax, qword [rsp + 0x98]
mov rcx, rax
add rcx, 0xfffffffffffffff0
mov qword [rsp + 0x88], rcx
mov rax, qword [rax - 0x10]
mov qword [rsp + 0x90], rax
movabs rcx, 0x3136cad2ddea77dc
movabs rdx, 0x3136cad2ddea77cc
xor rcx, rdx
cmp rax, rcx
jb 0x14004dc9a
mov rdx, qword [rsp + 0x90]
mov rax, rdx
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x80], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x14004dc66
jmp 0x14004dc70
call fcn.14000ee80
jmp 0x14004dce1
mov rdx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x80]
mov qword [rdx], rcx
mov r8, qword [rax]
xor ecx, ecx
call fcn.14001d8a6
jmp 0x14004dce1
mov rdx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x98]
mov r8, qword [rax]
mov ecx, 1
call fcn.14001d8a6
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x20
mov rcx, qword [rax]
call fcn.14001d970
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x30
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x78]
cmp rax, 0
je 0x14004dedf
mov rax, qword [rsp + 0x78]
movabs rcx, 0x642a2843470ed2f2
sub rax, rcx
add rax, 0xfffffffffffffff0
movabs rcx, 0x19a1d3fc39c3f052
movabs rdx, 0x7d8bfbbf7ecd22a0
xor rcx, rdx
add rax, rcx
mov qword [rsp + 0x68], rax
mov rax, qword [rax]
mov qword [rsp + 0x70], rax
cmp rax, 0x10
jb 0x14004de9e
mov r8, qword [rsp + 0x70]
mov rax, r8
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x60], rax
mov rdx, rax
and rdx, r8
shl rdx, 1
mov rcx, rax
add rcx, r8
sub rcx, rdx
cmp rcx, 0
setl dl
movabs rcx, 0x5b89dcc95abdcac9
movabs r8, 0xa4762336a5423536
xor rcx, r8
cmp rax, rcx
setg cl
mov al, cl
and al, dl
xor al, 0xff
and cl, dl
xor cl, 0xff
xor edx, edx
xor dl, 1
xor al, dl
xor cl, 0xff
or al, cl
test al, 1
jne 0x14004ddd9
jmp 0x14004dde3
call fcn.14000ee80
jmp 0x14004dedf
mov eax, dword [0x1402aa198]
xor edx, edx
div dword [0x1402aa19c]
imul eax, eax, 0x591e492f
sub eax, 0x5a1b4dde
mov ecx, 0x2a9dcc82
xor ecx, 0xa4b8eb4
add eax, ecx
add eax, 0x5a1b4dde
mov ecx, 0x2974b70a
xor ecx, 0x333215fd
xor edx, edx
div ecx
mov ecx, 0x90585806
xor ecx, 0x4e98fdb5
cmp eax, ecx
je 0x14004e2c3
mov rcx, qword [rsp + 0x60]
mov eax, dword [0x1402aa1a0]
mov edx, 0x8cb9e9cd
xor edx, 0xa186ee7
xor eax, edx
xor eax, dword [0x1402aa1a4]
mov r8d, 0xeb87b674
xor edx, edx
div r8d
mov r8d, 0xe4fa9275
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x68]
mov r8d, eax
mov rax, qword [rsp + 0x78]
add r8d, 0x4eba5d7f
mov dword [rsp + 0x5c], r8d
mov qword [rdx], rcx
mov r8, qword [rax]
xor ecx, ecx
call fcn.14001d8a6
mov eax, dword [rsp + 0x5c]
cmp eax, 0xde7b6fac
je 0x14004e2c3
jmp 0x14004dedf
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x78]
mov r8, qword [rax]
mov ecx, 1
call fcn.14001d8a6
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x30
mov rcx, qword [rax]
call fcn.14001d970
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x40
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x50]
cmp rax, 0
je 0x14004e143
mov rcx, qword [rsp + 0x50]
mov rax, rcx
and rax, 0xfffffffffffffff0
or rcx, 0xfffffffffffffff0
add rax, rcx
mov qword [rsp + 0x40], rax
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
cmp rax, 0x10
jb 0x14004e0fd
mov rcx, qword [rsp + 0x48]
mov rax, rcx
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x38], rax
mov r8, rax
xor r8, rcx
xor r8, 0xffffffffffffffff
mov rdx, rcx
and rdx, r8
shl rdx, 1
sub rdx, rcx
mov rcx, rax
sub rcx, rdx
cmp rcx, 0
setl cl
movabs rdx, 0xa959bbd155c00379
movabs r8, 0x56a6442eaa3ffc86
xor rdx, r8
cmp rax, rdx
setg al
or al, al
xor al, 0xff
or cl, cl
xor edx, edx
xor dl, 1
xor cl, dl
or al, cl
xor al, 0xff
test al, 1
jne 0x14004dfbe
jmp 0x14004dfc8
call fcn.14000ee80
jmp 0x14004e143
mov eax, dword [0x1402aa1a8]
xor eax, 0x817ee2c7
mov ecx, dword [0x1402aa1ac]
mov edx, 0x98a521d
xor edx, 0x100790c1
add eax, edx
add eax, ecx
sub eax, 0x198dc2dc
mov ecx, 0x4239997c
xor edx, edx
div ecx
sub eax, 0x7634a530
sub eax, 0x722c100a
mov ecx, 0x79a99dd9
xor ecx, 0xf9d38e9
add eax, ecx
mov ecx, 0x47219138
xor ecx, 0x6d307136
xor edx, edx
div ecx
cmp eax, 0x6dd5008e
ja 0x14004e2cc
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
mov r8d, dword [0x1402aa1b0]
xor r8d, dword [0x1402aa1b4]
sub r8d, 0xa98277cc
add r8d, 0xe6a6a26b
add r8d, 0xa98277cc
mov r11d, r8d
and r11d, 0xc064486b
mov r9d, 0xca27b6df
xor r9d, 0xa43feb4
xor r8d, r9d
or r11d, r8d
mov r9d, 0x364f2eba
xor r9d, 0xc9b0d145
mov r8d, r11d
xor r8d, r9d
and r8d, 0x451b9054
mov r10d, 0xffffffff
xor r10d, 0x451b9054
and r11d, r10d
mov r9d, 0xffffffff
xor r9d, 0x8fa36b94
and r9d, 0x451b9054
and r10d, 0x8fa36b94
or r8d, r11d
or r9d, r10d
xor r8d, r9d
mov dword [rsp + 0x34], r8d
mov r8d, 0x6148cef8
xor r8d, 0x2380a908
mov dword [rsp + 0x30], r8d
mov qword [rdx], rcx
mov r8, qword [rax]
xor ecx, ecx
call fcn.14001d8a6
mov ecx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
cmp eax, ecx
je 0x14004e027
jmp 0x14004e143
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
mov r8, qword [rax]
xor eax, eax
mov cl, al
xor cl, 1
and cl, 1
call fcn.14001d8a6
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x40
mov rcx, qword [rax]
call fcn.14001d970
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xc0]
movabs rdx, 0x27adc5e8be5854de
add rax, rdx
movabs rdx, 0x4d7564aaa9a4ad85
movabs r8, 0x4d7564aaa9a4ad84
xor rdx, r8
add rax, rdx
movabs rdx, 0x27adc5e8be5854de
sub rax, rdx
cmp rax, qword [rcx]
mov qword [rsp + 0xd8], rax
jl 0x14004d917
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax + 8]
mov qword [rsp + 0x28], rax
cmp rax, 0
je 0x14004e2b2
mov ecx, dword [0x1402aa1b8]
imul ecx, dword [0x1402aa1bc]
mov r8d, 0xffffffff
xor r8d, 0xb86e294a
mov edx, ecx
and edx, r8d
mov eax, ecx
or eax, r8d
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, 0xb86e294a
or ecx, 0xb86e294a
imul ecx, edx
add ecx, eax
mov edx, 0x3ee07420
xor edx, 0xc11f8bdf
mov eax, ecx
xor eax, edx
mov edx, 0xe78ed46a
xor edx, 0x18712b95
xor ecx, edx
or eax, ecx
mov ecx, 0xa8772a7b
xor ecx, 0x434ec80a
mov edx, 0xfb297477
xor edx, 0x4d68b88
xor ecx, edx
mov edx, 0x32d24e64
xor edx, 0xd9ebac15
mov r8d, 0x767d1abd
xor r8d, 0x8982e542
xor edx, r8d
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
xor eax, 0xd0f08263
cmp eax, 0x97a929a6
je 0x14004e2d5
mov eax, dword [0x1402aa1c0]
xor edx, edx
div dword [0x1402aa1c4]
sub eax, 0x4801b38e
and eax, 0x232837ef
mov ecx, 0xfc01540
xor ecx, 0x8d5e7901
xor eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x28]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
mov eax, dword [rsp + 0x24]
cmp eax, 0xa7c0c7b6
jae 0x14004e2d5
add byte [rax], al
add cl, ch
add byte [rax], al
add byte [rax], al
jmp 0x14004e2b2
add rsp, 0xe8
ret
jno 0x14004e2aa
fimul word [rbx - 0x7d217]
jmp [rbx - 0x16f8015c]
stosd dword [rdi], eax
movsb byte [rdi], byte [rsi]
inc byte [rdi]
jmp 0x14004de30
invalid
mov esi, 0xe97e7616
jp 0x14004e2db
invalid
invalid