Function at 0x180193220
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x78
mov eax, dword [rdx + 0x78]
xor r14d, r14d
xor r12d, r12d
xor r8b, r8b
and eax, 0xfffff
mov rdi, rdx
mov r15, rcx
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r12
mov dword [rsp + 0x34], eax
lea esi, [r14 + 1]
jbe 0x180193944
mov r11, qword [rdx + 0x18]
mov r10d, eax
lea rbx, [0x18002c3c0]
mov edx, eax
nop word [rax + rax]
mov eax, edx
mov r9, qword [r11 + rax*8]
movsxd rax, dword [r9 + 0xa4]
mov ecx, dword [rbx + rax*4]
and cl, 0xf
cmp cl, 4
jne 0x1801932ba
mov rax, qword [r9 + 0x100]
cmp rax, 0xffffffffffffffff
je 0x1801932ba
mov eax, dword [rax + 0x78]
movzx r8d, r8b
and eax, 0xfff00000
cmp eax, 0x52400000
cmove r8d, esi
inc edx
sub r10, rsi
jne 0x180193280
test r8b, r8b
je 0x180193944
mov rax, qword [rdi + 0x28]
mov rsi, qword [r11]
mov qword [rsp + 0xb0], rbp
mov rax, qword [rax]
mov rbp, qword [rsp + 0xb8]
xor r9d, r9d
mov ecx, r9d
mov qword [rsp + 0x70], r13
mov r13, qword [rsp + 0xb8]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], ecx
nop word [rax + rax]
mov eax, dword [rdi + 0x78]
and eax, 0xfffff
add ecx, eax
mov rax, qword [rdi + 0x18]
mov rdx, qword [rax + rcx*8]
movsxd rax, dword [rdx + 0xa4]
mov ecx, dword [rbx + rax*4]
and cl, 0xf
cmp cl, 4
jne 0x1801933a7
mov rbx, qword [rdx + 0x100]
cmp rbx, 0xffffffffffffffff
je 0x1801933a7
mov eax, dword [rbx + 0x78]
and eax, 0xfff00000
cmp eax, 0x52400000
jne 0x1801933a7
mov eax, dword [rbx + 0x78]
mov dword [rsp + 0xc0], 2
and eax, 0xfff00000
cmp eax, 0x52400000
jne 0x180193871
mov rcx, rbx
call fcn.180195150
cmp eax, 0xffffffff
je 0x180193867
mov r8, qword [rbx + 0x18]
lea edx, [rax + rax]
xor r9d, r9d
mov rcx, qword [r8 + rdx*8]
lea eax, [rdx + 1]
mov rax, qword [r8 + rax*8]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0xc0]
jmp 0x1801933b8
mov eax, 1
mov qword [rsp + 0x60], rdx
mov dword [rsp + 0xc0], eax
mov dword [rsp + 0xc8], r9d
test eax, eax
je 0x18019384b
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801933e1
mov rcx, r9
jmp 0x1801933ed
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor r9d, r9d
mov rcx, rax
cmp qword [rcx + 0x18], 0
je 0x180193421
mov rbx, qword [rcx + 0x18]
test rbx, rbx
jne 0x180193402
mov rbx, r9
jmp 0x180193438
mov rax, qword [rbx]
mov qword [rcx + 0x18], rax
test rax, rax
jne 0x180193412
mov qword [rcx + 0x20], r9
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x180193438
mov rcx, qword [rcx + 0x10]
mov edx, 0x188
mov r8d, 0x10
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x18019350d
xor eax, eax
mov rdx, rsi
mov rcx, rbx
mov dword [rbx + 0xa0], 0xffffffff
mov qword [rbx + 0xa8], 0xffffffffffffffff
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x78], rax
mov qword [rbx + 0x80], rax
mov qword [rbx + 0x88], rax
mov qword [rbx + 0x90], rax
mov qword [rbx + 0x40], rax
call fcn.1801994e0
mov esi, eax
test eax, eax
js 0x1801934a8
mov r8b, 1
mov rdx, rbx
mov rcx, r15
call fcn.18019ec70
mov esi, eax
test eax, eax
js 0x1801934a8
xor esi, esi
mov rbp, rbx
jmp 0x180193512
mov rcx, rbx
call fcn.1801991c0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801934be
xor edi, edi
jmp 0x1801934c7
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
mov edx, 0xfe
mov r8d, 0x188
mov rcx, rbx
call fcn.18024adb8
mov qword [rbx], 0
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x1801934fb
mov qword [rax], rbx
mov qword [rdi + 0x20], rbx
mov rdi, qword [rsp + 0xb8]
jmp 0x180193512
mov qword [rdi + 0x18], rbx
mov qword [rdi + 0x20], rbx
mov rdi, qword [rsp + 0xb8]
jmp 0x180193512
mov esi, 0x8007000e
test esi, esi
js 0x18019391d
mov rcx, qword [r15 + 0xd118]
mov rdx, qword [rbp + 0xa8]
cmp rdx, rcx
je 0x1801935a5
test rdx, rdx
je 0x18019356d
cmp rdx, 0xffffffffffffffff
je 0x18019356d
mov r8, qword [rbp + 8]
test r8, r8
je 0x18019354a
mov rax, qword [rbp]
mov qword [r8], rax
jmp 0x180193552
mov rax, qword [rbp]
mov qword [rdx + 0x30], rax
mov r8, qword [rbp]
test r8, r8
je 0x180193565
mov rax, qword [rbp + 8]
mov qword [r8 + 8], rax
jmp 0x18019356d
mov rax, qword [rbp + 8]
mov qword [rdx + 0x38], rax
test rcx, rcx
je 0x18019359e
cmp rcx, 0xffffffffffffffff
je 0x18019359e
mov rax, qword [rcx + 0x38]
mov qword [rbp + 8], rax
mov rax, qword [rcx + 0x38]
test rax, rax
je 0x18019358e
mov qword [rax], rbp
jmp 0x180193592
mov qword [rcx + 0x30], rbp
mov qword [rbp], 0
mov qword [rcx + 0x38], rbp
mov qword [rbp + 0xa8], rcx
mov rcx, qword [rbp + 0xa8]
mov eax, dword [rcx + 0x18]
mov dword [rbp + 0xc8], eax
inc dword [rcx + 0x18]
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801935c9
xor esi, esi
mov rcx, rsi
jmp 0x1801935d4
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor esi, esi
mov rcx, rax
cmp qword [rcx + 0x30], 0
je 0x180193608
mov rbx, qword [rcx + 0x30]
test rbx, rbx
jne 0x1801935e9
mov rbx, rsi
jmp 0x18019361d
mov rax, qword [rbx]
mov qword [rcx + 0x30], rax
test rax, rax
jne 0x1801935f9
mov qword [rcx + 0x38], rsi
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x18019361d
mov rcx, qword [rcx + 0x28]
mov edx, 0x80
lea r8d, [rdx - 0x70]
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x1801937d9
mov r9d, 1
mov edx, 0x80200001
mov rcx, rbx
lea r8d, [r9 + 1]
mov qword [rbx], 0xffffffffffffffff
mov qword [rbx + 8], 0xffffffffffffffff
mov dword [rbx + 0x10], esi
mov dword [rbx + 0x20], esi
mov dword [rbx + 0x30], 0xffffffff
mov dword [rbx + 0x78], esi
mov qword [rbx + 0x18], rsi
mov word [rbx + 0x7c], si
mov qword [rbx + 0x28], rsi
mov word [rbx + 0x7e], si
mov dword [rbx + 0x38], esi
mov dword [rbx + 0x3c], esi
mov dword [rbx + 0x40], esi
mov qword [rbx + 0x48], 0xffffffffffffffff
mov dword [rbx + 0x50], esi
mov dword [rbx + 0x68], esi
mov qword [rbx + 0x70], rsi
mov byte [rsp + 0x20], 0
call fcn.180193d40
mov esi, eax
test eax, eax
js 0x1801936d0
mov eax, dword [rdi + 0x68]
mov dword [rbx + 0x68], eax
mov rax, qword [rdi + 0x70]
mov qword [rbx + 8], r12
mov qword [rbx + 0x70], rax
test r12, r12
je 0x1801936af
mov qword [r12], rbx
jmp 0x1801936b7
mov r14, rbx
mov qword [rsp + 0x50], rbx
xor r9d, r9d
mov r12, rbx
mov qword [rsp + 0x58], rbx
mov qword [rbx], r9
mov esi, r9d
mov r13, rbx
jmp 0x1801937e6
cmp word [rbx + 0x7c], 0
je 0x180193730
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801936e9
xor r9d, r9d
mov rdx, r9
jmp 0x1801936f5
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor r9d, r9d
mov rdx, rax
movzx eax, word [rbx + 0x7c]
cmp eax, dword [rdx + 0x250]
ja 0x180193725
mov r8, qword [rbx + 0x18]
dec eax
movsxd rcx, eax
shl rcx, 5
add rcx, qword [rdx + 0x248]
test r8, r8
je 0x180193725
mov rax, qword [rcx + 8]
mov qword [r8], rax
mov qword [rcx + 8], r8
mov word [rbx + 0x7c], r9w
mov qword [rbx + 0x18], r9
jmp 0x180193733
xor r9d, r9d
cmp word [rbx + 0x7e], 0
je 0x18019378e
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180193749
mov rdx, r9
jmp 0x180193755
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor r9d, r9d
mov rdx, rax
movzx eax, word [rbx + 0x7e]
cmp eax, dword [rdx + 0x250]
ja 0x180193785
mov r8, qword [rbx + 0x28]
dec eax
movsxd rcx, eax
shl rcx, 5
add rcx, qword [rdx + 0x248]
test r8, r8
je 0x180193785
mov rax, qword [rcx + 8]
mov qword [r8], rax
mov qword [rcx + 8], r8
mov word [rbx + 0x7e], r9w
mov qword [rbx + 0x28], r9
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1801937e6
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
je 0x1801937e3
mov edx, 0xfe
mov rcx, rbx
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
xor r9d, r9d
mov qword [rbx], r9
mov rax, qword [rdi + 0x38]
test rax, rax
je 0x1801937cf
mov qword [rax], rbx
mov qword [rdi + 0x38], rbx
jmp 0x1801937e6
mov qword [rdi + 0x30], rbx
mov qword [rdi + 0x38], rbx
jmp 0x1801937e6
mov esi, 0x8007000e
xor r9d, r9d
jmp 0x1801937e6
xor r9d, r9d
test esi, esi
js 0x18019391d
mov rax, qword [r13 + 0x18]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rsp + 0xc8]
mov rdi, qword [rsp + 0xb8]
mov qword [rax], rcx
mov rax, qword [rdx]
mov rcx, qword [r13 + 0x18]
inc r8d
mov qword [rcx + 8], rax
mov rax, qword [r13 + 0x28]
add rdx, 8
mov rsi, rbp
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0xc8], r8d
mov qword [rax], rbp
mov qword [rsp + 0x40], rdx
cmp r8d, dword [rsp + 0xc0]
jb 0x1801933d2
mov ecx, dword [rsp + 0x30]
inc ecx
mov dword [rsp + 0x30], ecx
cmp ecx, dword [rsp + 0x34]
jae 0x18019387b
lea rbx, [0x18002c3c0]
jmp 0x180193310
mov esi, 0x80004005
jmp 0x18019391d
mov esi, 0x80004005
jmp 0x18019391d
mov rcx, qword [rsp + 0x48]
mov rax, qword [r12 + 0x28]
mov qword [rax], rcx
mov ecx, r9d
test r14, r14
je 0x18019389d
mov rax, r14
mov rax, qword [rax]
inc ecx
test rax, rax
jne 0x180193893
add dword [r15 + 0x14], ecx
mov rcx, qword [rdi]
test rcx, rcx
je 0x1801938dc
test r14, r14
je 0x180193909
mov rax, qword [rcx + 8]
mov qword [r14 + 8], rax
mov rax, qword [rcx + 8]
test rax, rax
je 0x1801938c4
mov qword [rax], r14
jmp 0x1801938c8
mov qword [r15 + 0x18], r14
mov qword [r12], rcx
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], r9
mov qword [rcx + 8], r12
jmp 0x180193909
mov rax, qword [r15 + 0x20]
test rax, rax
je 0x1801938ea
mov qword [rax], r14
jmp 0x1801938ee
mov qword [r15 + 0x18], r14
test r14, r14
je 0x1801938fb
mov rax, qword [r15 + 0x20]
mov qword [r14 + 8], rax
mov qword [r15 + 0x20], r12
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], r9
or dword [r15 + 0x28], 7
mov esi, r9d
mov dword [rdi + 0x78], r9d
mov dword [rdi + 0x10], r9d
mov dword [rdi + 0x20], r9d
lea rcx, [rsp + 0x50]
call fcn.1800c5e00
mov r13, qword [rsp + 0x70]
mov rbp, qword [rsp + 0xb0]
mov eax, esi
add rsp, 0x78
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
lea rcx, [rsp + 0x50]
call fcn.1800c5e00
mov eax, esi
add rsp, 0x78
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret