Function at 0x1802019b0
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push r12
sub rsp, 0x68
mov r12, rcx
call fcn.1801b3260
mov ebp, eax
test eax, eax
js 0x1802026e1
mov edx, dword [r12 + 0xc]
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], rdi
xor esi, esi
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
mov eax, esi
test edx, edx
je 0x180201a05
mov rcx, qword [r12 + 0xce58]
mov r9, qword [rcx]
jmp 0x180201a08
mov r9, rsi
test edx, edx
je 0x180201b2b
test byte [r9 + 0x10], 2
je 0x180201b02
mov rdx, qword [r9 + 0x30]
test rdx, rdx
je 0x180201b02
nop dword [rax + rax]
mov r8, qword [rdx + 0xd0]
mov dword [rdx + 0x48], esi
mov dword [rdx + 0x4c], esi
mov dword [rdx + 0x50], esi
cmp r8, 0xffffffffffffffff
je 0x180201a8e
nop word [rax + rax]
mov rcx, qword [r8 + 0x100]
cmp rcx, 0xffffffffffffffff
je 0x180201a81
mov ecx, dword [rcx + 0x78]
and ecx, 0xfff00000
cmp ecx, 0x12600000
je 0x180201a7e
cmp ecx, 0x12b00000
je 0x180201a7e
cmp ecx, 0x23d00000
jne 0x180201a81
inc dword [rdx + 0x50]
mov r8, qword [r8 + 0xd0]
cmp r8, 0xffffffffffffffff
jne 0x180201a50
mov rcx, qword [rdx + 0x100]
cmp rcx, 0xffffffffffffffff
je 0x180201abf
mov ecx, dword [rcx + 0x78]
and ecx, 0xfff00000
cmp ecx, 0x23600000
je 0x180201abc
cmp ecx, 0x23700000
je 0x180201abc
cmp ecx, 0x23f00000
jne 0x180201abf
inc dword [rdx + 0x50]
mov rcx, qword [r9 + 0x10]
test rcx, 0x4200000
je 0x180201add
cmp dword [rdx + 0xcc], 3
jbe 0x180201af6
mov dword [rdx + 0xcc], esi
jmp 0x180201af6
test cl, 0x40
jne 0x180201af6
mov dword [rdx + 0xc8], 0xffffffff
mov dword [rdx + 0xcc], 0xffffffff
mov rdx, qword [rdx]
test rdx, rdx
jne 0x180201a30
mov ecx, dword [r12 + 0xc]
inc eax
cmp eax, ecx
jb 0x180201b14
mov r9, rsi
mov eax, ecx
jmp 0x180201b20
mov rcx, qword [r12 + 0xce58]
mov r9, qword [rcx + rax*8]
cmp eax, dword [r12 + 0xc]
jb 0x180201a10
mov r13d, esi
mov dword [rsp + 0x90], esi
nop word [rax + rax]
xor al, al
mov r15d, esi
mov byte [rsp + 0x88], al
nop dword [rax]
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x180201b74
nop word [rax + rax]
mov byte [rax + 0x5c], 0
mov byte [rax + 0x5f], 0
mov byte [rax + 0x60], 0
mov rax, qword [rax]
test rax, rax
jne 0x180201b60
mov edx, dword [r12 + 0xc]
mov eax, esi
test edx, edx
je 0x180201b8c
mov rcx, qword [r12 + 0xce58]
mov r9, qword [rcx]
jmp 0x180201b8f
mov r9, rsi
test edx, edx
je 0x180201c1d
test byte [r9 + 0x10], 2
je 0x180201bf4
mov r8, qword [r9 + 0x30]
test r8, r8
je 0x180201bf4
test byte [r9 + 0x10], 0x40
je 0x180201be4
mov rdx, qword [r8 + 0x100]
cmp rdx, 0xffffffffffffffff
je 0x180201bc9
movzx ecx, byte [r8 + 0xc8]
and cl, 0x1f
mov byte [rdx + 0x5c], cl
mov ecx, dword [r8 + 0xc8]
mov edx, 1
mov dword [r8 + 0x4c], esi
and ecx, 0x1f
shl edx, cl
mov dword [r8 + 0x48], edx
jmp 0x180201bec
mov dword [r8 + 0x48], esi
mov dword [r8 + 0x4c], esi
mov r8, qword [r8]
test r8, r8
jne 0x180201ba7
mov ecx, dword [r12 + 0xc]
inc eax
cmp eax, ecx
jb 0x180201c06
mov r9, rsi
mov eax, ecx
jmp 0x180201c12
mov rcx, qword [r12 + 0xce58]
mov r9, qword [rcx + rax*8]
cmp eax, dword [r12 + 0xc]
jb 0x180201b97
mov rdi, qword [r12 + 0x20]
test rdi, rdi
je 0x180201c2d
mov rbx, qword [rdi + 8]
jmp 0x180201c30
mov rbx, rsi
test rdi, rdi
je 0x1802021b7
nop dword [rax]
mov edx, dword [rdi + 0x78]
mov ecx, edx
and ecx, 0xfff00000
je 0x180201e3e
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rsi
mov r8, qword [rax]
cmp dword [r8 + 0x50], r13d
je 0x180201c8e
mov r9d, r13d
mov r8d, r15d
mov rdx, rdi
mov rcx, r12
call fcn.180201730
mov ebp, eax
test eax, eax
js 0x180201cdc
lea rcx, [rsp + 0x30]
call fcn.1800c5e00
jmp 0x180201e3e
mov byte [rsp + 0x88], 1
test r15d, r15d
jne 0x180201ceb
cmp ecx, 0x50a00000
je 0x180201cbf
cmp ecx, 0x12700000
je 0x180201cbf
cmp ecx, 0x12a00000
je 0x180201cbf
cmp ecx, 0x13100000
jne 0x180201e19
lea r9, [rsp + 0x30]
mov r8b, 1
mov rdx, rdi
mov rcx, r12
call fcn.1801ff9f0
mov ebp, eax
test eax, eax
jns 0x180201f44
lea rcx, [rsp + 0x30]
call fcn.1800c5e00
jmp 0x1802026c0
cmp r15d, 1
jne 0x180201d83
cmp ecx, 0x70000000
jne 0x180201d28
mov r8, qword [r12 + 0xd0f8]
lea rax, [rsp + 0x30]
xor r9d, r9d
mov rdx, rdi
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.1801ff470
mov ebp, eax
test eax, eax
js 0x180201cdc
jmp 0x180201f44
cmp ecx, 0x50500000
je 0x180201d54
cmp ecx, 0x50600000
je 0x180201d54
cmp ecx, 0x50700000
je 0x180201d54
cmp ecx, 0x50800000
je 0x180201d54
cmp ecx, 0x50900000
jne 0x180201e19
mov r8, qword [r12 + 0xd0f0]
lea rax, [rsp + 0x30]
xor r9d, r9d
mov rdx, rdi
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.1801ff470
mov ebp, eax
test eax, eax
js 0x180201cdc
jmp 0x180201f44
cmp r15d, 2
jne 0x180201f0f
cmp ecx, 0x50a00000
je 0x180201e19
cmp ecx, 0x12700000
je 0x180201e19
cmp ecx, 0x12a00000
je 0x180201e19
cmp ecx, 0x13100000
je 0x180201e19
cmp ecx, 0x70000000
je 0x180201e19
cmp ecx, 0x50500000
je 0x180201e19
cmp ecx, 0x50600000
je 0x180201e19
cmp ecx, 0x50700000
je 0x180201e19
cmp ecx, 0x50800000
je 0x180201e19
cmp ecx, 0x50900000
je 0x180201e19
cmp ecx, 0x51000000
ja 0x180201e53
cmp ecx, 0x51000000
je 0x180201e19
cmp ecx, 0x50b00000
je 0x180201e19
cmp ecx, 0x50c00000
je 0x180201e19
cmp ecx, 0x50d00000
je 0x180201e19
cmp ecx, 0x50e00000
je 0x180201e19
cmp ecx, 0x50f00000
jne 0x180201e73
mov r9d, r13d
mov r8d, r15d
mov rdx, rdi
mov rcx, r12
call fcn.180201730
mov ebp, eax
test eax, eax
js 0x180201cdc
lea rcx, [rsp + 0x30]
call fcn.1800c5e00
mov rdi, rbx
test rbx, rbx
je 0x1802021b7
mov rbx, qword [rbx + 8]
jmp 0x180201c40
cmp ecx, 0x51100000
je 0x180201e19
cmp ecx, 0x51200000
je 0x180201e19
cmp ecx, 0x51300000
je 0x180201e19
cmp ecx, 0x51400000
je 0x180201e19
mov eax, edx
and eax, 0xf0000000
cmp eax, 0xa0000000
je 0x180201e19
cmp ecx, 0x80200000
je 0x180201e19
shr edx, 0x1c
cmp edx, 1
je 0x180201ef0
cmp edx, 2
je 0x180201ef0
cmp edx, 3
je 0x180201ef0
cmp edx, 4
je 0x180201ef0
cmp ecx, 0x80100000
je 0x180201ef0
cmp ecx, 0x50000000
je 0x180201ed4
cmp ecx, 0x90700000
je 0x180201ed4
lea r8, [rsp + 0x30]
mov rdx, rdi
mov rcx, r12
call fcn.180200ee0
mov ebp, eax
test eax, eax
js 0x180201cdc
jmp 0x180201f44
lea r8, [rsp + 0x30]
mov rdx, rdi
mov rcx, r12
call fcn.180200630
mov ebp, eax
test eax, eax
js 0x180201cdc
jmp 0x180201f44
lea r9, [rsp + 0x30]
xor r8d, r8d
mov rdx, rdi
mov rcx, r12
call fcn.1801ff9f0
mov ebp, eax
test eax, eax
js 0x180201cdc
jmp 0x180201f44
cmp ecx, 0x80200000
jne 0x180201e19
mov r8, qword [r8 + 0xa8]
lea rax, [rsp + 0x30]
mov r9b, 1
mov rdx, rdi
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.1801ff470
mov ebp, eax
test eax, eax
js 0x180201cdc
mov r14, qword [rsp + 0x30]
test r14, r14
je 0x180201e19
mov rsi, r14
xor eax, eax
mov r8d, eax
cmp dword [rsi + 0x20], eax
jbe 0x180201f8d
mov rdx, rax
nop word [rax + rax]
mov rax, qword [rsi + 0x28]
inc r8d
add rdx, 8
mov rcx, qword [rdx + rax - 8]
mov qword [rcx + 0x100], rsi
cmp r8d, dword [rsi + 0x20]
jb 0x180201f70
mov r9d, r13d
mov r8d, r15d
mov rdx, rsi
mov rcx, r12
call fcn.180201730
mov ebp, eax
test eax, eax
js 0x180201cdc
mov rsi, qword [rsi]
test rsi, rsi
jne 0x180201f55
mov r13d, esi
test rdi, rdi
je 0x18020219d
mov rax, qword [rdi + 8]
mov rbp, qword [rdi]
test rax, rax
je 0x180201fcd
mov qword [rax], rbp
jmp 0x180201fd2
mov qword [r12 + 0x18], rbp
mov rcx, qword [rdi]
test rcx, rcx
je 0x180201fe4
mov rax, qword [rdi + 8]
mov qword [rcx + 8], rax
jmp 0x180201fed
mov rax, qword [rdi + 8]
mov qword [r12 + 0x20], rax
mov qword [rdi], 0xffffffffffffffff
mov qword [rdi + 8], 0xffffffffffffffff
cmp word [rdi + 0x7c], 0
je 0x180202050
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180202012
mov rax, rsi
jmp 0x180202018
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rdi + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x180202048
mov r8, qword [rdi + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x180202048
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rdi + 0x7c], si
mov qword [rdi + 0x18], rsi
cmp word [rdi + 0x7e], 0
je 0x1802020a4
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x180202066
mov rax, rsi
jmp 0x18020206c
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rdi + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x18020209c
mov r8, qword [rdi + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x18020209c
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rdi + 0x7e], si
mov qword [rdi + 0x28], rsi
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1802020f6
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rax, rax
je 0x1802020f4
mov edx, 0xfe
mov rcx, rdi
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rdi], 0
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x1802020e8
mov qword [rax], rdi
mov qword [rsi + 0x38], rdi
xor esi, esi
jmp 0x1802020f6
mov qword [rsi + 0x30], rdi
mov qword [rsi + 0x38], rdi
xor esi, esi
jmp 0x1802020f6
xor esi, esi
inc r13d
mov rdi, rbp
cmp r13d, 1
jb 0x180201fb3
mov ecx, esi
mov rax, r14
nop dword [rax + rax]
mov rax, qword [rax]
inc ecx
test rax, rax
jne 0x180202110
lea eax, [rcx - 1]
add dword [r12 + 0x14], eax
test rbp, rbp
je 0x180202162
mov rax, qword [rbp + 8]
mov qword [r14 + 8], rax
mov rax, qword [rbp + 8]
test rax, rax
je 0x18020213d
mov qword [rax], r14
jmp 0x180202142
mov qword [r12 + 0x18], r14
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rsi
mov qword [rax], rbp
mov qword [rbp + 8], rax
or dword [r12 + 0x28], 7
mov ebp, esi
jmp 0x1802021a2
mov rax, qword [r12 + 0x20]
test rax, rax
je 0x180202171
mov qword [rax], r14
jmp 0x180202176
mov qword [r12 + 0x18], r14
mov rax, qword [r12 + 0x20]
mov qword [rsp + 0x30], rsi
mov ebp, esi
mov qword [r14 + 8], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x38], rsi
mov qword [r12 + 0x20], rax
or dword [r12 + 0x28], 7
jmp 0x1802021a2
mov ebp, 0x80004005
test ebp, ebp
js 0x180201cdc
mov r13d, dword [rsp + 0x90]
jmp 0x180201e34
inc r15d
cmp r15d, 4
jb 0x180201b50
movzx eax, byte [rsp + 0x88]
inc r13d
mov dword [rsp + 0x90], r13d
test al, al
je 0x1802021e8
cmp r13d, 0x80
jb 0x180201b40
mov r8d, dword [r12 + 0xc]
mov eax, esi
test r8d, r8d
je 0x180202201
mov rcx, qword [r12 + 0xce58]
mov rdx, qword [rcx]
jmp 0x180202204
mov rdx, rsi
test r8d, r8d
je 0x18020223e
nop dword [rax]
test byte [rdx + 0x10], 0x40
jne 0x180202219
mov dword [rdx + 0x28], esi
mov ecx, dword [r12 + 0xc]
inc eax
cmp eax, ecx
jb 0x18020222b
mov rdx, rsi
mov eax, ecx
jmp 0x180202237
mov rcx, qword [r12 + 0xce58]
mov rdx, qword [rcx + rax*8]
cmp eax, dword [r12 + 0xc]
jb 0x180202210
mov rbx, qword [r12 + 0x18]
test rbx, rbx
je 0x1802026be
nop dword [rax]
test dword [rbx + 0x78], 0xfff00000
je 0x1802026b2
cmp dword [rbx + 0x20], 0
je 0x1802026b2
mov edi, esi
nop dword [rax]
mov r11d, dword [rbx + 0x78]
mov edx, r11d
and edx, 0xfff00000
cmp edx, 0x70100000
ja 0x1802023ff
cmp edx, 0x70100000
je 0x18020245f
cmp edx, 0x51b00000
ja 0x18020234e
cmp edx, 0x51b00000
je 0x180202457
cmp edx, 0x50700000
ja 0x180202315
cmp edx, 0x50700000
je 0x18020230c
cmp edx, 0x50400000
ja 0x1802022f8
cmp edx, 0x50400000
je 0x18020230c
test edx, edx
je 0x1802022f0
cmp edx, 0x50000000
je 0x18020230c
cmp edx, 0x50200000
jne 0x1802025e9
mov r11d, 1
jmp 0x180202481
mov r11d, esi
jmp 0x180202481
cmp edx, 0x50500000
je 0x18020230c
cmp edx, 0x50600000
jne 0x1802025e9
mov r11d, dword [rbx + 0x20]
jmp 0x180202481
cmp edx, 0x50800000
je 0x18020230c
cmp edx, 0x50900000
je 0x18020230c
cmp edx, 0x51500000
je 0x180202457
cmp edx, 0x51600000
je 0x180202457
cmp edx, 0x51a00000
je 0x180202457
jmp 0x1802025e9
cmp edx, 0x68500000
ja 0x1802023c3
cmp edx, 0x68500000
je 0x1802023ab
cmp edx, 0x52400000
ja 0x180202397
cmp edx, 0x52400000
je 0x18020230c
cmp edx, 0x51c00000
je 0x180202457
cmp edx, 0x51f00000
je 0x180202457
cmp edx, 0x52000000
je 0x180202457
jmp 0x1802025e9
cmp edx, 0x67c00000
je 0x1802023b7
cmp edx, 0x68400000
jne 0x1802025e9
and r11d, 0xfffff
jmp 0x180202481
and r11d, 0xfffff
jmp 0x180202481
cmp edx, 0x68600000
je 0x1802023f4
cmp edx, 0x68700000
je 0x1802023ab
cmp edx, 0x68800000
je 0x1802023ab
cmp edx, 0x68900000
je 0x1802023f4
cmp edx, 0x70000000
je 0x18020230c
jmp 0x1802025e9
mov r11d, 2
jmp 0x180202481
cmp edx, 0xa0800000
ja 0x180202545
cmp edx, 0xa0800000
je 0x18020247b
cmp edx, 0xa0200000
ja 0x180202504
cmp edx, 0xa0200000
je 0x18020247b
cmp edx, 0x90700000
ja 0x180202467
cmp edx, 0x90700000
je 0x18020230c
cmp edx, 0x70300000
je 0x18020245f
cmp edx, 0x80000000
je 0x180202457
cmp edx, 0x80200000
jne 0x1802025e9
mov r11d, 1
jmp 0x180202481
mov r11d, 1
jmp 0x180202481
cmp edx, 0xa0000000
je 0x18020247b
cmp edx, 0xa0100000
jne 0x1802025e9
mov r11d, 1
mov ecx, r11d
imul ecx, edi
lea eax, [rcx + r11]
cmp eax, dword [rbx + 0x20]
ja 0x1802026b2
mov rax, qword [rbx + 0x28]
lea r10, [rax + rcx*8]
test r11d, r11d
je 0x1802026b2
mov rax, qword [r10]
mov r8, qword [rax + 0xa8]
test byte [r8 + 0x10], 0x40
jne 0x1802024fd
mov r9d, esi
test r11d, r11d
je 0x1802024eb
nop
mov eax, dword [r8 + 0x28]
mov rdx, qword [r10]
mov rcx, rbx
mov dword [rdx + 0xc8], eax
call fcn.180197000
add r10, 8
imul eax, r9d
inc r9d
mov dword [rdx + 0xcc], eax
cmp r9d, r11d
jb 0x1802024c0
inc dword [r8 + 0x28]
mov eax, dword [r8 + 0x28]
cmp dword [r8 + 0x18], eax
jae 0x1802024fd
mov dword [r8 + 0x18], eax
inc edi
jmp 0x180202270
cmp edx, 0xa0300000
je 0x18020247b
cmp edx, 0xa0400000
je 0x18020247b
cmp edx, 0xa0500000
je 0x18020247b
cmp edx, 0xa0600000
je 0x18020247b
cmp edx, 0xa0700000
je 0x18020247b
jmp 0x1802025e9
cmp edx, 0xa0f00000
ja 0x1802025ad
cmp edx, 0xa0f00000
je 0x18020247b
cmp edx, 0xa0c00000
ja 0x180202593
cmp edx, 0xa0c00000
je 0x18020247b
cmp edx, 0xa0900000
je 0x18020247b
cmp edx, 0xa0a00000
je 0x18020247b
cmp edx, 0xa0b00000
je 0x18020247b
jmp 0x1802025e9
cmp edx, 0xa0d00000
je 0x18020247b
cmp edx, 0xa0e00000
je 0x18020247b
jmp 0x1802025e9
cmp edx, 0xa1000000
je 0x18020247b
cmp edx, 0xa1100000
je 0x18020247b
cmp edx, 0xa1200000
je 0x18020247b
cmp edx, 0xa1300000
je 0x18020247b
cmp edx, 0xa1400000
je 0x18020247b
mov ecx, r11d
call fcn.180242918
test al, al
jne 0x18020262d
cmp edx, 0x65500000
ja 0x180202652
cmp edx, 0x65500000
je 0x18020262d
cmp edx, 0x62f00000
ja 0x180202638
cmp edx, 0x62f00000
je 0x18020262d
cmp edx, 0x62c00000
je 0x18020262d
cmp edx, 0x62d00000
je 0x18020262d
cmp edx, 0x62e00000
jne 0x18020268c
mov r11d, 1
jmp 0x180202481
cmp edx, 0x65200000
je 0x18020262d
cmp edx, 0x65300000
je 0x18020262d
cmp edx, 0x65400000
je 0x18020262d
jmp 0x18020268c
cmp edx, 0x67500000
ja 0x18020267c
cmp edx, 0x67500000
je 0x18020262d
cmp edx, 0x66000000
je 0x18020262d
cmp edx, 0x66100000
je 0x18020262d
cmp edx, 0x67400000
je 0x18020262d
jmp 0x18020268c
cmp edx, 0x67600000
je 0x18020262d
cmp edx, 0x67700000
je 0x18020262d
mov eax, r11d
and eax, 0xf0000000
cmp eax, 0x60000000
jne 0x1802026a6
mov r11d, 4
jmp 0x180202481
and r11d, 0xfffff
jmp 0x180202481
mov rbx, qword [rbx]
test rbx, rbx
jne 0x180202250
mov ebp, esi
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x80]
mov r15, qword [rsp + 0x40]
mov eax, ebp
add rsp, 0x68
pop r12
pop rbp
ret