Function at 0x18018f600
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov ebx, r9d
mov ebp, r8d
mov rsi, rdx
mov rdi, rcx
call fcn.18019e2e0
test eax, eax
js 0x18018fb61
mov rax, qword [rsi + 0xd1e8]
mov qword [rdi + 0xd1e8], rax
mov rax, qword [rsi + 0xd1f0]
mov qword [rdi + 0xd1f0], rax
mov rax, qword [rsi + 0xd1f8]
mov dword [rdi + 0xd218], ebx
mov rbx, qword [rdi + 0xd230]
mov dword [rdi + 0xd20c], ebp
mov qword [rdi + 0xd1f8], rax
test rbx, rbx
je 0x18018f67f
mov rcx, rbx
call fcn.1800f76e0
mov rcx, rbx
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
xor ebx, ebx
test byte [rdi + 0xd218], 1
mov qword [rdi + 0xd230], rbx
je 0x18018f71d
mov ecx, 0xc0
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
test rax, rax
je 0x18018f713
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbx
mov dword [rax + 0x20], ebx
mov dword [rax + 0x24], ebx
mov dword [rax + 0x38], ebx
mov dword [rax + 0x4c], ebx
mov dword [rax + 0x60], ebx
mov dword [rax + 0x78], ebx
mov dword [rax + 0x90], ebx
mov dword [rax + 0xa8], ebx
mov dword [rax + 0x2c], ebx
mov dword [rax + 0x3c], ebx
mov dword [rax + 0x50], ebx
mov dword [rax + 0x68], ebx
mov dword [rax + 0x80], ebx
mov dword [rax + 0x98], ebx
mov dword [rax + 0xb0], ebx
mov qword [rax + 0x30], rbx
mov qword [rax + 0x40], rbx
mov qword [rax + 0x58], rbx
mov qword [rax + 0x70], rbx
mov qword [rax + 0x88], rbx
mov qword [rax + 0xa0], rbx
mov qword [rax + 0xb8], rbx
jmp 0x18018f716
mov rax, rbx
mov qword [rdi + 0xd230], rax
and dword [rdi + 0xd228], 0xffffff08
or dword [rdi + 0xd228], 0x100
mov ecx, dword [rsi + 0xd228]
mov eax, dword [rdi + 0xd228]
xor ecx, eax
and ecx, 0x200
xor ecx, eax
mov dword [rdi + 0xd228], ecx
mov rax, qword [rsi + 0xd038]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd038], rcx
mov rax, qword [rsi + 0xd040]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd040], rcx
mov rax, qword [rsi + 0xd048]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd048], rcx
mov rax, qword [rsi + 0xd050]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd050], rcx
mov rax, qword [rsi + 0xd058]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd058], rcx
mov rax, qword [rsi + 0xd068]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd068], rcx
mov rax, qword [rsi + 0xd070]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd070], rcx
mov rax, qword [rsi + 0xd078]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd078], rcx
mov rax, qword [rsi + 0xd080]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd080], rcx
mov rax, qword [rsi + 0xd088]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd088], rcx
mov rax, qword [rsi + 0xd090]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd090], rcx
mov rax, qword [rsi + 0xd098]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd098], rcx
mov rax, qword [rsi + 0xd0a0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0a0], rcx
mov rax, qword [rsi + 0xd0a8]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0a8], rcx
mov rax, qword [rsi + 0xd0b0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0b0], rcx
mov rax, qword [rsi + 0xd0b8]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0b8], rcx
mov rax, qword [rsi + 0xd0c0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0c0], rcx
mov rax, qword [rsi + 0xd0c8]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0c8], rcx
mov rax, qword [rsi + 0xd0d0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0d0], rcx
mov rax, qword [rsi + 0xd0d8]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0d8], rcx
mov rax, qword [rsi + 0xd0e0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0e0], rcx
mov rax, qword [rsi + 0xd0e8]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0e8], rcx
mov rax, qword [rsi + 0xd0f0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0f0], rcx
mov rax, qword [rsi + 0xd0f8]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd0f8], rcx
mov rax, qword [rsi + 0xd100]
mov rcx, qword [rax + 0x40]
xor edx, edx
mov r8d, 0x8000
mov qword [rdi + 0xd100], rcx
mov rax, qword [rsi + 0xd108]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd108], rcx
mov rax, qword [rsi + 0xd110]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd110], rcx
mov rax, qword [rsi + 0xd118]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd118], rcx
mov rax, qword [rsi + 0xd120]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd120], rcx
mov rax, qword [rsi + 0xd128]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd128], rcx
mov rax, qword [rsi + 0xd130]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd130], rcx
mov rax, qword [rsi + 0xd138]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd138], rcx
mov rax, qword [rsi + 0xd140]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd140], rcx
mov rax, qword [rsi + 0xd148]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd148], rcx
mov rax, qword [rsi + 0xd150]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd150], rcx
mov rax, qword [rsi + 0xd158]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd158], rcx
mov rax, qword [rsi + 0xd160]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd160], rcx
mov rax, qword [rsi + 0xd168]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd168], rcx
mov rax, qword [rsi + 0xd170]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd170], rcx
mov rax, qword [rsi + 0xd178]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd178], rcx
mov rax, qword [rsi + 0xd180]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd180], rcx
mov rax, qword [rsi + 0xd188]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd188], rcx
mov rax, qword [rsi + 0xd190]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd190], rcx
mov rax, qword [rsi + 0xd198]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd198], rcx
mov rax, qword [rsi + 0xd1a0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd1a0], rcx
mov rax, qword [rsi + 0xd1a8]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd1a8], rcx
mov rax, qword [rsi + 0xd1b0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd1b0], rcx
mov rax, qword [rsi + 0xd1b8]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd1b8], rcx
mov rax, qword [rsi + 0xd1c0]
mov rcx, qword [rax + 0x40]
mov qword [rdi + 0xd1c0], rcx
lea rcx, [rdi + 0xd510]
call fcn.18024adb8
lea rcx, [rdi + 0x15510]
xor edx, edx
mov r8d, 0x4000
call fcn.18024adb8
lea rcx, [rdi + 0xce68]
xor edx, edx
mov r8d, 0xa0
call fcn.18024adb8
lea rdx, [rsi + 0x30]
lea rcx, [rdi + 0x30]
mov r8d, 0xcaf8
call sub.msvcrt.dll_memcpy
mov r11, qword [rdi]
mov rcx, rdi
call qword [r11 + 0x20]
test eax, eax
js 0x18018fb61
mov rsi, qword [rdi + 0xd220]
test rsi, rsi
je 0x18018fb4b
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x18018fb37
mov rax, rbx
jmp 0x18018fb3d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, qword [rax]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rdi
mov qword [rdi + 0xd220], rbx
call fcn.1801fb9b0
test eax, eax
cmovs ebx, eax
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret