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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x98
xor edi, edi
mov r11d, r9d
mov r15, rdx
mov ebx, edi
mov r13, rcx
mov qword [rsp + 0x38], rdi
mov r14, rdi
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x48], ebx
test r9d, r9d
jne 0x1801a86d2
lea rcx, [rsp + 0x38]
call fcn.1800c5e00
mov eax, 0x80004005
add rsp, 0x98
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret
test byte [rcx + 0xcf00], 0x80
jne 0x1801a872f
test rdx, rdx
je 0x1801a86e9
mov rbx, qword [rdx + 0x70]
test rbx, rbx
jne 0x1801a86ec
mov rbx, rdi
mov rax, qword [rcx]
call qword [rax + 0x18]
lea r9, [0x180047ff0]
mov r8d, 0xdda
mov rdx, rbx
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.18019df20
lea rcx, [rsp + 0x38]
call fcn.1800c5e00
mov eax, 1
add rsp, 0x98
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret
mov ecx, edi
test r9d, r9d
je 0x1801a875b
mov rax, r8
nop dword [rax]
mov rdx, qword [rax]
cmp rdx, 0xffffffffffffffff
je 0x1801a880a
inc ecx
add rax, 8
mov byte [rdx + 0x48], bl
cmp ecx, r11d
jb 0x1801a8740
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0x90], r12
test r9d, r9d
je 0x1801a87d0
mov r10, qword [rsp + 0x108]
mov rdx, r8
mov r9, r11
nop
mov rcx, qword [rdx]
mov r8, qword [rcx + 0xa8]
mov eax, dword [r8 + 0x10]
bt rax, 0x18
jae 0x1801a87b0
cmp qword [rcx + 0xe0], rcx
jne 0x1801a87b0
cmp qword [r8 + 0x20], r10
jne 0x1801a87b0
cmp byte [rcx + 0x48], dil
jne 0x1801a87b0
mov byte [rcx + 0x48], 1
inc ebx
add rdx, 8
sub r9, 1
jne 0x1801a8780
mov r8, qword [rsp + 0xe0]
mov dword [rsp + 0x48], ebx
nop word [rax + rax]
mov r10d, 1
mov ecx, edi
mov rax, rdi
mov dword [rsp + 0x30], r10d
test r11d, r11d
je 0x1801a96bc
nop dword [rax]
mov r12, qword [r8 + rax*8]
cmp byte [r12 + 0x48], dil
jne 0x1801a8814
inc ecx
inc rax
cmp ecx, r11d
jb 0x1801a87f0
jmp 0x1801a96bc
mov esi, 0x80004005
jmp 0x1801a96d1
mov dword [rsp + 0x78], ecx
inc ecx
mov byte [r12 + 0x48], dil
cmp ecx, r11d
jae 0x1801a8877
lea r9, [rsp + 0x7c]
lea r8, [r8 + rax*8 + 8]
nop
cmp r10d, 5
jae 0x1801a8868
mov rdx, qword [r8]
cmp byte [rdx + 0x48], dil
je 0x1801a885d
mov eax, dword [r12 + 0x13c]
cmp dword [rdx + 0x13c], eax
jne 0x1801a885d
mov dword [r9], ecx
inc r10d
mov byte [rdx + 0x48], dil
add r9, 4
inc ecx
add r8, 8
cmp ecx, r11d
jb 0x1801a8830
mov dword [rsp + 0x30], r10d
cmp r10d, 4
ja 0x1801a96bc
mov ecx, dword [0x18025e63c]
mov ebp, dword [r12 + 0x13c]
mov rsi, qword [r13 + 0xd040]
test ecx, ecx
jns 0x1801a8895
mov rcx, rdi
jmp 0x1801a889e
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
cmp qword [rcx + 0x18], rdi
je 0x1801a88d1
mov rbx, qword [rcx + 0x18]
test rbx, rbx
jne 0x1801a88b2
mov rbx, rdi
jmp 0x1801a88e8
mov rax, qword [rbx]
mov qword [rcx + 0x18], rax
test rax, rax
jne 0x1801a88c2
mov qword [rcx + 0x20], rdi
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x1801a88e8
mov rcx, qword [rcx + 0x10]
mov edx, 0x188
mov r8d, 0x10
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x1801a89de
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
mov qword [rbx], rdi
mov qword [rbx + 8], rdi
mov qword [rbx + 0x78], rdi
mov qword [rbx + 0x80], rdi
mov qword [rbx + 0x88], rdi
mov qword [rbx + 0x90], rdi
mov dword [rbx + 0xa0], 0xffffffff
mov qword [rbx + 0xa8], 0xffffffffffffffff
mov qword [rbx + 0x40], rdi
call fcn.1801992b0
mov esi, eax
test eax, eax
js 0x1801a8982
mov r9d, 0xc
mov r8, rbp
mov rdx, r13
mov dword [rbx + 0xa4], 0xc
call fcn.18019a2c0
mov esi, eax
test eax, eax
js 0x1801a8982
mov r8b, 1
mov rdx, rbx
mov rcx, r13
call fcn.18019ec70
mov esi, eax
test eax, eax
js 0x1801a8982
mov esi, edi
mov rbp, rbx
mov qword [rsp + 0x50], rbx
jmp 0x1801a89e8
mov rcx, rbx
call fcn.1801991c0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a8999
mov rbp, rdi
jmp 0x1801a89a2
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
mov edx, 0xfe
mov r8d, 0x188
mov rcx, rbx
call fcn.18024adb8
mov qword [rbx], rdi
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x1801a89cf
mov qword [rax], rbx
mov qword [rbp + 0x20], rbx
mov rbp, qword [rsp + 0x50]
jmp 0x1801a89e8
mov qword [rbp + 0x18], rbx
mov qword [rbp + 0x20], rbx
mov rbp, qword [rsp + 0x50]
jmp 0x1801a89e8
mov rbp, qword [rsp + 0x50]
mov esi, 0x8007000e
test esi, esi
js 0x1801a96c1
mov qword [rbp + 0xe0], rbp
cmp byte [rsp + 0x100], dil
je 0x1801a8dec
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a8a14
mov rcx, rdi
jmp 0x1801a8a1d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
cmp qword [rcx + 0x30], rdi
je 0x1801a8a50
mov rbx, qword [rcx + 0x30]
test rbx, rbx
jne 0x1801a8a31
mov rbx, rdi
jmp 0x1801a8a65
mov rax, qword [rbx]
mov qword [rcx + 0x30], rax
test rax, rax
jne 0x1801a8a41
mov qword [rcx + 0x38], rdi
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x1801a8a65
mov rcx, qword [rcx + 0x28]
mov edx, 0x80
lea r8d, [rdx - 0x70]
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x1801a8c15
or r9d, 0xffffffff
mov edx, 0x20100001
mov rcx, rbx
or r8d, r9d
mov qword [rbx], 0xffffffffffffffff
mov qword [rbx + 8], 0xffffffffffffffff
mov dword [rbx + 0x10], edi
mov dword [rbx + 0x20], edi
mov dword [rbx + 0x30], 0xffffffff
mov dword [rbx + 0x78], edi
mov qword [rbx + 0x18], rdi
mov word [rbx + 0x7c], di
mov qword [rbx + 0x28], rdi
mov word [rbx + 0x7e], di
mov dword [rbx + 0x38], edi
mov dword [rbx + 0x3c], edi
mov dword [rbx + 0x40], edi
mov qword [rbx + 0x48], 0xffffffffffffffff
mov dword [rbx + 0x50], edi
mov dword [rbx + 0x68], edi
mov qword [rbx + 0x70], rdi
mov byte [rsp + 0x20], dil
call fcn.180193d40
mov esi, eax
test eax, eax
js 0x1801a8b13
mov eax, dword [r15 + 0x68]
mov dword [rbx + 0x68], eax
mov rax, qword [r15 + 0x70]
mov qword [rbx + 8], r14
mov qword [rbx + 0x70], rax
test r14, r14
je 0x1801a8af4
mov qword [r14], rbx
jmp 0x1801a8af9
mov qword [rsp + 0x38], rbx
mov qword [rbx], rdi
mov r14, rbx
mov qword [rsp + 0x40], rbx
mov esi, edi
mov r15, rbx
mov qword [rsp + 0x68], rbx
jmp 0x1801a8c32
cmp word [rbx + 0x7c], di
je 0x1801a8b66
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a8b28
mov rax, rdi
jmp 0x1801a8b2e
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1801a8b5e
mov r8, qword [rbx + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801a8b5e
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7c], di
mov qword [rbx + 0x18], rdi
cmp word [rbx + 0x7e], di
je 0x1801a8bb9
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a8b7b
mov rax, rdi
jmp 0x1801a8b81
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1801a8bb1
mov r8, qword [rbx + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801a8bb1
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7e], di
mov qword [rbx + 0x28], rdi
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1801a8c2d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
test rax, rax
je 0x1801a8c21
mov edx, 0xfe
mov rcx, rbx
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rbx], rdi
mov rax, qword [rbp + 0x38]
test rax, rax
je 0x1801a8c01
mov r15, qword [rsp + 0x68]
mov qword [rax], rbx
mov qword [rbp + 0x38], rbx
mov rbp, qword [rsp + 0x50]
jmp 0x1801a8c32
mov r15, qword [rsp + 0x68]
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], rbx
mov rbp, qword [rsp + 0x50]
jmp 0x1801a8c32
mov r15, qword [rsp + 0x68]
mov esi, 0x8007000e
jmp 0x1801a8c32
mov rbp, qword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
jmp 0x1801a8c32
mov r15, qword [rsp + 0x68]
test esi, esi
js 0x1801a96c1
mov rax, qword [r15 + 0x18]
mov qword [rax], rbp
mov rcx, qword [r15 + 0x18]
mov rax, qword [r12 + 0xc0]
mov qword [rcx + 8], rax
mov ecx, dword [0x18025e63c]
mov rsi, qword [r13 + 0xd078]
test ecx, ecx
jns 0x1801a8c67
mov rcx, rdi
jmp 0x1801a8c70
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
cmp qword [rcx + 0x18], rdi
je 0x1801a8ca3
mov rbx, qword [rcx + 0x18]
test rbx, rbx
jne 0x1801a8c84
mov rbx, rdi
jmp 0x1801a8cba
mov rax, qword [rbx]
mov qword [rcx + 0x18], rax
test rax, rax
jne 0x1801a8c94
mov qword [rcx + 0x20], rdi
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x1801a8cba
mov rcx, qword [rcx + 0x10]
mov edx, 0x188
mov r8d, 0x10
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x1801a8dc9
or r9d, 0xffffffff
mov rdx, rsi
mov rcx, rbx
or r8d, r9d
mov qword [rbx], rdi
mov qword [rbx + 8], rdi
mov qword [rbx + 0x78], rdi
mov qword [rbx + 0x80], rdi
mov qword [rbx + 0x88], rdi
mov qword [rbx + 0x90], rdi
mov dword [rbx + 0xa0], 0xffffffff
mov qword [rbx + 0xa8], 0xffffffffffffffff
mov qword [rbx + 0x40], rdi
call fcn.1801992b0
mov esi, eax
test eax, eax
js 0x1801a8d70
mov dword [rbx + 0xa4], 0xc
call fcn.18019c4f0
test al, al
je 0x1801a8d32
or qword [rbx + 0x98], 0x20000
mov rax, qword [rbx + 0xa8]
mov rcx, qword [rax + 0x10]
test cl, 0x10
je 0x1801a8d51
bt rcx, 0x15
jae 0x1801a8d51
or qword [rbx + 0x98], 0x10
mov eax, dword [r13 + 0x10]
mov esi, edi
mov rbp, rbx
mov dword [rbx + 0xa0], eax
inc dword [r13 + 0x10]
or dword [r13 + 0x28], 4
mov qword [rsp + 0x50], rbx
jmp 0x1801a8dce
call fcn.1801991c0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a8d84
mov rbp, rdi
jmp 0x1801a8d8d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
mov edx, 0xfe
mov r8d, 0x188
mov rcx, rbx
call fcn.18024adb8
mov qword [rbx], rdi
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x1801a8dba
mov qword [rax], rbx
mov qword [rbp + 0x20], rbx
mov rbp, qword [rsp + 0x50]
jmp 0x1801a8dce
mov qword [rbp + 0x18], rbx
mov qword [rbp + 0x20], rbx
mov rbp, qword [rsp + 0x50]
jmp 0x1801a8dce
mov esi, 0x8007000e
test esi, esi
js 0x1801a96c1
mov rax, qword [r15 + 0x28]
mov r15, qword [rsp + 0xd8]
mov qword [rax], rbp
mov qword [rbp + 0xe0], rbp
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a8dfb
mov rcx, rdi
jmp 0x1801a8e04
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
cmp qword [rcx + 0x30], rdi
je 0x1801a8e37
mov rbx, qword [rcx + 0x30]
test rbx, rbx
jne 0x1801a8e18
mov rbx, rdi
jmp 0x1801a8e4c
mov rax, qword [rbx]
mov qword [rcx + 0x30], rax
test rax, rax
jne 0x1801a8e28
mov qword [rcx + 0x38], rdi
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x1801a8e4c
mov rcx, qword [rcx + 0x28]
mov edx, 0x80
lea r8d, [rdx - 0x70]
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x1801a8fef
or r9d, 0xffffffff
mov edx, 0x67a00004
mov rcx, rbx
or r8d, r9d
mov qword [rbx], 0xffffffffffffffff
mov qword [rbx + 8], 0xffffffffffffffff
mov dword [rbx + 0x10], edi
mov dword [rbx + 0x20], edi
mov dword [rbx + 0x30], 0xffffffff
mov dword [rbx + 0x78], edi
mov qword [rbx + 0x18], rdi
mov word [rbx + 0x7c], di
mov qword [rbx + 0x28], rdi
mov word [rbx + 0x7e], di
mov dword [rbx + 0x38], edi
mov dword [rbx + 0x3c], edi
mov dword [rbx + 0x40], edi
mov qword [rbx + 0x48], 0xffffffffffffffff
mov dword [rbx + 0x50], edi
mov dword [rbx + 0x68], edi
mov qword [rbx + 0x70], rdi
mov byte [rsp + 0x20], dil
call fcn.180193d40
mov esi, eax
test eax, eax
js 0x1801a8ef7
mov eax, dword [r15 + 0x68]
mov dword [rbx + 0x68], eax
mov rax, qword [r15 + 0x70]
mov qword [rbx + 8], r14
mov qword [rbx + 0x70], rax
test r14, r14
je 0x1801a8edb
mov qword [r14], rbx
jmp 0x1801a8ee0
mov qword [rsp + 0x38], rbx
mov qword [rbx], rdi
mov qword [rsp + 0x40], rbx
mov esi, edi
mov r12, rbx
mov qword [rsp + 0x60], rbx
jmp 0x1801a9007
cmp word [rbx + 0x7c], di
je 0x1801a8f4a
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a8f0c
mov rax, rdi
jmp 0x1801a8f12
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7c]
cmp ecx, dword [rax + 0x250]
ja 0x1801a8f42
mov r8, qword [rbx + 0x18]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801a8f42
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7c], di
mov qword [rbx + 0x18], rdi
cmp word [rbx + 0x7e], di
je 0x1801a8f9d
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a8f5f
mov rax, rdi
jmp 0x1801a8f65
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movzx ecx, word [rbx + 0x7e]
cmp ecx, dword [rax + 0x250]
ja 0x1801a8f95
mov r8, qword [rbx + 0x28]
dec ecx
movsxd rdx, ecx
shl rdx, 5
add rdx, qword [rax + 0x248]
test r8, r8
je 0x1801a8f95
mov rax, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r8
mov word [rbx + 0x7e], di
mov qword [rbx + 0x28], rdi
mov ecx, dword [0x18025e63c]
test ecx, ecx
js 0x1801a8ffb
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
test rax, rax
je 0x1801a9002
mov edx, 0xfe
mov rcx, rbx
lea r8d, [rdx - 0x7e]
call fcn.18024adb8
mov qword [rbx], rdi
mov rax, qword [rbp + 0x38]
test rax, rax
je 0x1801a8fe0
mov r12, qword [rsp + 0x60]
mov qword [rax], rbx
mov qword [rbp + 0x38], rbx
jmp 0x1801a9007
mov r12, qword [rsp + 0x60]
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], rbx
jmp 0x1801a9007
mov r12, qword [rsp + 0x60]
mov esi, 0x8007000e
jmp 0x1801a9007
mov r12, qword [rsp + 0x60]
jmp 0x1801a9007
mov r12, qword [rsp + 0x60]
test esi, esi
js 0x1801a96c1
mov rax, qword [r12 + 0x28]
mov r10, qword [rsp + 0xf0]
mov rcx, r13
mov qword [rax], 0xffffffffffffffff
mov qword [rax + 8], 0xffffffffffffffff
mov qword [rax + 0x10], 0xffffffffffffffff
mov rdx, r10
mov qword [rax + 0x18], 0xffffffffffffffff
call fcn.180191d40
mov ebp, edi
mov dword [rsp + 0x58], edi
mov r15d, eax
cmp dword [rsp + 0x30], edi
jbe 0x1801a94da
lea r14, [rsp + 0x78]
nop
mov ecx, dword [r14]
mov rax, qword [rsp + 0xe0]
mov r12, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx + 0x28]
mov esi, dword [r12 + 0xcc]
cmp qword [rcx + rsi*8], 0xffffffffffffffff
jne 0x1801a9693
cmp byte [rsp + 0x100], dil
je 0x1801a9214
mov ecx, dword [0x18025e63c]
mov rsi, qword [r13 + 0xd078]
test ecx, ecx
jns 0x1801a90af
mov rcx, rdi
jmp 0x1801a90b8
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
cmp qword [rcx + 0x18], rdi
je 0x1801a90eb
mov rbx, qword [rcx + 0x18]
test rbx, rbx
jne 0x1801a90cc
mov rbx, rdi
jmp 0x1801a9102
mov rax, qword [rbx]
mov qword [rcx + 0x18], rax
test rax, rax
jne 0x1801a90dc
mov qword [rcx + 0x20], rdi
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x1801a9102
mov rcx, qword [rcx + 0x10]
mov edx, 0x188
mov r8d, 0x10
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x1801a9202
or r9d, 0xffffffff
mov rdx, rsi
mov rcx, rbx
or r8d, r9d
mov qword [rbx], rdi
mov qword [rbx + 8], rdi
mov qword [rbx + 0x78], rdi
mov qword [rbx + 0x80], rdi
mov qword [rbx + 0x88], rdi
mov qword [rbx + 0x90], rdi
mov dword [rbx + 0xa0], 0xffffffff
mov qword [rbx + 0xa8], 0xffffffffffffffff
mov qword [rbx + 0x40], rdi
call fcn.1801992b0
mov esi, eax
test eax, eax
js 0x1801a91ab
call fcn.18019c4f0
test al, al
je 0x1801a9170
or qword [rbx + 0x98], 0x20000
mov rax, qword [rbx + 0xa8]
mov rcx, qword [rax + 0x10]
test cl, 0x10
je 0x1801a918f
bt rcx, 0x15
jae 0x1801a918f
or qword [rbx + 0x98], 0x10
mov eax, dword [r13 + 0x10]
mov esi, edi
mov qword [rsp + 0x70], rbx
mov dword [rbx + 0xa0], eax
inc dword [r13 + 0x10]
or dword [r13 + 0x28], 4
jmp 0x1801a9207
call fcn.1801991c0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a91bf
mov rbp, rdi
jmp 0x1801a91c8
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
mov edx, 0xfe
mov r8d, 0x188
mov rcx, rbx
call fcn.18024adb8
mov qword [rbx], rdi
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x1801a91f4
mov qword [rax], rbx
mov qword [rbp + 0x20], rbx
mov ebp, dword [rsp + 0x58]
jmp 0x1801a9207
mov qword [rbp + 0x18], rbx
mov qword [rbp + 0x20], rbx
mov ebp, dword [rsp + 0x58]
jmp 0x1801a9207
mov esi, 0x8007000e
test esi, esi
js 0x1801a96c1
jmp 0x1801a9387
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a9223
mov rcx, rdi
jmp 0x1801a922c
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
cmp qword [rcx + 0x18], rdi
je 0x1801a925f
mov rbx, qword [rcx + 0x18]
test rbx, rbx
jne 0x1801a9240
mov rbx, rdi
jmp 0x1801a9276
mov rax, qword [rbx]
mov qword [rcx + 0x18], rax
test rax, rax
jne 0x1801a9250
mov qword [rcx + 0x20], rdi
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x1801a9276
mov rcx, qword [rcx + 0x10]
mov edx, 0x188
mov r8d, 0x10
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x1801a937a
mov rdx, qword [rsp + 0xf0]
mov r9d, esi
mov r8d, r15d
mov rcx, rbx
mov qword [rbx], rdi
mov qword [rbx + 8], rdi
mov qword [rbx + 0x78], rdi
mov qword [rbx + 0x80], rdi
mov qword [rbx + 0x88], rdi
mov qword [rbx + 0x90], rdi
mov dword [rbx + 0xa0], 0xffffffff
mov qword [rbx + 0xa8], 0xffffffffffffffff
mov qword [rbx + 0x40], rdi
call fcn.1801992b0
mov esi, eax
test eax, eax
js 0x1801a9323
call fcn.18019c4f0
test al, al
je 0x1801a92e8
or qword [rbx + 0x98], 0x20000
mov rax, qword [rbx + 0xa8]
mov rcx, qword [rax + 0x10]
test cl, 0x10
je 0x1801a9307
bt rcx, 0x15
jae 0x1801a9307
or qword [rbx + 0x98], 0x10
mov eax, dword [r13 + 0x10]
mov esi, edi
mov qword [rsp + 0x70], rbx
mov dword [rbx + 0xa0], eax
inc dword [r13 + 0x10]
or dword [r13 + 0x28], 4
jmp 0x1801a937f
call fcn.1801991c0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801a9337
mov rbp, rdi
jmp 0x1801a9340
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
mov edx, 0xfe
mov r8d, 0x188
mov rcx, rbx
call fcn.18024adb8
mov qword [rbx], rdi
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x1801a936c
mov qword [rax], rbx
mov qword [rbp + 0x20], rbx
mov ebp, dword [rsp + 0x58]
jmp 0x1801a937f
mov qword [rbp + 0x18], rbx
mov qword [rbp + 0x20], rbx
mov ebp, dword [rsp + 0x58]
jmp 0x1801a937f
mov esi, 0x8007000e
test esi, esi
js 0x1801a96c1
mov rdx, qword [rsp + 0x70]
inc ebp
add r14, 4
mov qword [r12 + 0xe0], rdx
mov qword [rdx + 0xe0], rdx
mov rax, qword [r12 + 0x108]
mov qword [rdx + 0x108], rax
mov eax, dword [r12 + 0x110]
mov dword [rsp + 0x58], ebp
mov dword [rdx + 0x110], eax
mov rax, qword [r12 + 0x128]
mov qword [rdx + 0x128], rax
mov eax, dword [r12 + 0x130]
mov dword [rdx + 0x130], eax
mov eax, dword [r12 + 0x134]
mov dword [rdx + 0x134], eax
mov eax, dword [r12 + 0x13c]
mov dword [rdx + 0x13c], eax
mov eax, dword [r12 + 0x48]
mov dword [rdx + 0x48], eax
mov eax, dword [r12 + 0xa4]
mov dword [rdx + 0xa4], eax
mov rax, qword [r12 + 0x140]
mov qword [rdx + 0x140], rax
mov rax, qword [r12 + 0x148]
mov qword [rdx + 0x148], rax
mov rax, qword [r12 + 0x150]
mov qword [rdx + 0x150], rax
mov rax, qword [r12 + 0x158]
mov qword [rdx + 0x158], rax
mov rax, qword [r12 + 0x160]
mov qword [rdx + 0x160], rax
mov rax, qword [r12 + 0x168]
mov qword [rdx + 0x168], rax
mov rax, qword [r12 + 0x170]
mov qword [rdx + 0x170], rax
mov rax, qword [r12 + 0x178]
mov qword [rdx + 0x178], rax
mov rax, qword [r12 + 0x180]
mov qword [rdx + 0x180], rax
mov eax, dword [r12 + 0x98]
xor eax, dword [rdx + 0x98]
and eax, 0x1f00000
xor qword [rdx + 0x98], rax
mov ecx, dword [r12 + 0xcc]
mov r12, qword [rsp + 0x60]
mov rax, qword [r12 + 0x28]
mov qword [rax + rcx*8], rdx
cmp ebp, dword [rsp + 0x30]
jb 0x1801a9060
mov r10, qword [rsp + 0xf0]
mov r14, qword [rsp + 0x50]
mov ebp, edi
mov rbx, rdi
nop word [rax + rax]
mov rax, qword [r12 + 0x18]
mov rcx, qword [rsp + 0xf8]
mov qword [rbx + rax], rcx
mov rax, qword [r12 + 0x18]
mov qword [rbx + rax + 0x20], r14
mov rcx, qword [r12 + 0x28]
cmp qword [rcx + rbx], 0xffffffffffffffff
jne 0x1801a9580
cmp byte [rsp + 0x100], dil
je 0x1801a9556
mov r8, qword [r13 + 0xd078]
mov eax, ebp
or r9d, 0xffffffff
lea rdx, [rcx + rax*8]
mov rcx, r13
mov dword [rsp + 0x28], 0x11
mov dword [rsp + 0x20], 0xffffffff
call fcn.18019f030
mov esi, eax
test eax, eax
js 0x1801a96c1
jmp 0x1801a9580
mov eax, ebp
mov r9d, r15d
mov r8, r10
lea rdx, [rcx + rax*8]
mov rcx, r13
mov dword [rsp + 0x28], 0x11
mov dword [rsp + 0x20], ebp
call fcn.18019f030
mov esi, eax
test eax, eax
js 0x1801a96c1
mov rax, qword [r12 + 0x28]
mov r10, qword [rsp + 0xf0]
inc ebp
mov rcx, qword [rbx + rax]
add rbx, 8
mov qword [rcx + 0xe0], rcx
cmp ebp, 4
jb 0x1801a94f0
cmp byte [rsp + 0x100], dil
jne 0x1801a95bb
lea eax, [r15 + 1]
mov rcx, r10
mov dword [rcx + 0x18], eax
mov r14, qword [rsp + 0x38]
mov ecx, edi
test r14, r14
je 0x1801a95da
mov rax, r14
nop word [rax + rax]
mov rax, qword [rax]
inc ecx
test rax, rax
jne 0x1801a95d0
add dword [r13 + 0x14], ecx
mov rcx, qword [rsp + 0x110]
test rcx, rcx
je 0x1801a9625
test r14, r14
je 0x1801a965c
mov rax, qword [rcx + 8]
mov qword [r14 + 8], rax
mov rax, qword [rcx + 8]
test rax, rax
je 0x1801a9606
mov qword [rax], r14
jmp 0x1801a960a
mov qword [r13 + 0x18], r14
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x38], rdi
mov r14, rdi
mov qword [rax], rcx
mov qword [rcx + 8], rax
mov qword [rsp + 0x40], rdi
jmp 0x1801a9661
mov rax, qword [r13 + 0x20]
test rax, rax
je 0x1801a9633
mov qword [rax], r14
jmp 0x1801a9637
mov qword [r13 + 0x18], r14
test r14, r14
je 0x1801a9644
mov rax, qword [r13 + 0x20]
mov qword [r14 + 8], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x38], rdi
mov r14, rdi
mov qword [r13 + 0x20], rax
mov qword [rsp + 0x40], rdi
jmp 0x1801a9661
mov r14, qword [rsp + 0x40]
mov eax, dword [rsp + 0x48]
or dword [r13 + 0x28], 7
sub eax, dword [rsp + 0x30]
mov esi, edi
mov dword [rsp + 0x48], eax
je 0x1801a96c1
mov r11d, dword [rsp + 0xe8]
mov r8, qword [rsp + 0xe0]
mov r15, qword [rsp + 0xd8]
jmp 0x1801a87d0
mov rax, qword [r12 + 0x108]
test rax, rax
je 0x1801a96a4
lea rdi, [rax + 0x20]
lea r9, [0x180047e48]
mov r8d, 0xfb4
mov rdx, rdi
mov rcx, r13
call fcn.18019df20
mov esi, 0x80004005
mov rbp, qword [rsp + 0xd0]
mov r12, qword [rsp + 0x90]
lea rcx, [rsp + 0x38]
call fcn.1800c5e00
mov eax, esi
add rsp, 0x98
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
ret