Function at 0x1801ddfe0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov r14d, dword [rdx + 0x20]
xor edi, edi
mov r15, rdx
mov r12, rcx
mov r13d, edi
mov rbp, rdi
mov qword [rsp + 0x40], rdi
mov esi, edi
mov ebx, edi
mov dword [rsp + 0xa8], edi
mov qword [r8], rdi
test r14d, r14d
je 0x1801de19a
mov qword [rsp + 0x48], r14
movabs r13, 0x18044210008
nop word [rax + rax]
mov r8d, dword [r15 + 0x78]
mov rax, qword [r15 + 0x28]
mov r10, qword [rdi + rax]
mov edx, r8d
and edx, 0xfff00000
cmp edx, 0x13c00000
je 0x1801de092
cmp edx, 0x13f00000
je 0x1801de092
cmp edx, 0x13d00000
je 0x1801de092
mov ecx, r8d
call fcn.180243490
test al, al
jne 0x1801de092
mov ecx, r8d
call fcn.1802432dc
test al, al
jne 0x1801de092
cmp edx, 0x30100000
je 0x1801de092
xor r11b, r11b
jmp 0x1801de095
mov r11b, 1
mov rdx, qword [r10 + 0x98]
mov r9, rdx
shr r9, 0x18
and r9b, 1
je 0x1801de0f7
test byte [r12 + 0xd228], 8
jne 0x1801de0f7
mov rax, qword [r10 + 0xa8]
mov ecx, dword [rax + 0x10]
test rcx, 0x40211028
jne 0x1801de0f7
shr rdx, 0x17
test dl, 1
je 0x1801de0f0
lea rdx, [r12 + 0x738]
mov r8, r10
mov rcx, r12
call fcn.1801b42c0
test al, al
jne 0x1801de0f0
test r11b, r11b
je 0x1801de185
inc esi
jmp 0x1801de185
test r9b, r9b
je 0x1801de185
mov rax, qword [r10 + 0xa8]
test qword [rax + 0x10], r13
jne 0x1801de185
shr rdx, 0x17
test dl, 1
je 0x1801de183
mov eax, dword [r12 + 0x744]
inc dword [r12 + 0x740]
mov qword [rsp + 0x50], r10
and eax, 0xff000000
cmp eax, 0xb000000
jne 0x1801de171
mov eax, dword [r12 + 0xd228]
test al, al
jns 0x1801de17e
bt eax, 8
jae 0x1801de171
xor edx, edx
lea rcx, [rsp + 0x50]
mov rax, qword [rcx]
cmp rax, 0xffffffffffffffff
je 0x1801de17e
mov eax, dword [rax + 0x98]
bt rax, 0xf
jb 0x1801de17e
inc edx
add rcx, 8
cmp edx, 1
jb 0x1801de150
movzx eax, byte [r12 + 0x738]
test al, al
jne 0x1801de183
test r11b, r11b
je 0x1801de185
inc ebx
add rdi, 8
sub qword [rsp + 0x48], 1
jne 0x1801de040
mov r13d, ebp
xor edi, edi
mov ecx, dword [r15 + 0x78]
and ecx, 0xfff00000
cmp ecx, 0x10000000
jne 0x1801de1b1
cmp ebx, r14d
je 0x1801de1b9
lea eax, [rbx + rsi]
cmp eax, r14d
jae 0x1801de21b
mov r9d, edi
cmp ecx, 0x10000000
jne 0x1801de211
test r14d, r14d
je 0x1801de207
mov r8, qword [r15 + 0x18]
mov r10, r14
mov rdx, qword [r8]
cmp rdx, 0xffffffffffffffff
je 0x1801de1fd
mov rax, qword [rdx + 0xa8]
mov ecx, dword [rax + 0x10]
shr rcx, 8
test cl, 1
je 0x1801de1fd
mov eax, dword [rdx + 0x98]
shr rax, 0x18
test al, 1
je 0x1801de1fd
inc r9d
add r8, 8
sub r10, 1
jne 0x1801de1d0
cmp ebx, r14d
jne 0x1801de211
cmp r9d, r14d
jne 0x1801de21b
mov eax, 1
jmp 0x1801de346
inc dword [r12 + 0x73c]
test ebx, ebx
je 0x1801de2d7
mov r8d, ebx
mov qword [rsp + 0x30], rdi
lea rdx, [rsp + 0x40]
and r8d, 0xfffff
mov r9, r15
mov rcx, r12
bts r8d, 0x1c
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebx
call fcn.18019f360
mov rbp, qword [rsp + 0x40]
mov r13d, eax
test eax, eax
js 0x1801de360
mov ebx, edi
test r14d, r14d
je 0x1801de2d7
mov rsi, rdi
test byte [r12 + 0xd228], 8
mov rax, qword [r15 + 0x28]
mov rdx, qword [rdi + rax]
jne 0x1801de297
mov rax, qword [rdx + 0xa8]
mov ecx, dword [rax + 0x10]
test rcx, 0x1020
je 0x1801de2cc
mov rax, qword [rbp + 0x28]
mov ecx, dword [rsp + 0xa8]
mov qword [rsi + rax], rdx
mov rax, qword [rbp + 0x18]
lea r8, [rax + rcx*8]
mov rcx, r12
call fcn.1801ddf40
mov r13d, eax
test eax, eax
js 0x1801de35e
inc dword [rsp + 0xa8]
add rsi, 8
inc ebx
add rdi, 8
cmp ebx, r14d
jb 0x1801de271
xor esi, esi
test byte [r12 + 0xd228], 8
jne 0x1801de32c
mov ebx, esi
test r14d, r14d
je 0x1801de32c
mov rdi, rsi
nop
mov rax, qword [r15 + 0x28]
mov rdx, qword [rdi + rax]
mov rax, qword [rdx + 0xa8]
mov ecx, dword [rax + 0x10]
test rcx, 0x1020
jne 0x1801de321
lea r8, [rdx + 0xe0]
mov rcx, r12
call fcn.1801ddf40
mov r13d, eax
test eax, eax
js 0x1801de35e
inc ebx
add rdi, 8
cmp ebx, r14d
jb 0x1801de2f0
mov rax, qword [rsp + 0xb0]
mov dword [r15 + 0x78], esi
mov dword [r15 + 0x10], esi
mov qword [rax], rbp
mov dword [r15 + 0x20], esi
mov eax, r13d
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor edi, edi
test rbp, rbp
je 0x1801de343
cmp word [rbp + 0x7c], 0
je 0x1801de3b9
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801de37b
mov rax, rdi
jmp 0x1801de381
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbp + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1801de3b1
mov r8, qword [rbp + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801de3b1
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbp + 0x7c], di
mov qword [rbp + 0x18], rdi
cmp word [rbp + 0x7e], 0
je 0x1801de40d
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801de3cf
mov rax, rdi
jmp 0x1801de3d5
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbp + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1801de405
mov r8, qword [rbp + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801de405
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbp + 0x7e], di
mov qword [rbp + 0x28], rdi
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1801de343
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
je 0x1801de343
mov edx, 0xfe
mov rcx, rbp
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rbp], rdi
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x1801de457
mov qword [rax], rbp
mov qword [rbx + 0x38], rbp
jmp 0x1801de343
mov qword [rbx + 0x30], rbp
mov qword [rbx + 0x38], rbp
jmp 0x1801de343