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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x188
mov r11, qword [rsp + 0x1d8]
mov r10, qword [rsp + 0x1d0]
movaps xmmword [rax - 0x38], xmm6
mov qword [rax - 0x118], r11
mov rdi, r9
xor r9d, r9d
mov qword [rax - 0x128], r9
mov rax, qword [rcx + 0x10]
mov rsi, rcx
mov ecx, 2
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x138], rax
mov eax, r8d
mov ebx, r8d
mov qword [rsp + 0x68], r10
and eax, 0xfff00000
mov dword [rsp + 0x8c], ecx
mov dword [rsp + 0x158], ecx
mov dword [rsp + 0x60], ebx
mov qword [rsp + 0x148], r9
mov dword [rsp + 0x15c], r9d
mov dword [rsp + 0x140], ecx
mov qword [rsp + 0x130], r9
mov dword [rsp + 0x144], r9d
mov byte [rsp + 0x74], r9b
cmp eax, 0x11400000
ja 0x18012edfc
je 0x18012edee
cmp eax, 0x10e00000
je 0x18012edf5
cmp eax, 0x11000000
je 0x18012edf5
cmp eax, 0x11200000
jne 0x18012ee0a
mov ecx, 0x20000012
jmp 0x18012ee14
mov ecx, 0x20000002
jmp 0x18012ee14
cmp eax, 0x21800000
je 0x18012ee0f
cmp eax, 0x21900000
je 0x18012ee0f
mov ecx, r9d
jmp 0x18012ee14
mov ecx, 0x20000032
mov ebp, dword [rsp + 0x1e8]
or ebp, ecx
mov dword [rsp + 0x88], ebp
mov dword [rsp + 0x1e8], ebp
cmp eax, 0x10300000
jne 0x18012ee4c
and ebx, 0xfffff
mov byte [rsp + 0x74], 1
bts ebx, 0x1c
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x1c0], ebx
xorpd xmm6, xmm6
mov eax, ebx
and eax, 0xfff00000
cmp eax, 0x20400000
jne 0x18012eef9
test bpl, 2
je 0x18012eef9
mov r8d, ebx
mov edi, r9d
and r8d, 0xfffff
jbe 0x18012eed4
movsd xmm1, qword [0x180068590]
mov r9, r11
mov rcx, r10
sub r9, r10
nop dword [rax]
mov rax, qword [r9 + rcx]
cmp qword [rcx], rax
jne 0x18012eecc
mov rdx, qword [rcx]
mov eax, dword [rdx + 0x98]
bt rax, 0x15
jae 0x18012eecc
movsd xmm0, qword [rdx + 0x158]
comisd xmm0, xmm6
jb 0x18012eecc
comisd xmm1, xmmword [rdx + 0x160]
jb 0x18012eecc
inc edi
add rcx, 8
cmp edi, r8d
jb 0x18012ee90
mov rdx, qword [rsp + 0x1b8]
cmp edi, r8d
mov rdi, qword [rsp + 0x1c8]
jne 0x18012eef9
mov ebx, r8d
and ebx, 0xfffff
bts ebx, 0x1c
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x1c0], ebx
cmp ebx, 0x50000001
jne 0x18012f2c2
mov ebx, 0x20400001
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x1c0], ebx
mov eax, ebx
and eax, 0xfff00000
cmp eax, 0x10000000
je 0x18012ef38
cmp eax, 0x10100000
je 0x18012ef38
cmp eax, 0x10200000
je 0x18012ef38
cmp eax, 0x30100000
jne 0x18012efa4
lea rax, [rsp + 0x1c0]
mov r9, rdi
mov r8d, ebx
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x1f0]
mov rcx, rsi
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x1e0]
mov dword [rsp + 0x38], ebp
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r10
call fcn.18012e760
mov edi, eax
test eax, eax
js 0x180131440
je 0x180131434
mov ebx, dword [rsp + 0x1c0]
mov r10, qword [rsp + 0x1d0]
mov r11, qword [rsp + 0x1d8]
mov dword [rsp + 0x60], ebx
mov rax, qword [rsi + 0x10]
mov edx, ebx
mov dword [rsp + 0x78], ebx
test byte [rax + 0xcefb], 0x10
mov dword [rsp + 0xa0], 0x11
mov dword [rsp + 0x70], 0x11
mov dword [rsp + 0xa4], 0x11
je 0x18012f43f
mov eax, ebx
and eax, 0xfff00000
cmp eax, 0x10000000
je 0x18012f43f
cmp eax, 0x30100000
je 0x18012f43f
cmp eax, 0x10200000
je 0x18012f43f
cmp eax, 0x23300000
je 0x18012f43f
cmp eax, 0x12900000
je 0x18012f43f
cmp eax, 0x12e00000
je 0x18012f43f
cmp eax, 0x13000000
je 0x18012f43f
cmp eax, 0x12700000
je 0x18012f43f
cmp eax, 0x23600000
je 0x18012f43f
cmp eax, 0x12a00000
je 0x18012f43f
cmp eax, 0x23700000
je 0x18012f43f
cmp eax, 0x13100000
je 0x18012f43f
cmp eax, 0x23d00000
je 0x18012f43f
cmp eax, 0x23e00000
je 0x18012f43f
cmp eax, 0x23f00000
je 0x18012f43f
cmp eax, 0x51500000
je 0x18012f43f
cmp eax, 0x51600000
je 0x18012f43f
mov ecx, ebx
shr ecx, 0x1c
cmp ecx, 6
je 0x18012f43f
cmp ecx, 8
je 0x18012f43f
cmp ecx, 0xa
je 0x18012f43f
cmp eax, 0x50500000
je 0x18012f43f
cmp eax, 0x50600000
je 0x18012f43f
cmp eax, 0x50700000
je 0x18012f43f
cmp eax, 0x50800000
je 0x18012f43f
cmp eax, 0x50900000
je 0x18012f43f
mov ecx, ebx
call fcn.180241680
test al, al
jne 0x18012f43f
mov ecx, ebx
call fcn.1802416bc
test al, al
jne 0x18012f43f
lea rax, [rsp + 0x70]
mov r9, r11
mov r8, r10
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa0]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180132630
mov edi, eax
test eax, eax
js 0x18012fb5e
and ebx, 0xfffff
lea rcx, [rsp + 0x148]
mov edx, ebx
call fcn.1800c4620
mov edi, eax
test eax, eax
js 0x18012fb5e
lea rcx, [rsp + 0x130]
mov edx, ebx
call fcn.1800c4620
mov edi, eax
test eax, eax
js 0x18012fb5e
mov eax, dword [rsp + 0xa0]
mov ebx, dword [rsp + 0x60]
mov r9d, dword [rsp + 0x1f0]
mov rdx, qword [rsp + 0x1b8]
mov dword [rsp + 0x1c0], eax
lea rax, [rsp + 0x1c0]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x130]
mov r8d, ebx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x148]
mov rcx, rsi
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebp
call fcn.180132780
mov edi, eax
test eax, eax
js 0x18012f492
mov edx, dword [rsp + 0x78]
cmp edx, ebx
je 0x18012f414
mov edi, ebp
and edi, 0x20000002
cmp edi, 0x20000002
je 0x18012f230
mov eax, ebp
and eax, 0x20000004
cmp eax, 0x20000004
jne 0x18012f414
mov ecx, edx
call fcn.180241ff4
movzx r8d, al
test al, al
jne 0x18012f24e
mov ecx, edx
call fcn.18024205c
test al, al
je 0x18012f414
xor r9d, r9d
mov ebp, r9d
mov dword [rsp + 0x88], r9d
test r8b, r8b
je 0x18012f28b
cmp edi, 0x20000002
mov eax, 0x40000002
cmove ebp, eax
mov dword [rsp + 0x88], ebp
cmp edi, 0x20000004
jne 0x18012f28b
or ebp, 0x40000004
mov dword [rsp + 0x88], ebp
mov rcx, qword [rsp + 0x68]
mov eax, dword [rsp + 0x1c0]
mov dword [rsp + 0x1e8], ebp
mov qword [rsp + 0x1d0], rcx
mov rcx, qword [rsp + 0x90]
mov dword [rsp + 0xa4], eax
mov qword [rsp + 0x1d8], rcx
jmp 0x18012f442
cmp ebx, 0x50000002
jne 0x18012ef15
mov rax, qword [rsi + 0x10]
test byte [rax + 0xcef4], 0x80
jne 0x18012ef15
mov rcx, qword [rsp + 0x1b0]
mov dword [rsp + 0x40], 0x11
or rax, 0xffffffffffffffff
mov esi, ebp
mov rbp, qword [rsp + 0x1e0]
lea r9, [rsp + 0xa8]
mov rbx, rbp
and esi, 0xc0
mov r8d, 0x20400001
mov dword [rsp + 0x38], esi
and ebx, 2
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r10
mov qword [rsp + 0xb0], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012fb5e
mov rax, qword [rsp + 0x1d8]
mov rcx, qword [rsp + 0x1d0]
mov dword [rsp + 0x40], 0x11
mov dword [rsp + 0x38], esi
mov rsi, qword [rsp + 0x1b0]
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsp + 0x1b8]
add rcx, 8
add rax, 8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0xb0]
mov rcx, rsi
mov r8d, 0x20400001
mov rdx, rbx
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012fb5e
mov eax, dword [rsp + 0x1f0]
mov r9, qword [rsp + 0x1c8]
mov r8d, 0x20000001
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x88]
mov rdx, rbx
mov dword [rsp + 0x38], eax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa8]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edx, dword [rsp + 0x60]
mov edi, eax
test eax, eax
js 0x18012fb62
xor eax, eax
mov edi, eax
jmp 0x1801300b8
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x1d8], rax
mov eax, dword [rsp + 0x1c0]
mov dword [rsp + 0xa4], eax
xor r9d, r9d
and edx, 0xfff00000
cmp edx, 0x20900000
jne 0x18012faac
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x68], rax
test byte [rax + 0xcef4], 0x40
jne 0x18012faac
and ebx, 0xfffff
mov rsi, r9
mov ebp, r9d
lea ecx, [rbx + rbx*2]
mov dword [rsp + 0x1e8], ebx
shl ecx, 2
cmp ecx, 0x1ffffffe
jbe 0x18012f4b6
mov edi, 0x80070216
jmp 0x18012f4ef
mov rax, qword [rsp + 0x68]
mov edx, ebx
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x1d8], rax
jmp 0x18012fb62
lea ebp, [rcx*8]
mov ecx, 8
test ebp, ebp
cmove ebp, ecx
lea rcx, [rax + 0xd280]
mov edx, ebp
call fcn.1800c58b0
mov edi, 0x8007000e
mov r9d, 0
test rax, rax
mov rsi, rax
mov rax, qword [rsp + 0x68]
cmovne edi, r9d
test edi, edi
jns 0x18012f50e
test rsi, rsi
jmp 0x18012fb37
mov rax, qword [rdx]
mov rcx, r8
mov qword [r8], rax
call fcn.1800c56f0
jmp 0x18012fb5e
mov rcx, qword [rsp + 0x1b0]
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], r9d
mov rcx, qword [rcx + 0x10]
mov eax, 0x80000000
lea rdx, [rsp + 0xa8]
mov r8, qword [rcx + 0xd040]
mov r9d, 0xc
mov qword [rsp + 0x20], rax
call fcn.18019f260
mov edi, eax
test eax, eax
jns 0x18012f595
test rsi, rsi
mov r8, qword [rsp + 0x68]
mov ecx, ebp
je 0x18012fb5e
mov rdx, qword [r8 + 0xd280]
test ebp, ebp
mov eax, 1
cmove rcx, rax
cmp rcx, qword [rdx + 8]
jb 0x18012fb5a
mov rax, qword [rdx]
lea rcx, [r8 + 0xd280]
mov qword [r8 + 0xd280], rax
call fcn.1800c56f0
jmp 0x18012fb5e
xor r9d, r9d
lea rdi, [rsp + 0xd0]
lea r8d, [r9 + 0xc]
mov edx, r9d
nop word [rax + rax]
mov eax, edx
add rdi, 8
add edx, ebx
sub r8, 1
lea rcx, [rsi + rax*8]
mov qword [rdi - 8], rcx
jne 0x18012f5b0
mov byte [rsp + 0x1c0], 1
test ebx, ebx
je 0x18012f672
mov rax, qword [rsp + 0xd8]
mov r10, qword [rsp + 0xd0]
mov r11, qword [rsp + 0xe0]
mov r8, qword [rsp + 0x1d0]
mov rdi, qword [rsp + 0x1d8]
sub r10, rax
sub r11, rax
mov r9d, ebx
mov rbx, qword [rsp + 0xa8]
sub r8, rax
mov rdx, rax
sub rdi, rax
nop dword [rax + rax]
mov rax, qword [r8 + rdx]
mov qword [r10 + rdx], rax
mov rax, qword [rdi + rdx]
mov qword [rdx], rax
mov qword [r11 + rdx], rbx
mov rax, qword [r8 + rdx]
mov ecx, dword [rax + 0x98]
shr rcx, 0x18
test cl, 1
je 0x18012f659
mov rax, qword [rdi + rdx]
mov ecx, dword [rax + 0x98]
shr rcx, 0x18
test cl, 1
jne 0x18012f661
mov byte [rsp + 0x1c0], 0
add rdx, 8
sub r9, 1
jne 0x18012f620
mov ebx, dword [rsp + 0x1e8]
lea eax, [rbx + rbx*8]
test eax, eax
je 0x18012f68a
mov rdi, qword [rsp + 0xe8]
mov ecx, eax
or rax, 0xffffffffffffffff
rep stosq qword [rdi], rax
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x1b8]
mov dword [rsp + 0x40], 0x11
mov dword [rsp + 0x38], r9d
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], r9
mov r9, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x1b0]
and ebx, 0xfffff
mov eax, ebx
or eax, 0x13200000
mov r8d, eax
mov dword [rsp + 0x1e8], eax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0xf0]
mov r8d, dword [rsp + 0x1e8]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov r8d, ebx
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
or r8d, 0x22f00000
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x1b8]
xor ecx, ecx
mov dword [rsp + 0x40], 0xc
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0xd0]
mov eax, ebx
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0xe8]
or eax, 0x21500000
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x1b0]
mov r8d, eax
mov dword [rsp + 0x8c], eax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0x108]
mov r8d, dword [rsp + 0x8c]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0xc
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov r8d, ebx
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x100]
or r8d, 0x20b00000
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0x110]
mov r8d, dword [rsp + 0x1e8]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov r8d, ebx
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xf8]
or r8d, 0x22d00000
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov r8d, ebx
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x120]
or r8d, 0x14000000
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
mov r9, qword [rsp + 0x1c8]
mov rdx, qword [rsp + 0x1b8]
xor eax, eax
mov dword [rsp + 0x40], 0xb
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x110]
or ebx, 0x30100000
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x128]
mov r8d, ebx
mov rbx, qword [rsp + 0x1b0]
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.18012ed20
mov edi, eax
test eax, eax
js 0x18012f54e
cmp byte [rsp + 0x1c0], 0
jne 0x18012fa5c
mov rdx, qword [rsp + 0x1b8]
lea rax, [0x180044990]
mov r9d, 0xde4
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x20], 0x2a
call fcn.180109790
xor eax, eax
test rsi, rsi
mov r8, qword [rsp + 0x68]
mov ecx, ebp
mov edi, eax
je 0x1801300b4
mov rdx, qword [r8 + 0xd280]
test ebp, ebp
mov eax, 1
cmove rcx, rax
cmp rcx, qword [rdx + 8]
jae 0x18012fa91
sub qword [rdx + 8], rcx
jmp 0x1801300b4
mov rax, qword [rdx]
lea rcx, [r8 + 0xd280]
mov qword [r8 + 0xd280], rax
call fcn.1800c56f0
jmp 0x1801300b4
cmp edx, 0x20d00000
jne 0x180130050
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x68], rax
test byte [rax + 0xcef4], 0x40
jne 0x180130050
mov esi, ebx
mov ebp, r9d
mov rbx, r9
and esi, 0xfffff
mov ecx, esi
mov dword [rsp + 0x1e8], esi
imul ecx, ecx, 0xb
cmp ecx, 0x1ffffffe
jbe 0x18012faf7
mov edi, 0x80070216
jmp 0x18012fb30
lea ebp, [rcx*8]
mov ecx, 8
test ebp, ebp
cmove ebp, ecx
lea rcx, [rax + 0xd280]
mov edx, ebp
call fcn.1800c58b0
mov edi, 0x8007000e
mov r9d, 0
test rax, rax
mov rbx, rax
mov rax, qword [rsp + 0x68]
cmovne edi, r9d
test edi, edi
jns 0x18012fb6f
test rbx, rbx
lea r8, [rax + 0xd280]
mov ecx, ebp
je 0x18012fb5e
mov rdx, qword [r8]
test ebp, ebp
mov eax, 1
cmove rcx, rax
cmp rcx, qword [rdx + 8]
jae 0x18012f4fb
sub qword [rdx + 8], rcx
mov edx, dword [rsp + 0x60]
test edi, edi
jne 0x18013010c
jmp 0x1801300b8
mov rax, qword [rsp + 0x1b0]
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], r9d
mov rcx, qword [rax + 0x10]
mov eax, 0x80000000
lea rdx, [rsp + 0xa8]
mov r8, qword [rcx + 0xd040]
mov r9d, 0xc
mov qword [rsp + 0x20], rax
call fcn.18019f260
mov edi, eax
test eax, eax
jns 0x18012fbb7
test rbx, rbx
jmp 0x18012f551
xor r9d, r9d
lea rdi, [rsp + 0xd0]
lea r8d, [r9 + 0xb]
mov edx, r9d
nop dword [rax]
mov eax, edx
add rdi, 8
add edx, esi
sub r8, 1
lea rcx, [rbx + rax*8]
mov qword [rdi - 8], rcx
jne 0x18012fbd0
mov byte [rsp + 0x1c0], 1
test esi, esi
je 0x18012fc92
mov rax, qword [rsp + 0xd8]
mov r10, qword [rsp + 0xd0]
mov r11, qword [rsp + 0xe0]
mov r8, qword [rsp + 0x1d0]
mov rdi, qword [rsp + 0x1d8]
sub r10, rax
sub r11, rax
mov r9d, esi
mov rsi, qword [rsp + 0xa8]
sub r8, rax
mov rdx, rax
sub rdi, rax
nop dword [rax + rax]
mov rax, qword [r8 + rdx]
mov qword [r10 + rdx], rax
mov rax, qword [rdi + rdx]
mov qword [rdx], rax
mov qword [r11 + rdx], rsi
mov rax, qword [r8 + rdx]
mov ecx, dword [rax + 0x98]
shr rcx, 0x18
test cl, 1
je 0x18012fc79
mov rax, qword [rdi + rdx]
mov ecx, dword [rax + 0x98]
shr rcx, 0x18
test cl, 1
jne 0x18012fc81
mov byte [rsp + 0x1c0], 0
add rdx, 8
sub r9, 1
jne 0x18012fc40
mov esi, dword [rsp + 0x1e8]
lea eax, [rsi*8]
test eax, eax
je 0x18012fcae
mov rdi, qword [rsp + 0xe8]
mov ecx, eax
or rax, 0xffffffffffffffff
rep stosq qword [rdi], rax
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x1b8]
mov dword [rsp + 0x40], 0x11
mov dword [rsp + 0x38], r9d
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], r9
mov r9, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x1b0]
and esi, 0xfffff
mov eax, esi
or eax, 0x13200000
mov r8d, eax
mov dword [rsp + 0x1e8], eax
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18012fd14
test rbx, rbx
jmp 0x18012f551
mov r9, qword [rsp + 0xf0]
mov r8d, dword [rsp + 0x1e8]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18012fd6c
test rbx, rbx
jmp 0x18012f551
mov r9, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov r8d, esi
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xd0]
or r8d, 0x22d00000
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18012fdce
test rbx, rbx
jmp 0x18012f551
mov r9, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x1b8]
xor ecx, ecx
mov dword [rsp + 0x40], 0xc
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0xd0]
mov eax, esi
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0xe8]
or eax, 0x21500000
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x1b0]
mov r8d, eax
mov dword [rsp + 0x8c], eax
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18012fe37
test rbx, rbx
jmp 0x18012f551
mov r9, qword [rsp + 0x108]
mov r8d, dword [rsp + 0x8c]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0xc
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18012fe97
test rbx, rbx
jmp 0x18012f551
mov r9, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov r8d, esi
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x100]
or r8d, 0x20f00000
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18012fef9
test rbx, rbx
jmp 0x18012f551
mov r9, qword [rsp + 0x110]
mov r8d, dword [rsp + 0x1e8]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18012ff51
test rbx, rbx
jmp 0x18012f551
mov r9, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
xor eax, eax
mov dword [rsp + 0x40], 0x11
mov r8d, esi
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xf8]
or r8d, 0x14000000
mov qword [rsp + 0x20], rax
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18012ffab
test rbx, rbx
jmp 0x18012f551
mov r9, qword [rsp + 0x1c8]
mov rdx, qword [rsp + 0x1b8]
xor eax, eax
mov dword [rsp + 0x40], 0xb
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x110]
or esi, 0x30100000
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x120]
mov r8d, esi
mov rsi, qword [rsp + 0x1b0]
mov qword [rsp + 0x20], rax
mov rcx, rsi
call fcn.18012ed20
mov edi, eax
test eax, eax
jns 0x18013000f
test rbx, rbx
jmp 0x18012f551
cmp byte [rsp + 0x1c0], 0
jne 0x180130046
mov rdx, qword [rsp + 0x1b8]
lea rax, [0x1800449e0]
mov r9d, 0xde4
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], 0x2a
call fcn.180109790
xor eax, eax
test rbx, rbx
jmp 0x18012fa61
mov rcx, qword [rsi + 0x10]
mov r8d, ebx
or r9d, 0xffffffff
and r8d, 0xfffff
mov dword [rsp + 0x20], 0xffffffff
or r8d, edx
lea rdx, [rsp + 0x80]
call fcn.18019f4b0
mov edi, eax
test eax, eax
js 0x18012fb5e
mov rbp, qword [rsp + 0x80]
mov eax, dword [rbp + 0x20]
mov dword [rsp + 0x1c0], eax
test eax, eax
jne 0x180130162
cmp dword [rbp + 0x10], eax
jne 0x180130162
xor eax, eax
mov dword [rbp + 0x78], eax
mov dword [rbp + 0x10], eax
mov dword [rbp + 0x20], eax
mov edi, eax
mov edx, dword [rsp + 0x60]
mov rbp, qword [rsp + 0x1b0]
cmp qword [rbp + 0x278], 0
jbe 0x18013010c
mov rax, qword [rsp + 0x80]
test rax, rax
je 0x1801300da
mov edx, dword [rax + 0x78]
mov ecx, edx
call fcn.1801959b0
test eax, eax
je 0x18013010c
mov rax, qword [rsp + 0x1d8]
mov r9, qword [rsp + 0x1d0]
mov r8, qword [rsp + 0x1c8]
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.180105cd0
mov edi, eax
cmp qword [rsp + 0x130], 0
movsxd rax, dword [rsp + 0x140]
mov r8d, dword [rsp + 0x144]
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x138]
mov r9d, 1
lea rcx, [rax + rcx*8 + 0xd250]
je 0x18013145d
mov rdx, qword [rcx]
test r8, r8
cmove r8, r9
cmp r8, qword [rdx + 8]
jae 0x18013144c
sub qword [rdx + 8], r8
jmp 0x18013145d
mov ecx, dword [rbp + 0x78]
mov eax, ecx
and eax, 0xf0000000
cmp eax, 0xa0000000
mov eax, ecx
jne 0x180130197
and eax, 0xfff00000
cmp eax, 0xa1300000
je 0x180130190
cmp eax, 0xa1400000
je 0x180130190
and ecx, 0xfffff
jmp 0x1801301b5
mov ecx, 1
jmp 0x1801301b5
and eax, 0xfff00000
cmp eax, 0x68700000
je 0x1801301b2
cmp eax, 0x68800000
je 0x1801301b2
and ecx, 0xfffff
jmp 0x1801301b5
mov ecx, dword [rbp + 0x10]
mov ebx, dword [rbp + 0x10]
mov rdx, qword [rsp + 0x1d0]
mov eax, 0
cmp ecx, ebx
cmova ecx, eax
sub ebx, ecx
test ecx, ecx
je 0x1801301df
test rdx, rdx
jne 0x1801301df
mov edi, 0x8007003f
jmp 0x18013010c
test ebx, ebx
je 0x1801301fa
mov rdi, qword [rsp + 0x1d8]
test rdi, rdi
jne 0x1801301fa
mov edi, 0x8007003f
jmp 0x18013010c
lea rdi, [rcx*8]
mov rcx, qword [rbp + 0x18]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp + 0x18]
mov rdx, qword [rsp + 0x1d8]
mov r8d, ebx
lea rcx, [rdi + rax]
shl r8, 3
call sub.msvcrt.dll_memcpy
mov r10d, dword [rbp + 0x78]
mov eax, dword [rbp + 0x10]
and r10d, 0xfffff
xor edx, edx
div r10d
xor edx, edx
mov dword [rsp + 0x98], r10d
mov ecx, edx
mov dword [rsp + 0x9c], edx
mov dword [rsp + 0x68], eax
test eax, eax
je 0x18013070f
mov eax, edx
mov dword [rsp + 0x90], edx
nop word [rax + rax]
mov sil, 1
mov edi, edx
mov dword [rsp + 0x78], edx
test r10d, r10d
je 0x1801303aa
mov edx, eax
mov dword [rsp + 0x70], eax
nop dword [rax + rax]
mov rcx, qword [rsp + 0x80]
mov ebp, edx
mov rax, qword [rcx + 0x18]
mov ecx, dword [rcx + 0x78]
mov rbx, qword [rax + rbp*8]
call fcn.1802425f8
test al, al
je 0x180130326
mov rcx, qword [rsp + 0x1b0]
mov eax, 1
lea r9, [rsp + 0x160]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x160], rbx
mov dword [rsp + 0x20], eax
call fcn.1801070d0
mov edi, eax
test eax, eax
js 0x18012fb5e
mov rdx, qword [rsp + 0x160]
mov edi, dword [rsp + 0x78]
mov r10d, dword [rsp + 0x98]
mov rax, qword [rdx + 0xa8]
movzx ecx, byte [rax + 0x10]
shr cl, 4
test cl, 1
je 0x180130322
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x18]
mov qword [rax + rbp*8], rdx
mov rbx, qword [rsp + 0x160]
mov edx, dword [rsp + 0x70]
inc dword [rbx + 0x3c]
test sil, sil
je 0x180130371
mov rcx, qword [rbx + 0xa8]
mov r8, qword [rsp + 0x1b0]
mov eax, dword [rcx + 0x10]
bt rax, 8
jb 0x180130354
mov rax, qword [r8 + 0x10]
cmp rcx, qword [rax + 0xd078]
jne 0x180130371
mov eax, dword [rbx + 0x98]
shr rax, 0x18
test al, 1
je 0x180130371
cmp byte [r8 + 0x1c0], 0
jne 0x180130371
mov sil, 1
jmp 0x180130374
xor sil, sil
inc edi
inc edx
mov dword [rsp + 0x78], edi
mov dword [rsp + 0x70], edx
cmp edi, r10d
jb 0x180130290
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x9c]
test sil, sil
je 0x1801306dd
mov rbp, qword [rsp + 0x80]
xor edx, edx
mov r8d, edx
mov dword [rsp + 0x70], edx
test r10d, r10d
je 0x1801306dd
mov rbx, qword [rsp + 0x1b0]
mov ecx, eax
mov dword [rsp + 0x78], eax
nop dword [rax + rax]
mov rax, qword [rbp + 0x18]
mov rsi, qword [rbx + 0x10]
mov r9d, ecx
mov rbp, qword [rax + r9*8]
mov rax, qword [rsi + 0xd078]
mov qword [rsp + 0xa8], r9
cmp qword [rbp + 0xa8], rax
jne 0x1801306b0
mov eax, dword [rbp + 0x98]
shr rax, 0x18
test al, 1
jne 0x180130413
mov edi, 0x80004005
jmp 0x18013062e
mov ecx, dword [0x18025e63c]
mov rdi, qword [rsi + 0xd040]
test ecx, ecx
jns 0x180130429
mov rcx, rdx
jmp 0x180130434
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor edx, edx
mov rcx, rax
cmp qword [rcx + 0x18], 0
je 0x180130468
mov rbx, qword [rcx + 0x18]
test rbx, rbx
jne 0x180130449
mov rbx, rdx
jmp 0x18013047f
mov rax, qword [rbx]
mov qword [rcx + 0x18], rax
test rax, rax
jne 0x180130459
mov qword [rcx + 0x20], rdx
movabs rax, 0xfefefefefefefefe
mov qword [rbx], rax
jmp 0x18013047f
mov rcx, qword [rcx + 0x10]
mov edx, 0x188
mov r8d, 0x10
call fcn.180243b70
mov rbx, rax
test rbx, rbx
je 0x18013053d
xor eax, eax
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
mov dword [rbx + 0xa0], 0xffffffff
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
mov qword [rbx + 0xa8], 0xffffffffffffffff
call fcn.1801992b0
mov edi, eax
test eax, eax
js 0x18013052e
call fcn.18019c4f0
test al, al
je 0x1801304ee
or qword [rbx + 0x98], 0x20000
mov rax, qword [rbx + 0xa8]
mov rcx, qword [rax + 0x10]
test cl, 0x10
je 0x18013050d
bt rcx, 0x15
jae 0x18013050d
or qword [rbx + 0x98], 0x10
mov eax, dword [rsi + 0x10]
mov rdx, rbx
mov qword [rsp + 0xc0], rbx
mov dword [rbx + 0xa0], eax
inc dword [rsi + 0x10]
or dword [rsi + 0x28], 4
xor eax, eax
mov edi, eax
jmp 0x18013054a
call fcn.1801991c0
mov rcx, rbx
call fcn.18019de00
jmp 0x180130542
mov edi, 0x8007000e
mov rdx, qword [rsp + 0xc0]
mov r8d, dword [rsp + 0x70]
mov r9, qword [rsp + 0xa8]
mov r10d, dword [rsp + 0x98]
mov rbx, qword [rsp + 0x1b0]
test edi, edi
js 0x18013062a
mov eax, dword [rbp + 0xa4]
mov rcx, qword [rdx + 0x98]
mov qword [rdx + 0xe0], rdx
mov dword [rdx + 0xa4], eax
mov rax, qword [rbp + 0x140]
and rcx, 0xffffffffff0fffff
mov qword [rdx + 0x140], rax
mov rax, qword [rbp + 0x148]
mov qword [rdx + 0x148], rax
mov rax, qword [rbp + 0x150]
mov qword [rdx + 0x150], rax
mov rax, qword [rbp + 0x158]
mov qword [rdx + 0x158], rax
mov rax, qword [rbp + 0x160]
mov qword [rdx + 0x160], rax
mov rax, qword [rbp + 0x168]
mov qword [rdx + 0x168], rax
mov rax, qword [rbp + 0x170]
mov qword [rdx + 0x170], rax
mov rax, qword [rbp + 0x178]
mov qword [rdx + 0x178], rax
mov rax, qword [rbp + 0x180]
mov qword [rdx + 0x180], rax
mov eax, dword [rbp + 0x98]
and eax, 0xf00000
or rcx, rax
or rcx, 0x1000010
mov qword [rdx + 0x98], rcx
mov ecx, dword [rsp + 0x78]
test edi, edi
js 0x18012fb5e
mov rax, qword [rbp + 0x108]
mov rdx, qword [rsp + 0xc0]
mov qword [rdx + 0x108], rax
mov eax, dword [rbp + 0x110]
mov dword [rdx + 0x110], eax
mov rax, qword [rbp + 0x128]
mov qword [rdx + 0x128], rax
mov eax, dword [rbp + 0x130]
mov dword [rdx + 0x130], eax
mov eax, dword [rbp + 0x134]
mov dword [rdx + 0x134], eax
mov eax, dword [rbp + 0x13c]
mov dword [rdx + 0x13c], eax
mov eax, dword [rbp + 0x48]
mov dword [rdx + 0x48], eax
mov eax, dword [rbp + 0xdc]
mov rbp, qword [rsp + 0x80]
mov dword [rdx + 0xdc], eax
mov rax, qword [rbp + 0x18]
mov qword [rax + r9*8], rdx
xor edx, edx
jmp 0x1801306b8
mov rbp, qword [rsp + 0x80]
inc r8d
inc ecx
mov dword [rsp + 0x70], r8d
mov dword [rsp + 0x78], ecx
cmp r8d, r10d
jb 0x1801303d0
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x9c]
mov rbp, qword [rsp + 0x80]
inc ecx
add eax, r10d
mov dword [rsp + 0x9c], ecx
mov dword [rsp + 0x90], eax
mov edx, 0
cmp ecx, dword [rsp + 0x68]
jb 0x180130270
mov rsi, qword [rsp + 0x1b0]
mov rdi, qword [rsi + 0x10]
test byte [rdi + 0xcefb], 0x10
je 0x1801307ca
cmp dword [rbp + 0x10], 0
jbe 0x1801307ca
mov ecx, dword [rbp + 0x78]
mov eax, ecx
and eax, 0xf0000000
cmp eax, 0x60000000
jne 0x1801307ca
and ecx, 0xfff00000
cmp ecx, 0x68500000
ja 0x18013076f
je 0x1801307ca
cmp ecx, 0x68100000
je 0x1801307ca
cmp ecx, 0x68200000
je 0x1801307ca
cmp ecx, 0x68300000
je 0x1801307ca
cmp ecx, 0x68400000
jmp 0x18013078d
cmp ecx, 0x68600000
je 0x1801307ca
cmp ecx, 0x68700000
je 0x1801307ca
cmp ecx, 0x68800000
je 0x1801307ca
cmp ecx, 0x68900000
je 0x1801307ca
mov rax, qword [rbp + 0x18]
mov rdx, qword [rax]
mov rax, qword [rdx + 0xa8]
mov eax, dword [rax + 0x10]
shr rax, 0x17
test al, 1
je 0x1801307ca
lea r9, [rsp + 0xc0]
mov r8d, 5
mov rcx, rdi
call fcn.180190770
mov edi, eax
test eax, eax
js 0x18012fb5e
jmp 0x1801307e4
movabs rax, 0x500000005
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
mov eax, dword [rbp + 0x78]
and eax, 0xfff00000
cmp eax, 0x20600000
ja 0x180130821
je 0x18013084f
cmp eax, 0x11400000
ja 0x180130813
je 0x18013084f
cmp eax, 0x10100000
je 0x18013084f
cmp eax, 0x10500000
je 0x18013084f
cmp eax, 0x11000000
jmp 0x180130842
cmp eax, 0x14400000
je 0x18013084f
cmp eax, 0x20200000
jmp 0x180130842
cmp eax, 0x21200000
je 0x18013084f
cmp eax, 0x21600000
je 0x18013084f
cmp eax, 0x30200000
je 0x18013084f
cmp eax, 0x30800000
je 0x18013084f
cmp eax, 0x52400000
je 0x18013084f
mov dword [rsp + 0x8c], 1
mov edx, dword [rsp + 0x1c0]
xor ebx, ebx
mov ecx, ebx
mov dword [rsp + 0x70], ebx
mov rbp, rbx
mov qword [rsp + 0x68], rbx
test edx, edx
je 0x180130ded
mov rbx, qword [rsp + 0x1b0]
mov rdi, qword [rsp + 0x1c8]
nop
mov qword [rsp + 0xa8], 0xffffffffffffffff
test rdi, rdi
je 0x1801308ac
mov rax, qword [rdi + rbp*8]
cmp rax, 0xffffffffffffffff
je 0x1801308ac
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x180130f48
mov rdx, qword [rsp + 0x80]
mov r8d, ecx
mov rcx, rsi
call fcn.180131f10
mov ecx, dword [0x18025e63c]
mov rbp, qword [rsi + 0x10]
mov rdi, rax
test ecx, ecx
jns 0x1801308d7
xor edx, edx
mov rcx, rdx
jmp 0x1801308e2
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor edx, edx
mov rcx, rax
cmp qword [rcx + 0x18], 0
je 0x180130916
mov rsi, qword [rcx + 0x18]
test rsi, rsi
jne 0x1801308f7
mov rsi, rdx
jmp 0x18013092d
mov rax, qword [rsi]
mov qword [rcx + 0x18], rax
test rax, rax
jne 0x180130907
mov qword [rcx + 0x20], rdx
movabs rax, 0xfefefefefefefefe
mov qword [rsi], rax
jmp 0x18013092d
mov rcx, qword [rcx + 0x10]
mov edx, 0x188
mov r8d, 0x10
call fcn.180243b70
mov rsi, rax
test rsi, rsi
je 0x180130a24
xor eax, eax
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
mov dword [rsi + 0xa0], 0xffffffff
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x78], rax
mov qword [rsi + 0x80], rax
mov qword [rsi + 0x88], rax
mov qword [rsi + 0x90], rax
mov qword [rsi + 0x40], rax
mov qword [rsi + 0xa8], 0xffffffffffffffff
call fcn.1801992b0
mov edi, eax
test eax, eax
js 0x1801309d4
call fcn.18019c4f0
test al, al
je 0x18013099c
or qword [rsi + 0x98], 0x20000
mov rax, qword [rsi + 0xa8]
mov rcx, qword [rax + 0x10]
test cl, 0x10
je 0x1801309bb
bt rcx, 0x15
jae 0x1801309bb
or qword [rsi + 0x98], 0x10
mov eax, dword [rbp + 0x10]
mov rbx, rsi
mov dword [rsi + 0xa0], eax
inc dword [rbp + 0x10]
or dword [rbp + 0x28], 4
xor eax, eax
mov edi, eax
jmp 0x180130a29
call fcn.1801991c0
mov ecx, dword [0x18025e63c]
test ecx, ecx
jns 0x1801309e7
xor eax, eax
jmp 0x1801309ed
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, 0xfe
mov r8d, 0x188
mov rcx, rsi
mov rbp, rax
call fcn.18024adb8
xor eax, eax
mov qword [rsi], rax
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x180130a1a
mov qword [rax], rsi
mov qword [rbp + 0x20], rsi
jmp 0x180130a29
mov qword [rbp + 0x18], rsi
mov qword [rbp + 0x20], rsi
jmp 0x180130a29
mov edi, 0x8007000e
test edi, edi
js 0x18012fb5e
mov r8d, dword [rsp + 0x70]
mov rbp, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x1b0]
mov eax, r8d
mov qword [rbx + 0x100], rbp
imul eax, dword [rsp + 0x8c]
mov dword [rbx + 0xcc], eax
mov rax, qword [rsp + 0x1e0]
mov qword [rbx + 0x98], rax
mov eax, dword [rsp + 0x1f0]
cmp eax, 0x11
je 0x180130a82
mov ecx, dword [rsp + 0x88]
jmp 0x180130ac8
mov r9d, dword [rsp + 0xa0]
lea rax, [rsp + 0x1e8]
mov rdx, rbp
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xc0]
mov rcx, rsi
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x20], eax
call fcn.1801314d0
mov ecx, dword [rsp + 0x1e8]
mov dword [rsp + 0x88], ecx
mov dword [rbx + 0xa4], eax
mov rax, qword [rsi + 0x160]
mov qword [rbx + 0xd0], rax
movzx eax, byte [rsi + 0x168]
mov byte [rbx + 0xd8], al
test ecx, ecx
je 0x180130b06
mov rdx, qword [rsi + 0x10]
mov r8d, ecx
mov rcx, rbx
call fcn.18019b3c0
mov edi, eax
test eax, eax
js 0x18012fb5e
mov rdx, qword [rsi + 0x10]
test byte [rdx + 0xcefc], 0x40
je 0x180130ca8
cmp byte [rsp + 0x74], 0
jne 0x180130ca8
mov eax, dword [rbp + 0x78]
mov r8, qword [rsp + 0x68]
and eax, 0xfff00000
cmp eax, 0x10000000
jne 0x180130bdf
mov rax, qword [rbp + 0x18]
mov rdx, qword [rdx + 0xd038]
mov rcx, qword [rax + r8*8]
cmp qword [rcx + 0xa8], rdx
jne 0x180130bdf
mov rcx, qword [rbx + 0xa8]
cmp rcx, rdx
je 0x180130bcd
test rcx, rcx
je 0x180130b98
cmp rcx, 0xffffffffffffffff
je 0x180130b98
mov rdi, qword [rbx + 8]
mov rax, qword [rbx]
test rdi, rdi
je 0x180130b7e
mov qword [rdi], rax
jmp 0x180130b82
mov qword [rcx + 0x30], rax
mov rdi, qword [rbx]
mov rax, qword [rbx + 8]
test rdi, rdi
je 0x180130b94
mov qword [rdi + 8], rax
jmp 0x180130b98
mov qword [rcx + 0x38], rax
test rdx, rdx
je 0x180130bc6
cmp rdx, 0xffffffffffffffff
je 0x180130bc6
mov rax, qword [rdx + 0x38]
mov qword [rbx + 8], rax
mov rax, qword [rdx + 0x38]
test rax, rax
je 0x180130bb9
mov qword [rax], rbx
jmp 0x180130bbd
mov qword [rdx + 0x30], rbx
xor eax, eax
mov qword [rbx], rax
mov qword [rdx + 0x38], rbx
mov qword [rbx + 0xa8], rdx
mov qword [rbx + 0xd0], 0xffffffffffffffff
mov byte [rbx + 0xd8], 1
mov eax, dword [rbp + 0x78]
and eax, 0xfff00000
cmp eax, 0x30100000
jne 0x180130ca8
mov rcx, qword [rbp + 0x18]
movsxd rax, dword [rsp + 0x1c0]
mov rdi, rax
add rax, r8
mov rdx, qword [rcx + rax*8]
lea rax, [r8 + rdi*2]
mov rdi, qword [rcx + rax*8]
mov rax, qword [rsi + 0x10]
mov rcx, qword [rax + 0xd038]
cmp qword [rdx + 0xa8], rcx
jne 0x180130ca8
cmp qword [rdi + 0xa8], rcx
jne 0x180130ca8
mov rdx, qword [rbx + 0xa8]
cmp rdx, rcx
je 0x180130ca8
test rdx, rdx
je 0x180130c73
cmp rdx, 0xffffffffffffffff
je 0x180130c73
mov rdi, qword [rbx + 8]
mov rax, qword [rbx]
test rdi, rdi
je 0x180130c59
mov qword [rdi], rax
jmp 0x180130c5d
mov qword [rdx + 0x30], rax
mov rdi, qword [rbx]
mov rax, qword [rbx + 8]
test rdi, rdi
je 0x180130c6f
mov qword [rdi + 8], rax
jmp 0x180130c73
mov qword [rdx + 0x38], rax
test rcx, rcx
je 0x180130ca1
cmp rcx, 0xffffffffffffffff
je 0x180130ca1
mov rax, qword [rcx + 0x38]
mov qword [rbx + 8], rax
mov rax, qword [rcx + 0x38]
test rax, rax
je 0x180130c94
mov qword [rax], rbx
jmp 0x180130c98
mov qword [rcx + 0x30], rbx
xor eax, eax
mov qword [rbx], rax
mov qword [rcx + 0x38], rbx
mov qword [rbx + 0xa8], rcx
mov rax, qword [rbp + 0x28]
mov rdi, qword [rsp + 0x1c8]
mov rbp, qword [rsp + 0x68]
mov qword [rax + rbp*8], rbx
test rdi, rdi
je 0x180130cc6
mov qword [rdi + rbp*8], rbx
mov rdx, qword [rsp + 0xa8]
cmp rdx, 0xffffffffffffffff
je 0x180130d0b
mov rax, qword [rdx + 0xa8]
mov ecx, dword [rax + 0x10]
bt rcx, 0x1b
jb 0x180130cf1
mov eax, dword [rdx + 0xdc]
mov dword [rbx + 0xdc], eax
mov rax, qword [rdx + 0x108]
mov qword [rbx + 0x108], rax
mov eax, dword [rdx + 0x110]
mov dword [rbx + 0x110], eax
mov edx, dword [rbx + 0xdc]
mov rsi, qword [rbx + 0xa8]
cmp edx, 0xffffffff
je 0x180130db0
mov rcx, qword [rsp + 0x1b0]
mov rax, qword [rcx + 8]
mov eax, dword [rax + 0x24]
cmp edx, eax
jb 0x180130d3b
add eax, 0x11
cmp edx, eax
jb 0x180130db0
cmp byte [rcx + 0x1b1], 0
jne 0x180130db0
mov rax, qword [rsp + 0x80]
mov r8, qword [rax + 0x28]
mov r8, qword [r8 + rbp*8]
call fcn.18010a220
mov edi, eax
test eax, eax
js 0x18012fb5e
mov rax, qword [rsi + 0x10]
test rax, 0x8200000
jne 0x180130dba
cmp qword [rbx + 0x108], 0
jne 0x180130dba
bt rax, 0x15
mov rsi, qword [rsp + 0x1b0]
jb 0x180130dc2
mov eax, dword [rbx + 0xa0]
lea r9, [0x180044a28]
xor r8d, r8d
xor edx, edx
mov rcx, rsi
mov dword [rsp + 0x28], 0xffffffff
mov dword [rsp + 0x20], eax
call fcn.180109730
jmp 0x180130dc2
mov rsi, qword [rsp + 0x1b0]
jmp 0x180130dca
mov rsi, qword [rsp + 0x1b0]
mov rdi, qword [rsp + 0x1c8]
mov ecx, dword [rsp + 0x70]
mov edx, dword [rsp + 0x1c0]
inc rbp
inc ecx
mov qword [rsp + 0x68], rbp
mov dword [rsp + 0x70], ecx
cmp ecx, edx
jb 0x180130880
xor ebx, ebx
mov rbp, qword [rsp + 0x80]
mov rax, qword [rsp + 0x1b8]
mov r8d, edx
mov qword [rbp + 0x70], rax
mov eax, dword [rsi + 0x17c]
mov rcx, rsi
mov dword [rbp + 0x68], eax
mov r9, qword [rbp + 0x28]
mov rdx, rbp
mov byte [rsp + 0x20], 1
call fcn.180107e20
mov edi, eax
test eax, eax
js 0x18012fb5e
test byte [rsi + 0x24], 4
jne 0x180131018
mov ecx, dword [rbp + 0x78]
call fcn.1802423d8
mov r10d, dword [rsp + 0x1c0]
test al, al
jne 0x180131020
mov edi, ebx
test r10d, r10d
je 0x180130ea8
nop word [rax + rax]
mov rax, qword [rbp + 0x28]
mov rdx, qword [rbx + rax]
mov rcx, qword [rdx + 0x98]
movzx eax, cl
shr al, 1
test al, 1
jne 0x180130ea8
test rcx, 0xc00000
jne 0x180130ea8
lea r8, [rsp + 0xa8]
mov rcx, rsi
call fcn.1801077f0
mov r10d, dword [rsp + 0x1c0]
test eax, eax
js 0x180130ea8
inc edi
add rbx, 8
cmp edi, r10d
jb 0x180130e60
cmp edi, r10d
jne 0x180131020
xor edi, edi
mov eax, r10d
mov dword [rbp + 0x10], r10d
and eax, 0xfffff
mov dword [rbp + 0x20], r10d
mov ebx, edi
bts eax, 0x1c
mov dword [rbp + 0x78], eax
test r10d, r10d
je 0x180131022
mov rbp, rdi
nop dword [rax + rax]
mov rdx, qword [rsp + 0x80]
mov ecx, ebx
mov rax, qword [rdx + 0x28]
mov rsi, qword [rax + rbp]
mov rax, qword [rdx + 0x18]
lea r8, [rax + rcx*8]
mov rax, qword [rsp + 0x1b0]
mov rdx, rsi
mov rcx, qword [rax + 0x10]
call fcn.1801ddf40
mov edi, eax
test eax, eax
js 0x18012fb5e
mov r10d, dword [rsp + 0x1c0]
or qword [rsi + 0x98], 0x10
inc ebx
add rbp, 8
cmp ebx, r10d
jb 0x180130ee0
mov rbp, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x1b0]
jmp 0x180131020
lea r9, [0x1800445f8]
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.180109730
cmp qword [rsp + 0x130], 0
movsxd rax, dword [rsp + 0x140]
mov edi, dword [rsp + 0x144]
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x138]
lea rcx, [rax + rcx*8 + 0xd250]
mov r8d, 1
je 0x180130fb7
mov rdx, qword [rcx]
test rdi, rdi
cmove rdi, r8
cmp rdi, qword [rdx + 8]
jae 0x180130fa6
sub qword [rdx + 8], rdi
jmp 0x180130fb7
mov rax, qword [rdx]
mov qword [rcx], rax
call fcn.1800c56f0
mov r8d, 1
cmp qword [rsp + 0x148], 0
movsxd rax, dword [rsp + 0x158]
mov edi, dword [rsp + 0x15c]
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x150]
lea rcx, [rax + rcx*8 + 0xd250]
je 0x18013100e
mov rdx, qword [rcx]
test rdi, rdi
cmove rdi, r8
cmp rdi, qword [rdx + 8]
jae 0x180131003
sub qword [rdx + 8], rdi
mov eax, 0x80004005
jmp 0x1801314af
mov rax, qword [rdx]
mov qword [rcx], rax
call fcn.1800c56f0
mov eax, 0x80004005
jmp 0x1801314af
mov r10d, dword [rsp + 0x1c0]
xor edi, edi
mov r9d, dword [rbp + 0x78]
mov eax, r9d
and eax, 0xfff00000
cmp eax, 0x10000000
je 0x180131367
cmp eax, 0x10200000
je 0x180131367
cmp eax, 0x30000000
je 0x1801311d4
cmp eax, 0x30100000
je 0x1801310cc
cmp eax, 0x50000000
jne 0x180131410
mov rax, qword [rbp + 0x28]
and r9d, 0xfffff
mov edx, edi
mov r11, qword [rax]
movsxd rax, r9d
jbe 0x1801310b3
mov rdi, qword [rbp + 0x18]
lea r8, [rdi + rax*8]
nop
mov rax, qword [rdi]
mov r10, qword [r8]
mov ecx, dword [rax + 0x98]
shr rcx, 0x15
test cl, 1
je 0x1801310b3
mov eax, dword [r10 + 0x98]
shr rax, 0x15
test al, 1
je 0x1801310b3
inc edx
add rdi, 8
add r8, 8
cmp edx, r9d
jb 0x180131080
cmp edx, r9d
jne 0x180131410
or qword [r11 + 0x98], 0x200000
jmp 0x180131410
mov r9d, edi
test r10d, r10d
je 0x180131410
mov r10, rdi
lea rbx, [0x1800272a0]
nop word [rax + rax]
mov rax, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x18]
mov edi, dword [rbp + 0x78]
mov r8, qword [r10 + rax]
mov r11, qword [rdx + r10]
and edi, 0xfffff
lea eax, [rdi + r9]
mov rsi, qword [rdx + rax*8]
lea eax, [r9 + rdi*2]
mov rdx, qword [rdx + rax*8]
mov eax, dword [r11 + 0x98]
shr rax, 0x18
test al, 1
je 0x1801311ba
cmp dword [r11 + 0x148], 0
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rax + 0x10]
cmovne rdx, rsi
test byte [rax + 0xcefb], 0x10
je 0x18013118f
movsxd rcx, dword [rdx + 0xa4]
movsxd rdi, dword [r8 + 0xa4]
cmp edi, ecx
je 0x18013118f
cmp edi, 4
jne 0x18013116b
cmp ecx, 3
je 0x18013118f
jmp 0x180131183
cmp edi, 3
jne 0x180131177
cmp ecx, 4
jne 0x180131183
jmp 0x18013118f
cmp edi, 0x20
jne 0x180131183
bt dword [rbx + rcx*4], 0xf
jb 0x18013118f
cmp ecx, 0x20
jne 0x1801311ba
bt dword [rbx + rdi*4], 0xf
jae 0x1801311ba
mov rcx, r8
mov qword [r8 + 0xe8], rdx
call fcn.18019a160
mov edi, eax
test eax, eax
js 0x18012fb5e
mov eax, dword [rdx + 0x98]
and eax, 0x320010
or qword [r8 + 0x98], rax
inc r9d
add r10, 8
cmp r9d, dword [rsp + 0x1c0]
jb 0x1801310f0
jmp 0x180131410
mov r11d, edi
test r10d, r10d
je 0x180131410
movsd xmm3, qword [0x180068688]
movsd xmm5, qword [0x1800685c0]
movsd xmm4, qword [0x1800686b8]
mov rsi, rdi
lea rbx, [0x1800272a0]
xorps xmm2, xmm2
nop word [rax + rax]
mov rax, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x18]
mov edi, dword [rbp + 0x78]
mov r10, qword [rdx + rsi]
mov r9, qword [rsi + rax]
and edi, 0xfffff
lea eax, [rdi + r11]
lea ecx, [r11 + rdi*2]
movsd xmm0, qword [r10 + 0x158]
movsd xmm1, qword [r10 + 0x160]
ucomisd xmm0, xmm0
mov r8, qword [rdx + rax*8]
jp 0x180131277
jne 0x180131277
ucomisd xmm1, xmm1
jp 0x180131277
jne 0x180131277
cmp dword [r10 + 0xa4], 5
je 0x1801312ad
comisd xmm0, xmm3
jbe 0x1801312ad
comisd xmm5, xmm1
jbe 0x1801312ad
movapd xmm0, xmm4
movapd xmm1, xmm6
jmp 0x1801312ad
movabs rax, 0xfff0000000000000
mov qword [rsp + 0xc0], rax
movabs rax, 0x7ff0000000000000
movsd xmm0, qword [rsp + 0xc0]
mov qword [rsp + 0xa8], rax
movsd xmm1, qword [rsp + 0xa8]
cvtsd2ss xmm0, xmm0
comiss xmm0, xmm2
ja 0x1801312c7
cvtsd2ss xmm0, xmm1
comiss xmm2, xmm0
jbe 0x18013134d
mov r8, qword [rdx + rcx*8]
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rax + 0x10]
test byte [rax + 0xcefb], 0x10
je 0x18013131e
movsxd rcx, dword [r8 + 0xa4]
movsxd rdx, dword [r9 + 0xa4]
cmp edx, ecx
je 0x18013131e
cmp edx, 4
jne 0x1801312fa
cmp ecx, 3
je 0x18013131e
jmp 0x180131312
cmp edx, 3
jne 0x180131306
cmp ecx, 4
jne 0x180131312
jmp 0x18013131e
cmp edx, 0x20
jne 0x180131312
bt dword [rbx + rcx*4], 0xf
jb 0x18013131e
cmp ecx, 0x20
jne 0x18013134d
bt dword [rbx + rdx*4], 0xf
jae 0x18013134d
mov rdx, r8
mov rcx, r9
mov qword [r9 + 0xe8], r8
call fcn.18019a160
mov edi, eax
test eax, eax
js 0x18012fb5e
mov eax, dword [r8 + 0x98]
and eax, 0x320010
or qword [r9 + 0x98], rax
inc r11d
add rsi, 8
cmp r11d, dword [rsp + 0x1c0]
jb 0x180131210
jmp 0x180131410
test r10d, r10d
je 0x180131410
mov r8, rdi
lea rbx, [0x1800272a0]
nop word [rax + rax]
mov rax, qword [rbp + 0x28]
mov r9, qword [r8 + rax]
mov rax, qword [rbp + 0x18]
mov rdx, qword [r8 + rax]
mov rax, qword [rdx + 0xa8]
mov ecx, dword [rax + 0x10]
shr rcx, 0x1f
test cl, 1
jne 0x180131402
movsxd rcx, dword [rdx + 0xa4]
movsxd rdi, dword [r9 + 0xa4]
cmp edi, ecx
je 0x1801313fb
cmp edi, 4
jne 0x1801313c1
cmp ecx, 3
je 0x1801313fb
jmp 0x1801313d9
cmp edi, 3
jne 0x1801313cd
cmp ecx, 4
jne 0x1801313d9
jmp 0x1801313fb
cmp edi, 0x20
jne 0x1801313d9
bt dword [rbx + rcx*4], 0xf
jb 0x1801313fb
cmp ecx, 0x20
jne 0x1801313e5
bt dword [rbx + rdi*4], 0xf
jb 0x1801313fb
mov rax, qword [rsi + 0x10]
test byte [rax + 0xcefb], 0x10
mov rax, 0xffffffffffffffff
cmovne rdx, rax
mov qword [r9 + 0xe8], rdx
add r8, 8
sub r10, 1
jne 0x180131380
mov rax, qword [rsp + 0x1b8]
mov qword [rbp + 0x70], rax
mov rax, qword [rsp + 0x1b0]
mov eax, dword [rax + 0x17c]
mov dword [rbp + 0x68], eax
xor eax, eax
jmp 0x1801300b2
mov edx, dword [rsp + 0x1c0]
jmp 0x1801300b8
mov edx, dword [rsp + 0x1c0]
jmp 0x18012fb62
mov rax, qword [rdx]
mov qword [rcx], rax
call fcn.1800c56f0
mov r9d, 1
cmp qword [rsp + 0x148], 0
movsxd rax, dword [rsp + 0x158]
mov r8d, dword [rsp + 0x15c]
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x150]
lea rcx, [rax + rcx*8 + 0xd250]
je 0x1801314ad
mov rdx, qword [rcx]
test r8, r8
cmove r8, r9
cmp r8, qword [rdx + 8]
jae 0x1801314a2
sub qword [rdx + 8], r8
jmp 0x1801314ad
mov rax, qword [rdx]
mov qword [rcx], rax
call fcn.1800c56f0
mov eax, edi
movaps xmm6, xmmword [rsp + 0x170]
add rsp, 0x188
pop rdi
pop rsi
pop rbp
pop rbx
ret