Function at 0x100055880
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r14, r8
mov r13, rdx
xor esi, esi
mov edx, 0x80
mov rbx, rcx
lea rdi, [0x10000d998]
mov r8b, 0x10
mov r12d, 0xffffff80
mov bpl, 0x40
lea r15d, [rdx - 0x7f]
cmp r14, rsi
jne 0x100055c3d
mov rax, qword [r13 + 0x28]
mov ecx, dword [rax + 0xc]
cmp ecx, 0x1d
jg 0x100055ab1
je 0x100055a85
cmp ecx, 0xe
jg 0x1000559d9
je 0x1000559bb
sub ecx, 7
je 0x1000559ab
sub ecx, r15d
je 0x10005599d
sub ecx, r15d
je 0x100055984
sub ecx, r15d
je 0x10005596b
sub ecx, r15d
je 0x100055952
sub ecx, r15d
je 0x100055939
cmp ecx, r15d
jne 0x100055c3d
test byte [rbx + 0x89], 0x20
jne 0x100055c3d
mov rax, qword [0x1000075d0]
jmp 0x100055c30
test byte [rbx + 0x89], r8b
jne 0x100055c3d
mov rax, qword [0x100007598]
jmp 0x100055c30
test byte [rbx + 0x89], 8
jne 0x100055c3d
mov rax, qword [0x100007498]
jmp 0x100055c30
test byte [rbx + 0x89], 4
jne 0x100055c3d
mov rax, qword [0x100007428]
jmp 0x100055c30
test byte [rbx + 0x89], 2
jne 0x100055c3d
mov rax, qword [0x100007188]
jmp 0x100055c30
mov ecx, dword [rbx + 0x8c]
shr ecx, 2
and ecx, 7
jmp 0x1000559ae
mov ecx, dword [rbx + 0x70]
call fcn.100058780
mov rbp, rax
jmp 0x100055c33
test byte [rbx + 0x88], 8
lea rdi, [0x10000d9e0]
lea rax, [0x10000d9f8]
cmove rdi, rax
jmp 0x100055c3d
sub ecx, 0x11
je 0x100055a6d
sub ecx, r15d
je 0x100055a61
sub ecx, 2
je 0x100055a55
sub ecx, 2
je 0x100055a3c
sub ecx, r15d
je 0x100055a36
sub ecx, 4
je 0x100055a1d
cmp ecx, r15d
jne 0x100055c3d
test byte [rbx + 0x8a], r8b
je 0x100055c3d
mov rax, qword [0x100007610]
jmp 0x100055c30
test byte [rbx + 0x8a], 8
je 0x100055c3d
mov rax, qword [0x100007560]
jmp 0x100055c30
mov rbp, qword [rbx + 0x78]
jmp 0x100055a8c
test byte [rbx + 0x89], bpl
jne 0x100055c3d
mov rax, qword [0x100007690]
jmp 0x100055c30
test byte [rbx + 0x88], bpl
jmp 0x1000559c2
test byte [rbx + 0x88], 0x20
jmp 0x1000559c2
test byte [rbx + 0x89], dl
je 0x100055c3d
mov rax, qword [0x100007b50]
jmp 0x100055c30
mov rbp, qword [rbx + 0xa0]
mov ecx, dword [rbp]
mov eax, ecx
and eax, r12d
cmp eax, r12d
je 0x100055c33
mov eax, ecx
and ecx, 0x7f
and eax, r12d
add eax, edx
xor eax, ecx
mov dword [rbp], eax
jmp 0x100055c33
cmp ecx, 0x26
jg 0x100055bbc
je 0x100055bb1
sub ecx, 0x1e
je 0x100055ba5
sub ecx, r15d
je 0x100055b9a
sub ecx, r15d
je 0x100055b81
sub ecx, r15d
je 0x100055b68
sub ecx, r15d
je 0x100055b50
sub ecx, 2
je 0x100055b03
cmp ecx, r15d
jne 0x100055c3d
test byte [rbx + 0x88], r8b
jmp 0x1000559c2
mov ecx, dword [0x1000de268]
movzx r12d, word [rbx + 0x84]
mov rbp, rsi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp rax, rsi
je 0x100055b25
mov rcx, qword [rax + 0x10]
jmp 0x100055b28
mov rcx, rsi
cmp rcx, rsi
je 0x100055b45
call fcn.10005a13c
mov rbp, rax
cmp rax, rsi
je 0x100055b45
mov word [rax + 8], r12w
mov dword [rax], 0xce
mov r12d, 0xffffff80
jmp 0x100055c33
test byte [rbx + 0x8a], dl
je 0x100055c3d
mov rax, qword [0x100007918]
jmp 0x100055c30
test byte [rbx + 0x8a], bpl
je 0x100055c3d
mov rax, qword [0x100007880]
jmp 0x100055c30
test byte [rbx + 0x8a], 0x20
je 0x100055c3d
mov rax, qword [0x1000077e8]
jmp 0x100055c30
mov ecx, dword [rbx + 0x90]
jmp 0x1000559ae
mov rbp, qword [rbx + 0x98]
jmp 0x100055a8c
mov ecx, dword [rbx + 0x80]
jmp 0x1000559ae
sub ecx, 0x27
je 0x100055c20
sub ecx, r15d
je 0x100055c0e
sub ecx, r15d
je 0x100055bfd
sub ecx, r15d
je 0x100055bf2
sub ecx, 0xb
je 0x100055be6
cmp ecx, 8
jne 0x100055c3d
test byte [rbx + 0x8b], 0x20
jmp 0x1000559c2
test byte [rbx + 0x89], r15b
jmp 0x1000559c2
test byte [rbx + 0x88], dl
jmp 0x1000559c2
mov ecx, dword [rbx + 0x8c]
shr ecx, 5
and ecx, r15d
jmp 0x1000559ae
test byte [rbx + 0x8a], 4
je 0x100055c3d
mov rax, qword [0x100008038]
jmp 0x100055c30
test byte [rbx + 0x8a], 2
jne 0x100055c3d
mov rax, qword [0x100007f30]
mov rbp, qword [rax]
cmp rbp, rsi
cmovne rdi, rbp
mov bpl, 0x40
mov eax, dword [rdi]
and eax, 0x3f
cmp al, 0x3f
jne 0x100055c54
mov rdx, r13
mov rcx, rbx
call fcn.100055760
mov rdi, rax
cmp r14, rsi
je 0x100056158
mov rcx, qword [r13 + 0x28]
mov edx, dword [rcx + 0xc]
cmp edx, 0x1d
jg 0x100055f58
je 0x100055f03
cmp edx, 0xe
jg 0x100055da0
je 0x100055d8d
sub edx, 7
je 0x100055d82
sub edx, r15d
je 0x100055d68
sub edx, r15d
je 0x100055d4c
sub edx, r15d
je 0x100055d38
sub edx, r15d
je 0x100055d07
sub edx, r15d
je 0x100055ce0
cmp edx, r15d
jne 0x100056158
cmp dword [rdi + 8], esi
jne 0x100055ccd
cmp dword [rdi + 0xc], esi
jne 0x100055ccd
cmp dword [rdi + 0x10], esi
jne 0x100055ccd
cmp dword [rdi + 0x14], esi
je 0x100055cd0
mov sil, r15b
and byte [rbx + 0x89], 0xdf
and sil, r15b
shl sil, 5
jmp 0x100055d2c
cmp dword [rdi + 8], esi
jne 0x100055cf4
cmp dword [rdi + 0xc], esi
jne 0x100055cf4
cmp dword [rdi + 0x10], esi
jne 0x100055cf4
cmp dword [rdi + 0x14], esi
je 0x100055cf7
mov sil, r15b
and byte [rbx + 0x89], 0xef
and sil, r15b
shl sil, 4
jmp 0x100055d2c
cmp dword [rdi + 8], esi
jne 0x100055d1b
cmp dword [rdi + 0xc], esi
jne 0x100055d1b
cmp dword [rdi + 0x10], esi
jne 0x100055d1b
cmp dword [rdi + 0x14], esi
je 0x100055d1e
mov sil, r15b
and byte [rbx + 0x89], 0xf7
and sil, r15b
shl sil, 3
or byte [rbx + 0x89], sil
jmp 0x100056158
cmp qword [rdi + 8], rsi
setne al
shl al, 2
xor al, byte [rbx + 0x89]
and al, 4
jmp 0x100055d5d
cmp qword [rdi + 8], rsi
setne al
add al, al
xor al, byte [rbx + 0x89]
and al, 2
xor byte [rbx + 0x89], al
jmp 0x100056158
mov eax, dword [rdi + 8]
shl eax, 2
xor eax, dword [rbx + 0x8c]
and eax, 0x1c
xor dword [rbx + 0x8c], eax
jmp 0x100056158
mov eax, dword [rdi + 8]
mov dword [rbx + 0x70], eax
jmp 0x100056158
mov al, byte [rdi + 8]
shl al, 3
xor al, byte [rbx + 0x88]
and al, 8
jmp 0x100055fa8
sub edx, 0x11
je 0x100055ed1
sub edx, r15d
je 0x100055ebe
sub edx, 2
je 0x100055eaa
sub edx, 2
je 0x100055e71
sub edx, r15d
je 0x100055e22
sub edx, 4
je 0x100055df8
cmp edx, r15d
jne 0x100056158
mov rdx, qword [0x100007610]
mov rcx, rdi
mov rdx, qword [rdx]
call fcn.1000593f0
and byte [rbx + 0x8a], 0xef
and al, r15b
shl al, 4
jmp 0x100055e17
mov rdx, qword [0x100007560]
mov rcx, rdi
mov rdx, qword [rdx]
call fcn.1000593f0
and byte [rbx + 0x8a], 0xf7
and al, r15b
shl al, 3
or byte [rbx + 0x8a], al
jmp 0x100056158
mov ecx, dword [rdi]
mov eax, ecx
and eax, r12d
cmp eax, r12d
je 0x100055e3d
mov eax, ecx
and ecx, 0x7f
and eax, r12d
sub eax, 0xffffff80
xor eax, ecx
mov dword [rdi], eax
mov rcx, qword [rbx + 0x78]
mov edx, dword [rcx]
mov eax, edx
and eax, r12d
cmp eax, r12d
je 0x100055e68
mov eax, edx
not edx
and eax, r12d
and edx, 0x7f
sub eax, r15d
xor eax, edx
mov dword [rcx], eax
test r12d, eax
jne 0x100055e68
call fcn.100059224
mov qword [rbx + 0x78], rdi
jmp 0x100056158
mov eax, dword [rdi]
and eax, 0x3f
cmp al, 5
jne 0x100055e9e
mov rax, qword [rdi + 8]
cmp rax, rsi
je 0x100055e8b
cmp word [rax], si
je 0x100055e8b
mov sil, r15b
and byte [rbx + 0x89], 0xbf
and sil, r15b
shl sil, 6
jmp 0x100055d2c
or byte [rbx + 0x89], bpl
jmp 0x100056158
mov al, byte [rdi + 8]
shl al, 6
xor al, byte [rbx + 0x88]
and al, bpl
jmp 0x100055fa8
mov al, byte [rdi + 8]
shl al, 5
xor al, byte [rbx + 0x88]
and al, 0x20
jmp 0x100055fa8
cmp dword [rdi + 8], esi
mov al, byte [rbx + 0x89]
sete cl
and al, 0x7f
shl cl, 7
or cl, al
mov byte [rbx + 0x89], cl
mov eax, dword [rdi + 8]
and eax, 0xc
cmp al, 0xc
sete al
xor al, byte [rbx + 0x8a]
and al, r15b
jmp 0x100056152
mov ecx, dword [rdi]
mov eax, ecx
and eax, r12d
cmp eax, r12d
je 0x100055f1e
mov eax, ecx
and ecx, 0x7f
and eax, r12d
sub eax, 0xffffff80
xor eax, ecx
mov dword [rdi], eax
mov rcx, qword [rbx + 0xa0]
mov edx, dword [rcx]
mov eax, edx
and eax, r12d
cmp eax, r12d
je 0x100055f4c
mov eax, edx
not edx
and eax, r12d
and edx, 0x7f
sub eax, r15d
xor eax, edx
mov dword [rcx], eax
test r12d, eax
jne 0x100055f4c
call fcn.100059224
mov qword [rbx + 0xa0], rdi
jmp 0x100056158
cmp edx, 0x26
jg 0x10005609d
je 0x10005608f
sub edx, 0x1e
je 0x10005603a
sub edx, r15d
je 0x10005602c
sub edx, r15d
je 0x100056008
sub edx, r15d
je 0x100055fe4
sub edx, r15d
je 0x100055fc3
sub edx, 2
je 0x100055fb3
cmp edx, r15d
jne 0x100056158
mov al, byte [rdi + 8]
shl al, 4
xor al, byte [rbx + 0x88]
and al, 0x10
xor byte [rbx + 0x88], al
jmp 0x100056158
movzx eax, word [rdi + 8]
mov word [rbx + 0x84], ax
jmp 0x100056158
mov rdx, qword [0x100007918]
mov rcx, rdi
mov rdx, qword [rdx]
call fcn.1000593f0
and byte [rbx + 0x8a], 0x7f
shl al, 7
jmp 0x100055e17
mov rdx, qword [0x100007880]
mov rcx, rdi
mov rdx, qword [rdx]
call fcn.1000593f0
and byte [rbx + 0x8a], 0xbf
and al, r15b
shl al, 6
jmp 0x100055e17
mov rdx, qword [0x1000077e8]
mov rcx, rdi
mov rdx, qword [rdx]
call fcn.1000593f0
and byte [rbx + 0x8a], 0xdf
and al, r15b
shl al, 5
jmp 0x100055e17
mov eax, dword [rdi + 8]
mov dword [rbx + 0x90], eax
jmp 0x100056158
mov ecx, dword [rdi]
mov eax, ecx
and eax, r12d
cmp eax, r12d
je 0x100056055
mov eax, ecx
and ecx, 0x7f
and eax, r12d
sub eax, 0xffffff80
xor eax, ecx
mov dword [rdi], eax
mov rcx, qword [rbx + 0x98]
mov edx, dword [rcx]
mov eax, edx
and eax, r12d
cmp eax, r12d
je 0x100056083
mov eax, edx
not edx
and eax, r12d
and edx, 0x7f
sub eax, r15d
xor eax, edx
mov dword [rcx], eax
test r12d, eax
jne 0x100056083
call fcn.100059224
mov qword [rbx + 0x98], rdi
jmp 0x100056158
mov eax, dword [rdi + 8]
mov dword [rbx + 0x80], eax
jmp 0x100056158
sub edx, 0x27
je 0x10005613e
sub edx, r15d
je 0x100056116
sub edx, r15d
je 0x100056102
sub edx, r15d
je 0x1000560ea
sub edx, 0xb
je 0x1000560d9
cmp edx, 8
jne 0x100056158
mov al, byte [rdi + 8]
shl al, 5
xor al, byte [rbx + 0x8b]
and al, 0x20
xor byte [rbx + 0x8b], al
jmp 0x100056158
mov al, byte [rdi + 8]
xor al, byte [rbx + 0x89]
and al, r15b
jmp 0x100055d5d
mov cl, byte [rdi + 8]
mov al, byte [rbx + 0x88]
shl cl, 7
and al, 0x7f
or cl, al
mov byte [rbx + 0x88], cl
jmp 0x100056158
mov eax, dword [rdi + 8]
shl eax, 5
xor eax, dword [rbx + 0x8c]
and eax, 0x20
jmp 0x100055d77
mov eax, dword [rdi]
and al, 0x3f
cmp al, r15b
jne 0x100056127
cmp dword [rdi + 8], esi
jne 0x100056127
mov sil, r15b
and byte [rbx + 0x8a], 0xfb
and sil, r15b
shl sil, 2
or byte [rbx + 0x8a], sil
jmp 0x100056158
test dword [rdi + 8], 0xffff00
setne al
add al, al
xor al, byte [rbx + 0x8a]
and al, 2
xor byte [rbx + 0x8a], al
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rax, rdi
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret