Function at 0x180032fd1
Capabilities:
Encode data using xor
Encrypt data using chaskey

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3c8
movapd xmmword [rsp + 0x3b0], xmm7
movapd xmmword [rsp + 0x3a0], xmm6
mov r12, r8
mov rsi, rdx
mov qword [rsp + 0x198], rcx
mov rbx, rdx
shr rbx, 0x20
add bx, si
mov eax, 0xffff
cmovb ebx, eax
cmp bx, si
jbe 0x180033060
mov ebp, esi
shr ebp, 0x10
mov r14, rsi
shr r14, 0x30
add r14w, bp
cmovb r14d, eax
mov edi, esi
cmp r14w, bp
jbe 0x180033059
mov r8d, ebp
lea r15d, [r8 + 1]
mov rcx, r12
mov edx, edi
call fcn.180048758
mov rcx, rax
call fcn.18004870d
mov r8d, r15d
cmp r15w, r14w
jb 0x18003303a
inc edi
cmp di, bx
jb 0x180033031
mov al, byte [0x1800a1528]
mov edx, 0x3c
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x18003635c
mov rdi, rax
mov rax, rsi
shr rax, 0x30
movabs rcx, 0xffff000000000000
mov rdx, rsi
and rdx, rcx
add rdx, rcx
test rax, rax
cmove rdx, rax
movabs rcx, 0xffffffffffff
and rcx, rsi
or rcx, rdx
mov dword [rdi], 0x30002
mov dword [rdi + 0xc], 0x70003
mov dword [rdi + 0x18], 0xb0002
mov dword [rdi + 0x24], 0x50004
mov dword [rdi + 0x30], 0x10002
mov eax, 5
lea rdx, [rsp + 0x1d0]
mov qword [rdx], rax
mov qword [rdx + 8], rdi
mov qword [rdx + 0x10], rax
mov dword [rdx + 0x18], 0
mov word [rdx + 0x1c], 0x101
call fcn.18004429c
mov rbx, rax
mov r14, rdx
mov rcx, qword [0x1800a14a8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test r14, r14
je 0x180036277
cmp r14, 1
je 0x180036280
cmp r14, 2
jbe 0x180036289
cmp r14, 3
je 0x18003629f
cmp r14, 4
jbe 0x1800362b5
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x58], rax
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x188], rax
mov rsi, qword [rbx + 0x20]
mov rax, qword [rbx + 0x28]
mov qword [rsp + 0x2f0], rax
mov r15, qword [rbx + 0x30]
mov al, byte [0x1800a1528]
mov edx, 0x18
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x18003634d
mov rdi, rax
mov eax, 0x320000
mov dword [rdi], eax
mov dword [rdi + 0xc], eax
mov eax, 2
lea rdx, [rsp + 0x1d0]
mov qword [rdx], rax
mov qword [rdx + 8], rdi
mov qword [rdx + 0x10], rax
mov dword [rdx + 0x18], 0
mov word [rdx + 0x1c], 0x100
mov rcx, rsi
call fcn.18004429c
mov rsi, rax
mov r13, rdx
mov rcx, qword [0x1800a14a8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test r13, r13
je 0x1800362cb
cmp r13, 1
je 0x1800362d4
mov qword [rsp + 0x328], r13
mov qword [rsp + 0x338], r15
mov qword [rsp + 0x340], r14
mov qword [rsp + 0x348], rbx
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x330], rsi
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x2e8], rax
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rdx + 0xb8]
mov rax, qword [rdx + 0xc8]
mov qword [rsp + 0x1b8], rcx
add rax, rcx
mov rcx, qword [rdx + 0xd0]
mov qword [rsp + 0x350], rcx
add rax, rcx
movq xmm0, rax
movdqa xmm1, xmmword [0x18007b1e0]
punpckldq xmm0, xmm1
movapd xmm2, xmmword [0x18007b1f0]
subpd xmm0, xmm2
movapd xmm6, xmm0
unpckhpd xmm6, xmm0
addsd xmm6, xmm0
mov rax, qword [rdx + 0xd8]
cmp rax, 1
adc rax, 0
movq xmm0, rax
punpckldq xmm0, xmm1
subpd xmm0, xmm2
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
divsd xmm6, xmm1
mov rcx, qword [rdx + 0x48]
mov edx, dword [rdx + 0x50]
call fcn.180061ca0
movabs rcx, 0x8000000000000000
lea rsi, [rsp + 0x1d0]
mov qword [rsi], rcx
mov cl, 0x13
mov byte [rsi + 0x18], cl
mov byte [rsi + 0x1c], cl
xor r13d, r13d
mov dword [rsi + 0x20], r13d
mov byte [rsi + 0x24], cl
mov byte [rsi + 0x28], cl
mov dword [rsi + 0x2c], r13d
mov word [rsi + 0x30], 0
mov byte [rsi + 0x32], 0xf
lea rcx, [0x1800816a4]
lea rdi, [rsp + 0xd0]
mov qword [rdi], rcx
mov rcx, qword [rdi]
mov rdx, qword [0x1800a0838]
inc rdx
rol rdx, 7
add rdx, 0xffffffffee9473dd
rol rdx, 6
mov rbp, rax
mov r15d, 0xffff
and rdx, r15
movabs rbx, 0xb073e607ed760c95
xor rbx, qword [rcx + rdx]
movzx r14d, word [rcx + rdx + 8]
xor r14d, 0x6b9e
mov ecx, 0xa
call fcn.1800291c5
mov qword [rdx], rbx
mov word [rdx + 8], r14w
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], 0xa
mov dword [rdi + 0x20], r13d
movabs rbx, 0x100000010
mov qword [rdi + 0x18], rbx
lea r14, [rsp + 0x130]
mov rcx, r14
mov rdx, rdi
call fcn.180048ac0
mov rcx, rsi
call fcn.180032f64
mov rax, qword [r14 + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [r14]
movaps xmmword [rsi], xmm0
mov rcx, qword [rsi]
movupd xmm0, xmmword [rsi + 0x18]
movapd xmmword [r14 + 0x10], xmm0
mov rax, qword [rsi + 8]
mov qword [r14], rax
mov rax, qword [rsi + 0x10]
mov qword [r14 + 8], rax
mov al, byte [rsi + 0x31]
mov byte [rsp + 0x68], al
mov dl, byte [rsi + 0x32]
mov eax, dword [rsi + 0x33]
mov dword [rsp + 0x2f8], eax
mov al, byte [rsi + 0x37]
mov byte [rsp + 0x2fc], al
mov dword [r14 + 0x18], r13d
movabs rax, 0x100000009
mov qword [r14 + 0x10], rax
mov rax, qword [r14]
mov r9, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov qword [rsi + 0x10], r8
mov r8d, dword [r14 + 0x18]
mov dword [rsi + 0x18], r8d
mov r8d, dword [r14 + 0x1c]
mov dword [rsi + 0x1c], r8d
mov qword [rsi], rax
mov qword [rsi + 8], r9
mov dword [rsi + 0x24], r13d
mov qword [rsi + 0x1c], rbx
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsi]
mov r9, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov qword [rsp + 0x90], r8
mov r8d, dword [rsi + 0x18]
mov dword [rsp + 0x98], r8d
mov r8d, dword [rsi + 0x1c]
mov dword [rsp + 0x9c], r8d
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x60], rcx
mov byte [rsp + 0x78], dl
mov r8, qword [rsp + 0x58]
call fcn.180048b20
mov r8, rax
shr r8, 0x20
movabs rcx, 0xfffe00000000
add rcx, rax
movabs rdx, 0xffff00000000
and rcx, rdx
cmp r8w, 3
cmovae r13, rcx
xorpd xmm0, xmm0
ucomisd xmm6, xmm0
jb 0x18003636b
movsd xmm0, qword [0x18007b200]
ucomisd xmm0, xmm6
jb 0x18003636b
lea rcx, [rax + 1]
movabs r8, 0xffff0000ffff0000
mov qword [rsp + 0xc8], rax
mov rdx, rax
and rdx, r8
mov qword [rsp + 0x38], rcx
and r15, rcx
mov qword [rsp + 0x120], rdx
or r15, rdx
mov qword [rsp + 0x70], r13
or r15, r13
lea r14, [rsp + 0x40]
mov rcx, r14
mov rdx, rbp
call fcn.1800363e4
lea rax, [0x18007793d]
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x1d0]
mov ecx, 0x63012baf
xor rcx, qword [0x1800a0840]
rol rcx, 0xd
mov edx, 0x44b058da
sub rdx, rcx
rol rdx, 1
mov ecx, 0xffff
and rdx, rcx
movzx r8d, byte [rax + rdx + 2]
movzx eax, word [rax + rdx]
xor eax, 0x3825
xor r8b, 0xf5
lea rdx, [rsp + 0x368]
mov byte [rdx + 2], r8b
mov word [rdx], ax
lea r11, [rsp + 0x2d0]
mov qword [r11], rdx
mov eax, 3
mov qword [r11 + 8], rax
movsd xmm7, qword [0x18007b208]
mulsd xmm7, xmm6
lea r8, [rsp + 0x308]
movsd qword [r8], xmm7
lea rdx, [0x18007a73e]
mov qword [rsp + 0x1d0], rdx
mov rdx, qword [rsp + 0x1d0]
xor r13d, r13d
xor r9d, r9d
sub r9, qword [0x1800a0848]
mov r10, r9
shr r10, 0x13
xor r10, r9
neg r10
rol r10, 9
and r10, rcx
mov cl, byte [rdx + r10]
lea rbp, [rsp + 0x358]
lea rbx, [rsp + 0x170]
mov qword [rbx], rbp
mov edx, 1
mov qword [rbx + 8], rdx
mov qword [rsp + 0xd0], r14
lea r9, [0x18001b200]
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0xe0], r11
lea r11, [0x18001fab0]
mov qword [rsp + 0xe8], r11
mov qword [rsp + 0xf0], r8
mov r9d, 2
mov qword [rsp + 0x1d0], r9
mov qword [rsp + 0x1d8], rdx
mov qword [rsp + 0x1e0], r9
mov qword [rsp + 0x1e8], r9
mov qword [rsp + 0x1f0], r13
mov r10d, 0x20
mov qword [rsp + 0x1f8], r10
mov r8b, 3
mov byte [rsp + 0x200], r8b
mov qword [rsp + 0x208], r9
mov qword [rsp + 0x210], rdx
mov qword [rsp + 0x218], r9
mov qword [rsp + 0x220], r9
mov qword [rsp + 0x228], rdx
mov qword [rsp + 0x230], r10
mov byte [rsp + 0x238], r8b
mov qword [rsp + 0x240], r13
mov qword [rsp + 0x248], rdx
mov qword [rsp + 0x250], r9
mov qword [rsp + 0x258], r9
mov qword [rsp + 0x260], r9
mov qword [rsp + 0x268], r10
mov byte [rsp + 0x270], r8b
mov qword [rsp + 0x278], r9
mov qword [rsp + 0x280], rdx
mov qword [rsp + 0x288], r9
mov qword [rsp + 0x290], r9
mov qword [rsp + 0x298], rax
mov qword [rsp + 0x2a0], r10
lea rax, [0x1800847c8]
lea rdx, [rsp + 0x130]
mov qword [rdx], rax
mov eax, 4
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], rsi
mov qword [rdx + 0x28], rax
mov qword [rdx + 0x10], rdi
xor cl, 0x5b
mov byte [rbp], cl
mov byte [rsp + 0x2a8], r8b
mov qword [rdx + 0x18], rax
lea rax, [0x180026e00]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], r11
lea rcx, [rsp + 0xb0]
call fcn.18001b380
cmp qword [r14], r13
je 0x18003378d
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x1800a14a8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rsi, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
lea rdi, [rsp + 0x238]
movzx ecx, word [rdi - 0x68]
mov word [rsp + 0x170], cx
mov cl, byte [rdi - 0x66]
mov byte [rsp + 0x172], cl
lea rcx, [rsp + 0xd0]
movzx edx, word [rcx]
mov word [rsp + 0x2d0], dx
mov dl, byte [rcx + 2]
mov byte [rsp + 0x2d2], dl
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movups xmmword [rdi - 0x60], xmm0
movups xmmword [rdi - 0x50], xmm1
movups xmmword [rdi - 0x40], xmm2
mov edx, dword [rsp + 0x130]
mov r8d, dword [rsp + 0x133]
mov dword [rsp + 0x43], r8d
mov dword [rsp + 0x40], edx
movabs r8, 0x8000000000000001
mov qword [rdi - 0x68], r8
mov qword [rdi - 0x30], rsi
mov qword [rdi - 0x28], rbx
mov qword [rdi - 0x20], rax
mov al, 0x13
mov byte [rdi - 0x18], al
mov dl, byte [rsp + 0x172]
mov byte [rdi - 0x15], dl
movzx edx, word [rsp + 0x170]
mov word [rdi - 0x17], dx
mov byte [rdi - 0x14], al
mov al, byte [rsp + 0x2d2]
mov byte [rdi - 0x11], al
movzx eax, word [rsp + 0x2d0]
mov word [rdi - 0x13], ax
mov dword [rdi - 0x10], r13d
movsd qword [rdi - 8], xmm6
mov al, 0xb
mov byte [rdi], al
mov byte [rdi + 3], r13b
mov word [rdi + 1], r13w
mov dl, 1
mov byte [rdi + 4], dl
mov byte [rdi + 7], r13b
mov word [rdi + 5], r13w
mov dword [rdi + 8], r13d
lea rbp, [rsp + 0x244]
mov byte [rbp], al
mov byte [rbp + 3], r13b
mov word [rbp + 1], r13w
mov byte [rbp + 4], dl
mov byte [rbp + 7], r13b
mov word [rbp + 5], r13w
mov dword [rbp + 8], 4
mov byte [rbp + 0xc], r13b
mov r13, r8
mov eax, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x43]
mov dword [rbp + 0x10], r8d
mov dword [rbp + 0xd], eax
mov rax, qword [rsp + 0x60]
mov qword [rcx], rax
movapd xmm0, xmmword [rsp + 0x80]
movapd xmm1, xmmword [rsp + 0x90]
movupd xmmword [rcx + 8], xmm0
movupd xmmword [rcx + 0x18], xmm1
mov rax, qword [rsp + 0xa0]
mov qword [rcx + 0x28], rax
mov byte [rcx + 0x30], dl
mov al, byte [rsp + 0x68]
mov byte [rcx + 0x31], al
mov al, byte [rsp + 0x78]
mov byte [rcx + 0x32], al
mov eax, dword [rsp + 0x2f8]
mov dword [rcx + 0x33], eax
mov al, byte [rsp + 0x2fc]
mov byte [rcx + 0x37], al
mov rdx, qword [rsp + 0x58]
mov r8, r12
call fcn.180048bec
mov rcx, r12
mov rdx, r15
mov r8, rdi
call fcn.1800489e5
mov qword [rbp - 0x74], r13
mov r14, qword [rsp + 0xc8]
shr r14, 0x30
mov rcx, r12
mov rdx, r15
mov r8, rbp
call fcn.1800489e5
test r14, r14
mov qword [rsp + 0x58], r12
je 0x1800339f3
mov r15, r14
mov rdi, qword [rsp + 0x70]
shr rdi, 0x20
movapd xmm0, xmm7
call fcn.180069b80
movsd qword [rsp + 0x170], xmm0
cmp rsi, r13
jne 0x180033a30
lea rax, [rsp + 0x170]
mov qword [rsp + 0x40], rax
lea rax, [0x180026e00]
mov qword [rsp + 0x48], rax
lea rax, [0x180086370]
lea rdx, [rsp + 0xd0]
mov qword [rdx], rax
mov qword [rdx + 8], 2
mov qword [rdx + 0x20], 0
lea rax, [rsp + 0x40]
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], 1
lea rsi, [rsp + 0x130]
mov rcx, rsi
call fcn.18001b380
mov al, 0x13
mov byte [rsi + 0x18], al
mov byte [rsi + 0x1c], al
mov dword [rsi + 0x20], 0
jmp 0x180033a5b
movabs rax, 0x8000000000000002
cmp rsi, rax
movabs r12, 0x100000010
jl 0x180033c3f
test rsi, rsi
je 0x180033c3f
mov rcx, qword [0x1800a14a8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x180033c3f
lea rax, [rsp + 0x210]
mov qword [rsp + 0x130], rsi
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [rsp + 0x138], xmm0
movupd xmmword [rsp + 0x148], xmm1
mov r14, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x140]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x70], rdx
call fcn.180065eb2
mov rbp, rax
cmp di, bp
cmovb ebp, edi
mov eax, edi
sub eax, ebp
movzx ebx, ax
shr ebx, 1
add ebx, r14d
mov r13, qword [rsp + 0x120]
shr r13d, 0x10
movzx esi, r15w
mov r15d, esi
shr r15d, 1
add r15d, r13d
movzx eax, di
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mulsd xmm6, xmm0
movapd xmm0, xmm6
call fcn.180069b80
add si, r13w
mov eax, 0xffff
cmovae eax, esi
mov dword [rsp + 0x68], eax
cmp ax, r13w
jbe 0x180033be0
mov dword [rsp + 0x1a8], r15d
mov qword [rsp + 0x1b0], rbp
mov dword [rsp + 0x120], ebx
xorpd xmm1, xmm1
maxsd xmm1, xmm0
movsd xmm0, qword [0x18007b1d0]
minsd xmm0, xmm1
cvttsd2si eax, xmm0
mov qword [rsp + 0x78], rax
add eax, r14d
mov dword [rsp + 0x60], eax
mov r12d, dword [rsp + 0x244]
mov r15d, dword [rsp + 0x248]
xor eax, eax
cmp r15b, 0x13
cmove r15d, eax
cmp r12b, 0x13
cmove r12d, eax
mov rax, qword [rsp + 0x78]
mov ebx, eax
mov edx, r14d
cmp word [rsp + 0x60], r14w
mov r14, qword [rsp + 0x58]
lea rsi, [0x180087759]
jbe 0x180033b96
lea ebp, [rdx + 1]
mov rcx, r14
mov r8d, r13d
call fcn.180048758
mov rdi, rax
mov qword [rax + 0x10], 0
mov rcx, rax
lea rdx, [0x180087758]
mov r8, rsi
call fcn.180027cd4
mov dword [rdi + 0x18], r15d
mov dword [rdi + 0x1c], r12d
mov edx, ebp
dec bx
jne 0x180033b5c
inc r13d
cmp r13w, word [rsp + 0x68]
mov r14, qword [rsp + 0x38]
jb 0x180033b3e
movzx eax, word [rsp + 0x1b0]
lea rsi, [rsp + 0x148]
mov qword [rsp + 0x30], rsi
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x58]
mov edx, dword [rsp + 0x120]
mov r8d, dword [rsp + 0x1a8]
jmp 0x180033c07
movzx eax, bp
lea rsi, [rsp + 0x148]
mov qword [rsp + 0x30], rsi
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
mov rcx, r12
mov edx, ebx
mov r8d, r15d
mov rdi, qword [rsp + 0xc8]
mov r9, rdi
call fcn.18004879b
mov rax, qword [rsi - 0x18]
shl rax, 1
test rax, rax
je 0x180033c35
mov rcx, qword [0x1800a14a8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
movabs r12, 0x100000010
lea rsi, [rsp + 0x1d0]
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov al, 0x13
mov byte [rsi + 0x18], al
mov byte [rsi + 0x1c], al
xor ebx, ebx
mov dword [rsi + 0x20], ebx
mov byte [rsi + 0x24], al
mov byte [rsi + 0x28], al
mov dword [rsi + 0x2c], ebx
mov word [rsi + 0x30], 0
mov byte [rsi + 0x32], 0xf
lea rax, [0x180077064]
lea rdi, [rsp + 0xd0]
mov qword [rdi], rax
mov rax, qword [rdi]
mov rcx, 0xffffffffc742b8e7
xor rcx, qword [0x1800a0850]
add rcx, 0x30956ba2
rol rcx, 5
movzx ecx, cx
movabs r14, 0x2063c98d3d37167
xor r14, qword [rax + rcx]
mov ebp, 0x773e9412
xor ebp, dword [rax + rcx + 8]
mov r15b, byte [rax + rcx + 0xc]
xor r15b, 0x4c
mov ecx, 0xd
call fcn.1800291c5
mov qword [rdx], r14
mov dword [rdx + 8], ebp
mov byte [rdx + 0xc], r15b
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], 0xd
mov dword [rdi + 0x20], ebx
mov qword [rdi + 0x18], r12
lea r14, [rsp + 0x130]
mov rcx, r14
mov rdx, rdi
call fcn.180048ac0
mov rcx, rsi
call fcn.180032f64
mov rax, qword [r14 + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [r14]
movaps xmmword [rsi], xmm0
mov r13, qword [rsi]
movups xmm0, xmmword [rsi + 0x18]
movaps xmmword [r14 + 0x10], xmm0
mov rax, qword [rsi + 8]
mov qword [r14], rax
mov rax, qword [rsi + 0x10]
mov qword [r14 + 8], rax
mov bpl, byte [rsi + 0x31]
mov r15b, byte [rsi + 0x32]
mov eax, dword [rsi + 0x33]
mov dword [rsp + 0x190], eax
mov al, byte [rsi + 0x37]
mov byte [rsp + 0x194], al
mov dword [r14 + 0x18], ebx
movabs rax, 0x100000009
mov qword [r14 + 0x10], rax
mov rax, qword [r14]
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
mov qword [rsi + 0x10], rdx
mov edx, dword [r14 + 0x18]
mov dword [rsi + 0x18], edx
mov edx, dword [r14 + 0x1c]
mov dword [rsi + 0x1c], edx
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov dword [rsi + 0x24], ebx
mov qword [rsi + 0x1c], r12
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rsp + 0x90], rdx
mov edx, dword [rsi + 0x18]
mov dword [rsp + 0x98], edx
mov edx, dword [rsi + 0x1c]
mov dword [rsp + 0x9c], edx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
mov al, byte [0x1800a1528]
mov edx, 0x18
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x18003634d
mov rdi, rax
mov rcx, r13
mov edx, r15d
mov r8, qword [rsp + 0x188]
call fcn.180048b20
mov rcx, rax
shr rcx, 0x20
movabs rdx, 0xfffe00000000
add rdx, rax
movabs r8, 0xffff00000000
and rdx, r8
xor r8d, r8d
cmp cx, 3
cmovb rdx, r8
mov r8, rax
movabs rcx, 0xffff0000ffff0000
and r8, rcx
inc eax
movzx ecx, ax
or rcx, r8
or rcx, rdx
mov dword [rdi], 4
mov dword [rdi + 0xc], 0x10002
mov eax, 2
lea rdx, [rsp + 0x1d0]
mov qword [rdx], rax
mov qword [rdx + 8], rdi
mov qword [rdx + 0x10], rax
mov dword [rdx + 0x18], 0
mov word [rdx + 0x1c], 0x101
call fcn.18004429c
mov rsi, rax
mov r14, rdx
mov rcx, qword [0x1800a14a8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test r14, r14
mov rbx, qword [rsp + 0x198]
je 0x1800362dd
cmp r14, 1
je 0x1800362ed
mov qword [rsp + 0x78], r13
mov byte [rsp + 0x68], r15b
mov byte [rsp + 0x38], bpl
mov qword [rsp + 0xc8], r14
movzx ecx, word [rsi + 0x14]
test rcx, rcx
je 0x1800363a5
mov eax, dword [rsi + 0x10]
mov qword [rsp + 0x120], rax
movzx eax, word [rsi + 0x16]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x1b0], rsi
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x1a8], rax
mov rbp, qword [rbx + 0x10]
xor r14d, r14d
mov r15, rbp
sub r15, rcx
cmovb r15, r14
mov qword [rsp + 0x60], rcx
cmovae rbp, rcx
shl r15, 3
add r15, qword [rbx + 8]
lea rdi, [rsp + 0x228]
mov qword [rdi - 0x58], r14
movabs rax, 0x8000000000000001
mov qword [rdi - 0x48], rax
mov qword [rdi - 0x10], r15
mov qword [rdi - 8], rbp
lea rdx, [0x1800861d8]
mov r8d, 0x90
mov rcx, rdi
call fcn.180073920
mov al, 0x13
mov byte [rdi - 0x30], al
mov byte [rdi - 0x2c], al
mov dword [rdi - 0x28], r14d
mov byte [rdi - 0x24], 0xf
mov word [rdi - 0x23], 0
mov dword [rdi - 0x21], 0x100
mov byte [rdi - 0x1d], 0
mov dword [rdi - 0x1c], r14d
mov dword [rdi - 0x19], r14d
movups xmm0, xmmword [rdi - 0x40]
movaps xmmword [rsp + 0x130], xmm0
mov al, byte [rdi - 0x30]
mov byte [rsp + 0x140], al
movzx eax, word [rdi - 0x2f]
mov word [rsp + 0x141], ax
mov al, byte [rdi - 0x2d]
mov byte [rsp + 0x143], al
mov al, byte [rdi - 0x2c]
mov byte [rsp + 0x144], al
movzx eax, word [rdi - 0x2b]
mov word [rsp + 0x145], ax
mov al, byte [rdi - 0x29]
mov byte [rsp + 0x147], al
mov eax, dword [rdi - 0x28]
mov dword [rsp + 0x148], eax
mov al, byte [rdi - 0x24]
mov byte [rsp + 0x14c], al
movzx eax, word [rdi - 0x23]
mov word [rsp + 0x14d], ax
mov al, byte [rdi - 0x21]
mov byte [rsp + 0x14f], al
movups xmm0, xmmword [rdi - 0x20]
movaps xmmword [rsp + 0x150], xmm0
mov rdx, qword [rbx + 0xa8]
lea rcx, [rsp + 0x2d0]
call fcn.180036791
lea rax, [0x180077e89]
mov qword [rdi - 0x58], rax
mov rax, qword [rdi - 0x58]
mov rcx, 0xfffffffffc63f91c
xor rcx, qword [0x1800a0858]
movabs rdx, 0xf7ce03de90720418
imul rdx, rcx
rol rdx, 4
and edx, 0xff8f
mov ecx, 0x71f1d156
xor ecx, dword [rax + rdx]
lea rax, [rsp + 0x37c]
mov dword [rax], ecx
lea r13, [rsp + 0x390]
mov qword [r13], rax
mov qword [r13 + 8], 4
mov rdx, qword [rbx + 0xb0]
lea rcx, [rsp + 0x170]
call fcn.180036791
lea rax, [0x18007b426]
mov qword [rdi - 0x58], rax
mov rax, qword [rdi - 0x58]
mov rcx, 0xffffffffe93413cf
add rcx, qword [0x1800a0860]
rol rcx, 0xd
mov r12d, 0xffff
and rcx, r12
movabs rdx, 0xf28f57b0443b56c1
xor rdx, qword [rax + rcx]
mov r8d, 0x17522a0c
xor r8d, dword [rax + rcx + 8]
lea rax, [rsp + 0x380]
mov qword [rax], rdx
mov dword [rax + 8], r8d
mov qword [rsp + 0x358], rax
mov qword [rsp + 0x360], 0xc
mov rdx, qword [rbx + 0x88]
lea rsi, [rsp + 0xb0]
mov rcx, rsi
call fcn.180036791
lea rax, [0x18007778d]
mov qword [rdi - 0x58], rax
mov rax, qword [rdi - 0x58]
mov rcx, 0xffffffffe68edefb
xor rcx, qword [0x1800a0868]
movabs rdx, 0x174d269a11d3b6f7
imul rdx, rcx
rol rdx, 6
and rdx, r12
movzx eax, word [rax + rdx]
xor eax, 0xbe8
lea rcx, [rsp + 0x1ce]
mov word [rcx], ax
mov qword [rsp + 0x368], rcx
mov qword [rsp + 0x370], 2
mov rdx, qword [rbx + 0x90]
lea rbx, [rsp + 0x40]
mov rcx, rbx
call fcn.180036791
lea rax, [0x180076156]
mov qword [rdi - 0x58], rax
mov rax, qword [rdi - 0x58]
movabs rcx, 0xffffffff417467c8
sub rcx, qword [0x1800a0870]
rol rcx, 7
and rcx, r12
mov al, byte [rax + rcx]
xor al, 0x2e
lea rcx, [rsp + 0x12f]
mov byte [rcx], al
lea rax, [rsp + 0x2f8]
mov qword [rax], rcx
mov qword [rax + 8], 1
lea rcx, [rsp + 0x2d0]
mov qword [rdi - 0x58], rcx
lea r8, [0x18001b200]
mov qword [rdi - 0x50], r8
mov qword [rdi - 0x48], r13
lea rcx, [0x18001fab0]
mov qword [rdi - 0x40], rcx
lea rdx, [rsp + 0x170]
mov qword [rdi - 0x38], rdx
mov qword [rdi - 0x30], r8
lea rdx, [rsp + 0x358]
mov qword [rdi - 0x28], rdx
mov qword [rdi - 0x20], rcx
mov qword [rdi - 0x18], rsi
mov qword [rdi - 0x10], r8
lea rdx, [rsp + 0x368]
mov qword [rdi - 8], rdx
mov qword [rdi], rcx
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], r8
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rcx
lea rax, [0x180084850]
lea rdx, [rsp + 0xd0]
mov qword [rdx], rax
mov eax, 8
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], r14
lea rcx, [rsp + 0x1d0]
mov qword [rdx + 0x10], rcx
mov qword [rdx + 0x18], rax
lea rcx, [rsp + 0x308]
call fcn.18001b380
cmp qword [rsp + 0x40], r14
je 0x18003427d
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x1800a14a8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0xb0], 0
je 0x18003429f
mov r8, qword [rsp + 0xb8]
mov rcx, qword [0x1800a14a8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x170], 0
mov rbx, qword [rsp + 0x58]
je 0x1800342c6
mov r8, qword [rsp + 0x178]
mov rcx, qword [0x1800a14a8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x2d0], 0
je 0x1800342e8
mov r8, qword [rsp + 0x2d8]
mov rcx, qword [0x1800a14a8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov r14, qword [rsp + 0x308]
mov rsi, qword [rsp + 0x310]
mov rax, qword [rsp + 0x318]
movabs rcx, 0x8000000000000000
cmp r14, rcx
jne 0x18003439b
test rax, rax
je 0x18003446c
xor edx, edx
lea rcx, [rsp + 0xd0]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rsi
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rdx
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], 1
movabs rax, 0xa0000000a
mov qword [rcx + 0x38], rax
mov word [rcx + 0x40], 0
call fcn.180043c53
test rax, rax
je 0x18003438c
mov r8, rdx
lea rsi, [rsp + 0x1d0]
mov rcx, rsi
mov rdx, rax
call fcn.180043eef
movabs rax, 0x8000000000000000
cmp qword [rsi], rax
jne 0x1800344f9
mov r13d, 8
xor edi, edi
xor esi, esi
jmp 0x18003474a
test rax, rax
je 0x1800344a3
xor edx, edx
lea rcx, [rsp + 0xd0]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
mov qword [rsp + 0x320], rsi
mov qword [rcx + 0x10], rsi
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rdx
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], 1
movabs rax, 0xa0000000a
mov qword [rcx + 0x38], rax
mov word [rcx + 0x40], 0
call fcn.180043c53
test rax, rax
je 0x18003445d
mov rdi, rax
mov rsi, rdx
mov rcx, rdx
call fcn.1800291c5
mov qword [rsp + 0x1a0], r14
mov r14, rax
mov r12, rdx
mov rcx, rdx
mov rdx, rdi
mov r8, rsi
call fcn.180073920
lea rdx, [rsp + 0x1d0]
mov qword [rdx], r14
mov r14, qword [rsp + 0x1a0]
mov qword [rdx + 8], r12
mov rbx, qword [rsp + 0x58]
mov qword [rdx + 0x10], rsi
lea rsi, [rsp + 0x40]
mov rcx, rsi
call fcn.180043d9a
movabs rax, 0x8000000000000000
cmp qword [rsi], rax
jne 0x1800345d6
mov r13d, 8
xor edi, edi
xor esi, esi
jmp 0x18003472e
mov al, byte [0x1800a1528]
mov edx, 0x18
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x1800363cc
mov r13, rax
lea rdx, [0x180091580]
mov rcx, rax
xor r8d, r8d
call fcn.180043eef
mov edi, 1
jmp 0x1800344ef
mov al, byte [0x1800a1528]
mov edx, 0x18
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x1800363cc
mov r13, rax
lea rdx, [0x180091580]
mov rcx, rax
xor r8d, r8d
call fcn.180043eef
mov edi, 1
test r14, r14
je 0x1800344ef
mov rcx, qword [0x1800a14a8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
mov esi, 1
jmp 0x18003474a
call fcn.180043e01
mov r12, rax
lea r14, [rsp + 0x1d0]
movups xmm0, xmmword [r14]
movups xmmword [rax], xmm0
mov rax, qword [r14 + 0x10]
mov qword [r12 + 0x10], rax
lea rax, [rsp + 0xb0]
mov qword [rax], 4
mov qword [rax + 8], r12
mov qword [rax + 0x10], 1
lea rsi, [rsp + 0xd0]
mov ecx, 9
mov rdi, r14
rep movsq qword [rdi], qword [rsi]
mov esi, 1
mov ebx, 0x18
lea r13, [rsp + 0x40]
mov rcx, r14
call fcn.180043c53
test rax, rax
je 0x1800346f0
mov r8, rdx
mov rcx, r13
mov rdx, rax
call fcn.180043eef
mov rdi, qword [rsp + 0xb0]
movabs rax, 0x8000000000000000
cmp qword [rsp + 0x40], rax
je 0x1800346f8
cmp rsi, rdi
je 0x1800345bc
mov rax, qword [rsp + 0x50]
mov qword [r12 + rbx + 0x10], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [r12 + rbx], xmm0
inc rsi
mov qword [rsp + 0xc0], rsi
add rbx, 0x18
jmp 0x180034556
lea rcx, [rsp + 0xb0]
mov rdx, rsi
call fcn.18007826e
mov r12, qword [rsp + 0xb8]
jmp 0x180034597
call fcn.180043e01
mov r13, rax
lea rbx, [rsp + 0x40]
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
mov rax, qword [rbx + 0x10]
mov qword [r13 + 0x10], rax
lea rax, [rsp + 0x170]
mov qword [rax], 4
mov qword [rax + 8], r13
mov qword [rax + 0x10], 1
lea r12, [rsp + 0x1d0]
lea rsi, [rsp + 0xd0]
mov ecx, 9
mov rdi, r12
rep movsq qword [rdi], qword [rsi]
mov esi, 1
mov rcx, r12
call fcn.180043c53
test rax, rax
je 0x180034707
mov r14, rax
mov rdi, rdx
mov rcx, rdx
call fcn.1800291c5
mov rsi, rax
mov r13, rdx
mov rcx, rdx
mov rdx, r14
mov r8, rdi
call fcn.180073920
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], rdi
lea rcx, [rsp + 0xb0]
mov rdx, rbx
call fcn.180043d9a
mov rdi, qword [rsp + 0x170]
movabs rax, 0x8000000000000000
cmp qword [rsp + 0xb0], rax
je 0x180034711
mov rsi, qword [rsp + 0x180]
cmp rsi, rdi
je 0x1800346de
mov r13, qword [rsp + 0x178]
lea rax, [rsi + rsi*2]
mov rcx, qword [rsp + 0xc0]
mov qword [r13 + rax*8 + 0x10], rcx
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [r13 + rax*8], xmm0
inc rsi
mov qword [rsp + 0x180], rsi
jmp 0x18003462c
lea rcx, [rsp + 0x170]
mov rdx, rdi
call fcn.18007826e
jmp 0x1800346a7
mov rdi, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x58]
jmp 0x18003474a
mov rdi, qword [rsp + 0x170]
jmp 0x180034721
mov r13, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x180]
mov r14, qword [rsp + 0x1a0]
mov rbx, qword [rsp + 0x58]
test r14, r14
je 0x18003474a
mov rcx, qword [0x1800a14a8]
xor edx, edx
mov r8, qword [rsp + 0x320]
call qword [sym.imp.kernel32.dll_HeapFree]
mov dword [rsp + 0x221], 0x1000000
mov word [rsp + 0x225], 0
mov byte [rsp + 0x227], 0
mov qword [rsp + 0x1d0], rdi
mov qword [rsp + 0x1d8], r13
mov qword [rsp + 0x1e0], rsi
movabs rax, 0x8000000000000001
mov qword [rsp + 0x1e8], rax
lea rsi, [rsp + 0xd0]
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmmword [rsp + 0x1f0], xmm0
movups xmmword [rsp + 0x200], xmm1
movups xmmword [rsp + 0x210], xmm2
mov byte [rsp + 0x220], 0x10
mov qword [rsp + 0x228], 0
mov byte [rsp + 0x230], 2
mov eax, dword [rsp + 0x41]
mov dword [rsp + 0x232], eax
movzx eax, word [rsp + 0x45]
mov word [rsp + 0x236], ax
mov al, 1
mov byte [rsp + 0x231], al
mov rcx, qword [rsp + 0x78]
mov qword [rsi], rcx
movaps xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movups xmmword [rsi + 8], xmm0
movups xmmword [rsi + 0x18], xmm1
mov rcx, qword [rsp + 0xa0]
mov qword [rsi + 0x28], rcx
mov byte [rsi + 0x30], al
mov al, byte [rsp + 0x38]
mov byte [rsi + 0x31], al
mov al, byte [rsp + 0x68]
mov byte [rsi + 0x32], al
mov eax, dword [rsp + 0x190]
mov dword [rsi + 0x33], eax
mov al, byte [rsp + 0x194]
mov byte [rsi + 0x37], al
mov rcx, rsi
mov rdx, qword [rsp + 0x188]
mov r8, rbx
call fcn.180048bec
mov rax, qword [rsp + 0x70]
shl rax, 0x30
add rax, qword [rsp + 0x120]
mov rdi, qword [rsp + 0x60]
shl rdi, 0x20
or rdi, rax
movabs rcx, 0x8000000000000000
mov qword [rsi], rcx
movaps xmm0, xmmword [rsp + 0x130]
movaps xmm1, xmmword [rsp + 0x140]
movaps xmm2, xmmword [rsp + 0x150]
movups xmmword [rsi + 0x28], xmm2
movups xmmword [rsi + 8], xmm0
movups xmmword [rsi + 0x18], xmm1
mov dl, byte [rsi + 0x32]
mov r8, rdi
call fcn.180048b20
mov r14, rax
lea rcx, [rsp + 0xd0]
mov rdx, rdi
mov r8, rbx
call fcn.180048bec
mov r12, r14
shr r12, 0x30
je 0x180034b0f
mov rax, r14
shr rax, 0x20
test rbp, rbp
je 0x180034922
mov rcx, r15
cmp rbp, 1
je 0x180034924
lea rdx, [r15 + 8]
lea rcx, [rbp - 1]
movabs r8, 0x1fffffffffffffff
and r8, rcx
mov r9, qword [r15]
mov rcx, r15
mov r10, qword [rdx]
cmp r9, r10
cmovbe r9, r10
cmovbe rcx, rdx
add rdx, 8
dec r8
jne 0x180034909
jmp 0x180034924
xor ecx, ecx
test rcx, rcx
lea rdx, [0x1800864b8]
cmovne rdx, rcx
movzx eax, ax
cmp rax, rbp
cmovb rbp, rax
test rbp, rbp
mov qword [rsp + 0x60], r14
je 0x1800349d1
mov rsi, qword [rdx]
lea rdi, [rbp*8]
mov al, byte [0x1800a1528]
xor ecx, ecx
mov rdx, rdi
call fcn.180061f70
test rax, rax
je 0x1800363d6
mov rcx, rax
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], 0
lea r8, [r12*8]
xor r9d, r9d
test rsi, rsi
je 0x1800349ac
mov rax, qword [r15 + r9*8]
imul rax, r8
xor edx, edx
div rsi
jmp 0x1800349ae
xor eax, eax
mov qword [rcx + r9*8], rax
inc r9
cmp rbp, r9
jne 0x180034998
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x70], rax
mov rdi, qword [rsp + 0xd8]
jmp 0x1800349fe
xor ecx, ecx
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], 8
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xe0], rcx
mov edi, 8
xor r9d, r9d
test r12w, r12w
je 0x180034af0
mov rax, qword [rsp + 0x60]
shr eax, 0x10
mov qword [rsp + 0x188], rax
lea rax, [r9*8]
mov qword [rsp + 0x38], rax
xor esi, esi
mov qword [rsp + 0x78], r9
dec r12d
mov qword [rsp + 0x68], r12
test r9, r9
je 0x180034adc
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x188]
lea ebp, [rax + rcx]
xor ebx, ebx
mov rax, qword [rsp + 0x60]
mov r14d, eax
mov rax, qword [rdi + rbx]
mov r15d, 3
lea r12, [0x1800861c0]
cmp rax, 7
ja 0x180034a84
lea rcx, [0x180091bd0]
mov r12, qword [rcx + rax*8]
lea rcx, [0x180091c10]
mov r15, qword [rcx + rax*8]
mov rcx, qword [rsp + 0x58]
mov edx, r14d
mov r8d, ebp
call fcn.180048758
mov r13, rax
mov qword [rax + 0x10], rsi
add r15, r12
mov rcx, rax
mov rdx, r12
mov r8, r15
call fcn.180027cd4
movabs rax, 0x10000000f
mov qword [r13 + 0x18], rax
mov rax, qword [rdi + rbx]
sub rax, 8
cmovb rax, rsi
mov qword [rdi + rbx], rax
inc r14d
add rbx, 8
cmp qword [rsp + 0x38], rbx
jne 0x180034a57
mov r12, qword [rsp + 0x68]
test r12w, r12w
mov r9, qword [rsp + 0x78]
jne 0x180034a2c
cmp qword [rsp + 0x70], 0
mov rbx, qword [rsp + 0x58]
je 0x180034b0f
mov rcx, qword [0x1800a14a8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
mov rdi, qword [rsp + 0x198]
lea rax, [rdi + 0xb8]
mov qword [rsp + 0x68], rax
lea rax, [rdi + 0xc8]
mov qword [rsp + 0x78], rax
lea rax, [rdi + 0xd0]
mov qword [rsp + 0x60], rax
lea rax, [rdi + 0xd8]
mov qword [rsp + 0x188], rax
lea rcx, [rsp + 0x1d0]
mov rdx, qword [rsp + 0x1a8]
mov r8, rbx
call fcn.1800493cf
mov rcx, qword [rsp + 0x1b0]
mov rdx, qword [rsp + 0xc8]
call fcn.18004422d
xor esi, esi
lea rax, [rsp + 0x80]
mov qword [rax], rsi
mov qword [rax + 8], 8
mov qword [rax + 0x10], rsi
mov r14, qword [rdi + 0x58]
mov r15, qword [rdi + 0x70]
movdqa xmm0, xmmword [r14]
pmovmskb ebx, xmm0
not ebx
lea r12, [r14 + 0x10]
mov ebp, 8
mov r13d, 1
sub r15, 1
jb 0x180034c92
test bx, bx
jne 0x180034be0
movdqa xmm0, xmmword [r12]
pmovmskb ebx, xmm0
add r14, 0xfffffffffffffe80
add r12, 0x10
cmp ebx, 0xffff
je 0x180034bc1
not ebx
mov al, byte [0x1800a1528]
mov edx, 0x28
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036303
mov rdi, rax
bsf eax, ebx
neg rax
lea rax, [rax + rax*2]
movdqu xmm0, xmmword [r14 + rax*8 - 0x10]
movabs rax, 0x8000000000000000
mov qword [rdi], rax
movdqu xmmword [rdi + 8], xmm0
movabs rax, 0x100000010
mov qword [rdi + 0x18], rax
mov dword [rdi + 0x20], 0
cmp rsi, qword [rsp + 0x80]
jne 0x180034c60
lea rcx, [rsp + 0x80]
mov rdx, rsi
call fcn.180032ebb
mov rbp, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
lea eax, [rbx - 1]
and eax, ebx
lea rcx, [rsi + rsi*2]
mov qword [rbp + rcx*8], r13
mov qword [rbp + rcx*8 + 8], rdi
mov qword [rbp + rcx*8 + 0x10], r13
mov rsi, qword [rsp + 0x90]
inc rsi
mov qword [rsp + 0x90], rsi
mov ebx, eax
jmp 0x180034bb2
lea rsi, [rsp + 0x1d0]
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov r13b, 0x13
mov byte [rsi + 0x18], r13b
mov byte [rsi + 0x1c], r13b
xor r12d, r12d
mov dword [rsi + 0x20], r12d
mov byte [rsi + 0x24], r13b
mov byte [rsi + 0x28], r13b
mov dword [rsi + 0x2c], r12d
mov word [rsi + 0x30], r12w
mov al, 0xf
mov byte [rsi + 0x32], al
lea rax, [0x18007db07]
lea rdi, [rsp + 0xd0]
mov qword [rdi], rax
mov rax, qword [rdi]
imul rcx, qword [0x1800a0878], 0xffffffffee68a466
add rcx, 0xffffffffe350847d
rol rcx, 1
mov edx, 0xffff
and rcx, rdx
movabs rbx, 0xb5d5c3969491a1c
xor rbx, qword [rax + rcx]
mov ebp, 0xbb9fa6d4
xor ebp, dword [rax + rcx + 8]
movzx r14d, byte [rax + rcx + 0xe]
movzx r15d, word [rax + rcx + 0xc]
xor r15d, 0x2fb6
xor r14b, 0xe5
mov ecx, 0xf
call fcn.1800291c5
mov qword [rdx], rbx
mov dword [rdx + 8], ebp
mov word [rdx + 0xc], r15w
mov byte [rdx + 0xe], r14b
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], 0xf
mov dword [rdi + 0x20], r12d
movabs rax, 0x100000010
mov qword [rdi + 0x18], rax
mov rbx, rax
lea r15, [rsp + 0x130]
mov rcx, r15
mov rdx, rdi
call fcn.180048ac0
mov rcx, rsi
call fcn.180032f64
mov rax, qword [r15 + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [r15]
movaps xmmword [rsi], xmm0
mov r14, qword [rsi]
movups xmm0, xmmword [rsi + 0x18]
movaps xmmword [r15 + 0x10], xmm0
mov rax, qword [rsi + 8]
mov qword [r15], rax
mov rax, qword [rsi + 0x10]
mov qword [r15 + 8], rax
mov al, byte [rsi + 0x31]
mov byte [rsp + 0x38], al
mov bpl, byte [rsi + 0x32]
mov eax, dword [rsi + 0x33]
mov dword [rsp + 0x40], eax
mov al, byte [rsi + 0x37]
mov byte [rsp + 0x44], al
mov dword [r15 + 0x18], r12d
movabs rax, 0x100000009
mov qword [r15 + 0x10], rax
mov rax, qword [r15]
mov rcx, qword [r15 + 8]
mov rdx, qword [r15 + 0x10]
mov qword [rsi + 0x10], rdx
mov edx, dword [r15 + 0x18]
mov dword [rsi + 0x18], edx
mov edx, dword [r15 + 0x1c]
mov dword [rsi + 0x1c], edx
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov dword [rsi + 0x24], r12d
mov qword [rsi + 0x1c], rbx
mov rax, qword [rsi + 0x20]
mov qword [rdi + 0x28], rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rdi + 0x18], rdx
mov edx, dword [rsi + 0x18]
mov dword [rdi + 0x20], edx
mov edx, dword [rsi + 0x1c]
mov dword [rdi + 0x24], edx
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rcx
mov rcx, r14
mov edx, ebp
mov rbx, qword [rsp + 0x1c0]
mov r8, rbx
call fcn.180048b20
mov rcx, rax
shr rcx, 0x20
movabs rdx, 0xfffe00000000
add rdx, rax
movabs r8, 0xffff00000000
and rdx, r8
cmp cx, 3
cmovb rdx, r12
lea ecx, [rax + 1]
movabs r8, 0xffff0000ffff0000
and rax, r8
movzx r15d, cx
or r15, rax
or r15, rdx
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsi], xmm0
mov rax, qword [rsp + 0x90]
mov qword [rsi + 0x10], rax
mov word [rsi + 0x51], r12w
mov dword [rsi + 0x53], 0x100
mov byte [rsi + 0x57], 0
movabs rax, 0x8000000000000001
mov qword [rsi + 0x18], rax
mov byte [rsi + 0x50], 0x10
mov qword [rsi + 0x58], r12
mov word [rsi + 0x60], 2
mov qword [rdi], r14
mov byte [rdi + 0x30], 1
mov al, byte [rsp + 0x38]
mov byte [rdi + 0x31], al
mov byte [rdi + 0x32], bpl
mov eax, dword [rsp + 0x40]
mov dword [rdi + 0x33], eax
mov al, byte [rsp + 0x44]
mov byte [rdi + 0x37], al
lea rsi, [rsp + 0xd0]
mov rcx, rsi
mov rdx, rbx
mov rbx, qword [rsp + 0x58]
mov r8, rbx
call fcn.180048bec
lea rdi, [rsp + 0x1d0]
mov rcx, rdi
mov rdx, r15
mov r8, rbx
call fcn.1800493cf
movabs rax, 0x8000000000000000
mov qword [rdi], rax
mov byte [rdi + 0x18], r13b
mov byte [rdi + 0x1c], r13b
mov dword [rdi + 0x20], r12d
mov byte [rdi + 0x24], r13b
mov byte [rdi + 0x28], r13b
mov dword [rdi + 0x2c], r12d
mov word [rdi + 0x30], r12w
mov al, 0xf
mov byte [rdi + 0x32], al
lea rax, [0x18007ffe1]
mov qword [rsi], rax
mov rax, qword [rsi]
imul rcx, qword [0x1800a0880], 0xffffffff83e70bad
rol rcx, 6
imul rcx, rcx, 0x43356409
rol rcx, 1
mov edx, 0xffff
and rcx, rdx
movabs rdi, 0xfd7b32822a550f19
xor rdi, qword [rax + rcx]
mov ebx, 0xfe4cddf7
xor ebx, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.1800291c5
mov qword [rdx], rdi
mov dword [rdx + 8], ebx
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 0xc
mov dword [rsi + 0x20], r12d
movabs r14, 0x100000010
mov qword [rsi + 0x18], r14
lea rdi, [rsp + 0x130]
lea rdx, [rsp + 0xd0]
mov rcx, rdi
call fcn.180048ac0
lea rsi, [rsp + 0x1d0]
mov rcx, rsi
call fcn.180032f64
mov rax, qword [rdi + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rdi]
movaps xmmword [rsi], xmm0
mov rbx, qword [rsi]
movups xmm0, xmmword [rsi + 0x18]
movaps xmmword [rdi + 0x10], xmm0
mov rax, qword [rsi + 8]
mov qword [rdi], rax
mov rax, qword [rsi + 0x10]
mov qword [rdi + 8], rax
mov r13b, byte [rsi + 0x31]
mov r15b, byte [rsi + 0x32]
mov eax, dword [rsi + 0x33]
mov dword [rsp + 0x80], eax
mov al, byte [rsi + 0x37]
mov byte [rsp + 0x84], al
mov dword [rdi + 0x18], r12d
movabs rax, 0x100000009
mov qword [rdi + 0x10], rax
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
mov qword [rsi + 0x10], rdx
mov edx, dword [rdi + 0x18]
mov dword [rsi + 0x18], edx
mov edx, dword [rdi + 0x1c]
mov dword [rsi + 0x1c], edx
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov dword [rsi + 0x24], r12d
mov r12, r14
mov qword [rsi + 0x1c], r14
mov rax, qword [rsi + 0x20]
mov qword [rdi + 0x20], rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rdi + 0x10], rdx
mov edx, dword [rsi + 0x18]
mov dword [rdi + 0x18], edx
mov edx, dword [rsi + 0x1c]
mov dword [rdi + 0x1c], edx
mov qword [rdi], rax
mov qword [rdi + 8], rcx
mov rcx, rbx
mov edx, r15d
mov r8, qword [rsp + 0x2e8]
call fcn.180048b20
mov rsi, rax
mov al, byte [0x1800a1528]
mov edx, 0x90
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x1800363bd
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0xc8], rbx
mov al, byte [0x1800a1528]
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
mov qword [rsp + 0x38], rax
test rax, rax
je 0x180036312
lea rax, [0x18007d202]
lea rsi, [rsp + 0x1d0]
mov qword [rsi], rax
mov rax, qword [rsi]
mov rcx, 0xffffffffb0cc975b
xor rcx, qword [0x1800a0888]
inc rcx
xor rcx, 0xffffffff912a5b34
mov rdx, rcx
shr rdx, 0x1c
xor rdx, rcx
rol rdx, 4
movzx ecx, dx
movabs rbx, 0xbbfcf9d08177b8e
xor rbx, qword [rax + rcx]
mov ebp, 0xbbcec1db
xor ebp, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.1800291c5
mov rdi, rax
mov r14, rdx
mov qword [rdx], rbx
mov dword [rdx + 8], ebp
mov rcx, rsi
mov rdx, qword [rsp + 0x68]
call fcn.180036abd
cmp qword [rsp + 0x1b8], 0
mov byte [rsp + 0x120], r13b
je 0x18003519e
movabs rax, 0x10000000b
mov qword [rsp + 0xd0], rax
jmp 0x1800351a6
mov qword [rsp + 0xd0], r12
mov dword [rsp + 0xd8], 0
mov byte [rsp + 0x68], r15b
mov rax, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x38], rax
movups xmm0, xmmword [rsp + 0x1d0]
movups xmmword [rcx + 0x28], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rcx + 0x40], rax
mov eax, dword [rsp + 0xd8]
mov dword [rcx + 0x48], eax
mov qword [rcx], rdi
mov qword [rcx + 8], r14
mov qword [rcx + 0x10], 0xc
mov qword [rcx + 0x18], r12
mov dword [rcx + 0x20], 0
mov al, byte [0x1800a1528]
xor ebx, ebx
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036312
mov r13, rax
lea rax, [0x180083b3a]
lea rsi, [rsp + 0x1d0]
mov qword [rsi], rax
mov rax, qword [rsi]
mov ecx, 0xb798a19
sub rcx, qword [0x1800a0890]
imul rcx, rcx, 0x280521a9
rol rcx, 1
movzx ecx, cx
movabs r15, 0xb76e68f2704a609e
xor r15, qword [rax + rcx]
mov ebp, 0x3472ac8a
xor ebp, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.1800291c5
mov rdi, rax
mov r14, rdx
mov qword [rdx], r15
mov dword [rdx + 8], ebp
mov rax, qword [rsp + 0x198]
lea rdx, [rax + 0xc0]
mov rcx, rsi
call fcn.180036abd
mov rax, qword [rsi + 0x10]
mov qword [r13 + 0x38], rax
movups xmm0, xmmword [rsi]
movups xmmword [r13 + 0x28], xmm0
mov qword [r13 + 0x40], r12
mov dword [r13 + 0x48], ebx
mov qword [r13], rdi
mov qword [r13 + 8], r14
mov qword [r13 + 0x10], 0xc
mov qword [r13 + 0x18], r12
mov dword [r13 + 0x20], ebx
mov al, byte [0x1800a1528]
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036312
mov r15, r12
mov r12, rax
mov qword [rsp + 0x1b8], r13
lea rax, [0x18007ecde]
lea rsi, [rsp + 0x1d0]
mov qword [rsi], rax
mov rax, qword [rsi]
imul rcx, qword [0x1800a0898], 0xb0074c7
rol rcx, 6
add rcx, 0xffffffffc44394ae
rol rcx, 2
movzx ecx, cx
movabs rbx, 0xeaa41395151b0f4c
xor rbx, qword [rax + rcx]
mov ebp, 0x7206783e
xor ebp, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.1800291c5
mov rdi, rax
mov r14, rdx
mov qword [rdx], rbx
mov dword [rdx + 8], ebp
mov rcx, rsi
mov rdx, qword [rsp + 0x78]
call fcn.180036abd
mov rax, qword [rsi + 0x10]
mov qword [r12 + 0x38], rax
movups xmm0, xmmword [rsi]
movups xmmword [r12 + 0x28], xmm0
mov qword [r12 + 0x40], r15
xor eax, eax
mov dword [r12 + 0x48], eax
mov qword [r12], rdi
mov qword [r12 + 8], r14
mov qword [r12 + 0x10], 0xc
mov qword [r12 + 0x18], r15
mov qword [rsp + 0x78], r12
mov dword [r12 + 0x20], eax
mov al, byte [0x1800a1528]
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036312
mov rsi, rax
lea rax, [0x180078433]
lea rdi, [rsp + 0x1d0]
mov qword [rdi], rax
mov rax, qword [rdi]
movabs rcx, 0xfd61be4295c568d4
imul rcx, qword [0x1800a08a0]
add rcx, 0x79a35a41
rol rcx, 1
and ecx, 0xfffb
movabs rbx, 0xb5d5337944e01b90
xor rbx, qword [rax + rcx]
mov ebp, 0x64f94e24
xor ebp, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.1800291c5
mov r14, rax
mov r13, rdx
mov qword [rdx], rbx
mov dword [rdx + 8], ebp
mov rcx, rdi
mov rdx, qword [rsp + 0x60]
call fcn.180036abd
movabs rax, 0x10000000a
cmp qword [rsp + 0x350], 0
je 0x18003545c
mov qword [rsp + 0xd0], rax
mov dword [rsp + 0xd8], 0
movabs rcx, 0x100000010
jmp 0x180035479
movabs rcx, 0x100000010
mov qword [rsp + 0xd0], rcx
mov dword [rsp + 0xd8], 0
mov rax, qword [rsp + 0x1e0]
mov qword [rsi + 0x38], rax
movups xmm0, xmmword [rsp + 0x1d0]
movups xmmword [rsi + 0x28], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rsi + 0x40], rax
mov eax, dword [rsp + 0xd8]
mov dword [rsi + 0x48], eax
mov qword [rsi], r14
mov qword [rsi + 8], r13
mov qword [rsi + 0x10], 0xc
mov qword [rsi + 0x18], rcx
mov dword [rsi + 0x20], 0
mov al, byte [0x1800a1528]
xor ebx, ebx
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036312
mov r14, rax
lea rax, [0x18007690f]
lea rdi, [rsp + 0x1d0]
mov qword [rdi], rax
mov rax, qword [rdi]
mov ecx, 0x44a27769
add rcx, qword [0x1800a08a8]
rol rcx, 5
add rcx, 0xfffffffff173c0c2
mov edx, ecx
shr edx, 9
xor rdx, rcx
rol rdx, 1
movzx ecx, dx
movabs r15, 0x3a6d58e3a59a1bf1
xor r15, qword [rax + rcx]
mov r12d, 0xbf5f7b3b
xor r12d, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.1800291c5
mov r13, rax
mov rbp, rdx
mov qword [rdx], r15
mov dword [rdx + 8], r12d
mov rcx, rdi
mov rdx, qword [rsp + 0x188]
call fcn.180036abd
mov rax, qword [rdi + 0x10]
mov qword [r14 + 0x38], rax
movups xmm0, xmmword [rdi]
movups xmmword [r14 + 0x28], xmm0
movabs rax, 0x100000010
mov qword [r14 + 0x40], rax
mov dword [r14 + 0x48], ebx
mov qword [r14], r13
mov qword [r14 + 8], rbp
mov qword [r14 + 0x10], 0xc
mov qword [r14 + 0x18], rax
mov dword [r14 + 0x20], ebx
mov al, byte [0x1800a1528]
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036312
mov rbp, rax
mov r8, qword [rsp + 0x70]
mov rcx, r8
shr rcx, 0x20
movabs rax, 0xfffe00000000
add rax, r8
movabs rdx, 0xffff00000000
and rax, rdx
xor edx, edx
cmp cx, 3
cmovb rax, rdx
mov rcx, r8
movabs rdx, 0xffff0000ffff0000
and rcx, rdx
lea edx, [r8 + 1]
movzx edx, dx
or rdx, rcx
mov r9, rdx
lea rcx, [0x18007e10d]
lea r13, [rsp + 0x1d0]
mov qword [r13], rcx
mov rcx, qword [r13]
mov rdx, 0xffffffff8b6c90e4
sub rdx, qword [0x1800a08b0]
rol rdx, 6
add rdx, 0x26b0aa13
mov r8d, edx
shr r8d, 0xd
xor r8, rdx
rol r8, 3
movzx edx, r8w
movabs rbx, 0xecf8d75d3e92529d
xor rbx, qword [rcx + rdx]
or r9, rax
mov qword [rsp + 0x60], r9
mov edi, 0x347286d4
xor edi, dword [rcx + rdx + 8]
mov ecx, 0xc
call fcn.1800291c5
mov r12, rax
mov r15, rdx
mov qword [rdx], rbx
xor ebx, ebx
mov dword [rdx + 8], edi
mov rdi, qword [rsp + 0x198]
lea rdx, [rdi + 0xe0]
mov rcx, r13
call fcn.180036abd
mov rax, qword [r13 + 0x10]
mov qword [rbp + 0x38], rax
movups xmm0, xmmword [r13]
movups xmmword [rbp + 0x28], xmm0
movabs rax, 0x100000010
mov qword [rbp + 0x40], rax
mov dword [rbp + 0x48], ebx
mov qword [rbp], r12
mov qword [rbp + 8], r15
mov qword [rbp + 0x10], 0xc
mov qword [rbp + 0x18], rax
mov dword [rbp + 0x20], ebx
mov eax, 2
mov rcx, qword [rsp + 0x1c0]
mov qword [rcx], rax
mov rdx, qword [rsp + 0x38]
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov rdx, qword [rsp + 0x1b8]
mov qword [rcx + 0x20], rdx
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], rax
mov rdx, qword [rsp + 0x78]
mov qword [rcx + 0x38], rdx
mov qword [rcx + 0x40], rax
mov qword [rcx + 0x48], rax
mov qword [rcx + 0x50], rsi
mov qword [rcx + 0x58], rax
mov qword [rcx + 0x60], rax
mov qword [rcx + 0x68], r14
mov qword [rcx + 0x70], rax
mov qword [rcx + 0x78], rax
mov qword [rcx + 0x80], rbp
mov qword [rcx + 0x88], rax
mov al, 0x13
mov byte [r13 + 0x50], al
mov byte [r13 + 0x54], al
mov qword [r13 + 0x58], rbx
mov eax, 6
mov qword [r13], rax
mov qword [r13 + 8], rcx
mov qword [r13 + 0x10], rax
movabs rax, 0x8000000000000001
mov qword [r13 + 0x18], rax
mov word [r13 + 0x60], 2
lea rcx, [rsp + 0xd0]
mov rax, qword [rsp + 0xc8]
mov qword [rcx], rax
mov rax, qword [rsp + 0x150]
mov qword [rcx + 0x28], rax
movaps xmm0, xmmword [rsp + 0x130]
movaps xmm1, xmmword [rsp + 0x140]
movups xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x18], xmm1
mov byte [rcx + 0x30], 1
mov al, byte [rsp + 0x120]
mov byte [rcx + 0x31], al
mov al, byte [rsp + 0x68]
mov byte [rcx + 0x32], al
mov eax, dword [rsp + 0x80]
mov dword [rcx + 0x33], eax
mov al, byte [rsp + 0x84]
mov byte [rcx + 0x37], al
mov rdx, qword [rsp + 0x2e8]
mov rsi, qword [rsp + 0x58]
mov r8, rsi
call fcn.180048bec
lea rcx, [rsp + 0x1d0]
mov rdx, qword [rsp + 0x60]
mov r8, rsi
call fcn.1800493cf
mov rbp, qword [rsp + 0x2f0]
shr rbp, 0x30
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], 8
mov qword [rsp + 0x50], rbx
add rbp, 0xfffffffffffffffe
je 0x180035dc1
mov r12, qword [rdi + 0x38]
mov rax, qword [rdi + 0x40]
shl rax, 3
lea r14, [rax + rax*4]
lea rax, [r12 - 0x24]
mov qword [rsp + 0x38], rax
mov r15d, 8
xor esi, esi
test r14, r14
je 0x180035dc1
mov eax, dword [r12 + r14 - 0x28]
cmp rax, 1
je 0x1800358cd
cmp eax, 5
je 0x180035bdf
cmp eax, 6
jne 0x180035db1
mov al, byte [0x1800a1528]
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036312
mov rdi, rax
lea rax, [0x180076d58]
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x1d0]
mov rcx, qword [0x1800a08c8]
mov edx, 0x111
xor rcx, rdx
rol rcx, 5
movzx ecx, cx
mov rbx, qword [rax + rcx]
movabs rdx, 0x50748cfcced19dc8
xor rbx, rdx
mov r15b, byte [rax + rcx + 8]
xor r15b, 0x29
jmp 0x180035c50
mov rdi, r12
mov rax, qword [rsp + 0x38]
add rax, r14
mov qword [rsp + 0x170], rax
mov al, byte [0x1800a1528]
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036312
mov r13, rax
lea rax, [0x18007dc4d]
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x1d0]
xor ecx, ecx
sub rcx, qword [0x1800a08b8]
xor rcx, 0xffffffff8fcc2ffe
add rcx, 0x57b37932
mov rdx, rcx
shr rdx, 0x14
xor rdx, rcx
rol rdx, 1
mov r8d, 0xffff
and rdx, r8
movzx eax, word [rax + rdx]
xor eax, 0xc410
mov word [rsp + 0x308], ax
lea rax, [rsp + 0x308]
mov qword [rsp + 0xb0], rax
mov edx, 2
mov qword [rsp + 0xb8], rdx
lea rax, [0x18007a101]
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x1d0]
xor ecx, ecx
sub rcx, qword [0x1800a08c0]
xor rcx, 0xffffffffabd4bccd
imul rcx, rcx, 0xfffffffff17d1a6b
rol rcx, 3
and rcx, r8
movzx eax, word [rax + rcx]
xor eax, 0xc77f
mov word [rsp + 0x2d0], ax
lea rax, [rsp + 0x2d0]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdx
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x1d0], rax
lea rcx, [0x18001fab0]
mov qword [rsp + 0x1d8], rcx
lea rax, [rsp + 0x170]
mov qword [rsp + 0x1e0], rax
lea rax, [0x180032999]
mov qword [rsp + 0x1e8], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x1f8], rcx
lea rax, [0x1800848d0]
mov qword [rsp + 0xd0], rax
mov eax, 3
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xf0], rbx
lea r12, [rsp + 0x1d0]
mov qword [rsp + 0xe0], r12
mov qword [rsp + 0xe8], rax
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0xd0]
call fcn.18001b380
movabs rax, 0x10000000a
lea rcx, [rsp + 0x148]
mov qword [rcx], rax
mov dword [rcx + 8], 0
mov rcx, qword [rdi + r14 - 0x18]
mov rdx, qword [rdi + r14 - 0x10]
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], 1
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x200], 0x20
mov byte [rsp + 0x208], 3
mov qword [rsp + 0x1d0], rbx
mov qword [rsp + 0x1e0], rbx
lea rax, [rsp + 0x80]
mov qword [rsp + 0x1f0], rax
lea rax, [0x180083fa0]
mov qword [rsp + 0x1f8], rax
mov r8, r12
call fcn.18005b8a0
test al, al
jne 0x180036321
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xe0], rax
movabs rax, 0x100000010
lea rcx, [rsp + 0xe8]
mov qword [rcx], rax
mov dword [rcx + 8], 0
mov rax, qword [rsp + 0x150]
mov qword [r13 + 0x20], rax
movups xmm0, xmmword [rsp + 0x130]
movups xmm1, xmmword [rsp + 0x140]
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [r13 + 0x48], rax
movaps xmm0, xmmword [rsp + 0xd0]
mov rax, qword [rsp + 0xe0]
mov qword [r13 + 0x38], rax
mov rax, qword [rsp + 0xe8]
mov qword [r13 + 0x40], rax
movups xmmword [r13 + 0x28], xmm0
cmp rsi, qword [rsp + 0x40]
jne 0x180035bbb
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.180032ebb
mov r15, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov r12, rdi
lea rax, [rsi + rsi*2]
mov ecx, 2
mov qword [r15 + rax*8], rcx
mov qword [r15 + rax*8 + 8], r13
mov qword [r15 + rax*8 + 0x10], rcx
mov rsi, qword [rsp + 0x50]
jmp 0x180035da9
mov al, byte [0x1800a1528]
mov edx, 0x50
xor ecx, ecx
call fcn.180061f70
test rax, rax
je 0x180036312
mov rdi, rax
lea rax, [0x180083d4d]
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x1d0]
xor ecx, ecx
sub rcx, qword [0x1800a08d0]
rol rcx, 7
add rcx, 0xffffffffa317d03e
xor rcx, 0xed
rol rcx, 4
movzx ecx, cx
mov rbx, qword [rax + rcx]
movabs rdx, 0x81abc3ef2f37af62
xor rbx, rdx
mov r15b, byte [rax + rcx + 8]
xor r15b, 0x84
mov ecx, 9
call fcn.1800291c5
mov rsi, rax
mov r13, rdx
mov qword [rdx], rbx
mov byte [rdx + 8], r15b
mov rcx, qword [r12 + r14 - 0x18]
mov rdx, qword [r12 + r14 - 0x10]
xor ebx, ebx
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], 1
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x200], 0x20
mov byte [rsp + 0x208], 3
mov qword [rsp + 0x1d0], rbx
mov qword [rsp + 0x1e0], rbx
lea rax, [rsp + 0x130]
mov qword [rsp + 0x1f0], rax
lea rax, [0x180083fa0]
mov qword [rsp + 0x1f8], rax
lea r8, [rsp + 0x1d0]
call fcn.18005b8a0
test al, al
jne 0x180036321
movups xmm0, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0xe0], rax
lea rcx, [rsp + 0xe8]
mov dword [rcx + 8], ebx
movabs rax, 0x100000010
mov qword [rcx], rax
mov qword [rdi], rsi
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], 9
movabs rax, 0x10000000a
mov qword [rdi + 0x18], rax
mov dword [rdi + 0x20], ebx
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0x48], rax
movaps xmm0, xmmword [rsp + 0xd0]
mov rax, qword [rsp + 0xe0]
mov qword [rdi + 0x38], rax
mov rax, qword [rsp + 0xe8]
mov qword [rdi + 0x40], rax
movups xmmword [rdi + 0x28], xmm0
mov rsi, qword [rsp + 0x50]
cmp rsi, qword [rsp + 0x40]
jne 0x180035d8d
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.180032ebb
mov rsi, qword [rsp + 0x50]
mov r15, qword [rsp + 0x48]
lea rax, [rsi + rsi*2]
mov ecx, 2
mov qword [r15 + rax*8], rcx
mov qword [r15 + rax*8 + 8], rdi
mov qword [r15 + rax*8 + 0x10], rcx
inc rsi
mov qword [rsp + 0x50], rsi
dec rbp
add r14, 0xffffffffffffffd8
test rbp, rbp
jne 0x18003583d
lea rdi, [rsp + 0x1d0]
movabs rax, 0x8000000000000000
mov qword [rdi], rax
mov al, 0x13
mov byte [rdi + 0x18], al
mov byte [rdi + 0x1c], al
mov dword [rdi + 0x20], ebx
mov byte [rdi + 0x24], al
mov byte [rdi + 0x28], al
mov dword [rdi + 0x2c], ebx
mov word [rdi + 0x30], bx
mov byte [rdi + 0x32], 0xf
lea rax, [0x180075277]
lea r14, [rsp + 0xd0]
mov qword [r14], rax
mov rax, qword [r14]
mov rcx, 0xffffffff95e861b9
sub rcx, qword [0x1800a08d8]
rol rcx, 8
imul rcx, rcx, 0xffffffff8017c790
rol rcx, 1
and ecx, 0xffe1
movabs rsi, 0xd9551437911a8eb1
xor rsi, qword [rax + rcx]
mov ecx, 8
call fcn.1800291c5
mov qword [rdx], rsi
mov qword [r14], rax
mov qword [r14 + 8], rdx
mov qword [r14 + 0x10], 8
movabs r12, 0x100000010
mov qword [r14 + 0x18], r12
mov dword [r14 + 0x20], ebx
lea rsi, [rsp + 0x130]
mov rcx, rsi
mov rdx, r14
call fcn.180048ac0
mov rcx, rdi
call fcn.180032f64
mov rax, qword [rsi + 0x10]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsi]
movaps xmmword [rdi], xmm0
mov rbx, qword [rdi]
movups xmm0, xmmword [rdi + 0x18]
movaps xmmword [rsi + 0x10], xmm0
mov rax, qword [rdi + 8]
mov qword [rsi], rax
mov rax, qword [rdi + 0x10]
mov qword [rsi + 8], rax
mov r15d, 0
mov al, byte [rdi + 0x31]
mov byte [rsp + 0x38], al
mov bpl, byte [rdi + 0x32]
mov eax, dword [rdi + 0x33]
mov dword [rsp + 0x80], eax
mov al, byte [rdi + 0x37]
mov byte [rsp + 0x84], al
mov dword [rsi + 0x18], r15d
movabs rax, 0x100000009
mov qword [rsi + 0x10], rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rdi + 0x10], rdx
mov edx, dword [rsi + 0x18]
mov dword [rdi + 0x18], edx
mov edx, dword [rsi + 0x1c]
mov dword [rdi + 0x1c], edx
mov qword [rdi], rax
mov qword [rdi + 8], rcx
mov dword [rdi + 0x24], r15d
mov qword [rdi + 0x1c], r12
mov rax, qword [rdi + 0x20]
mov qword [r14 + 0x28], rax
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
mov qword [r14 + 0x18], rdx
mov edx, dword [rdi + 0x18]
mov dword [r14 + 0x20], edx
mov edx, dword [rdi + 0x1c]
mov dword [r14 + 0x24], edx
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rcx
mov rcx, rbx
mov edx, ebp
mov r13, qword [rsp + 0x2f0]
mov r8, r13
call fcn.180048b20
mov rcx, rax
shr rcx, 0x20
movabs rdx, 0xfffe00000000
add rdx, rax
movabs r8, 0xffff00000000
and rdx, r8
cmp cx, 3
cmovb rdx, r15
lea ecx, [rax + 1]
movabs r8, 0xffff0000ffff0000
and r8, rax
movzx r12d, cx
or r12, r8
or r12, rdx
movups xmm0, xmmword [rsp + 0x40]
movaps xmmword [rdi], xmm0
mov rax, qword [rsp + 0x50]
mov qword [rdi + 0x10], rax
mov word [rdi + 0x51], r15w
mov dword [rdi + 0x53], 0x100
mov byte [rdi + 0x57], r15b
movabs rax, 0x8000000000000001
mov qword [rdi + 0x18], rax
mov byte [rdi + 0x50], 0x10
mov qword [rdi + 0x58], r15
mov word [rdi + 0x60], 2
mov qword [r14], rbx
mov byte [r14 + 0x30], 1
mov al, byte [rsp + 0x38]
mov byte [r14 + 0x31], al
mov byte [r14 + 0x32], bpl
mov eax, dword [rsp + 0x80]
mov dword [r14 + 0x33], eax
mov al, byte [rsp + 0x84]
mov byte [r14 + 0x37], al
lea rcx, [rsp + 0xd0]
mov rdx, r13
mov rbx, qword [rsp + 0x58]
mov r8, rbx
call fcn.180048bec
lea rdi, [rsp + 0x1d0]
mov rcx, rdi
mov rdx, r12
mov r8, rbx
call fcn.1800493cf
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov word [rsi + 0x30], r15w
mov byte [rsi + 0x32], r15b
mov al, 0x13
mov byte [rsi + 0x18], al
mov byte [rsi + 0x1c], al
mov dword [rsi + 0x20], r15d
mov byte [rsi + 0x24], al
mov byte [rsi + 0x28], al
mov dword [rsi + 0x2c], r15d
lea rax, [0x18007a6a4]
mov qword [rdi], rax
mov rcx, qword [rdi]
mov eax, 0x446e6c44
sub rax, qword [0x1800a08e0]
rol rax, 5
not rax
rol rax, 6
movzx eax, ax
add rax, rcx
xorps xmm0, xmm0
movaps xmmword [rdi + 0x30], xmm0
movaps xmmword [rdi + 0x20], xmm0
movaps xmmword [rdi + 0x10], xmm0
movaps xmmword [rdi], xmm0
mov rcx, 0xfffffffffffffff8
lea rdx, [0x180084900]
mov r8, qword [rcx + rdx + 8]
xor r8, qword [rax + rcx + 8]
mov qword [rsp + rcx + 0x1d8], r8
add rcx, 8
cmp rcx, 0x38
jb 0x180036099
mov ecx, 0x11f3e20
xor ecx, dword [rax + 0x40]
lea rdx, [rsp + 0x1d0]
mov dword [rdx + 0x40], ecx
movzx ecx, byte [rax + 0x46]
movzx eax, word [rax + 0x44]
xor eax, 0xe4ed
mov word [rdx + 0x44], ax
xor cl, 0xb2
mov byte [rdx + 0x46], cl
lea rdi, [rsp + 0xd0]
mov r8d, 0x47
mov rcx, rdi
call fcn.180073920
mov ecx, 0x47
call fcn.1800291c5
mov r14, rax
mov r15, rdx
mov r8d, 0x47
mov rcx, rdx
mov rdx, rdi
call fcn.180073920
lea rdx, [rsp + 0x40]
mov qword [rdx], r14
mov qword [rdx + 8], r15
mov qword [rdx + 0x10], 0x47
lea rdi, [rsp + 0x1d0]
mov rcx, rdi
call fcn.180043d9a
lea r14, [rsp + 0x130]
mov rcx, r14
call fcn.180032f64
mov rax, qword [rdi + 0x10]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [rdi]
movaps xmmword [r14], xmm0
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0xa0], rax
movaps xmmword [rsp + 0x80], xmm0
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x90], rax
mov rax, qword [r14 + 0x18]
mov qword [rsp + 0x98], rax
mov eax, dword [rsi + 0x31]
mov ecx, dword [rsi + 0x34]
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0xb3], ecx
movabs rax, 0x100000010
mov qword [rsp + 0xa4], rax
mov dword [rsp + 0xac], 0
movaps xmm0, xmmword [rsp + 0x80]
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov qword [rdi + 0x20], rdx
mov edx, dword [rsp + 0xa8]
mov dword [rdi + 0x28], edx
mov edx, dword [rsp + 0xac]
mov dword [rdi + 0x2c], edx
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rcx
movaps xmmword [rdi], xmm0
mov byte [rdi + 0x30], 1
mov eax, dword [rsp + 0xb0]
mov ecx, dword [rsp + 0xb3]
mov dword [rdi + 0x34], ecx
mov dword [rdi + 0x31], eax
lea rcx, [rsp + 0x1d0]
mov rdx, qword [rsp + 0x338]
mov r8, rbx
call fcn.180048bec
mov rcx, qword [rsp + 0x330]
mov rdx, qword [rsp + 0x328]
call fcn.18004422d
mov rcx, qword [rsp + 0x348]
mov rdx, qword [rsp + 0x340]
call fcn.18004422d
movaps xmm6, xmmword [rsp + 0x3a0]
movaps xmm7, xmmword [rsp + 0x3b0]
add rsp, 0x3c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
jmp 0x1800362e4
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
jmp 0x1800362f4
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
mov ecx, 2
mov edx, 2
call fcn.180076220
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
mov ecx, 3
mov edx, 3
call fcn.180076220
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
mov ecx, 4
mov edx, 4
call fcn.180076220
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
jmp 0x1800362e4
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
jmp 0x1800362f4
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
xor ecx, ecx
xor edx, edx
call fcn.180076220
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
mov ecx, 1
mov edx, 1
call fcn.180076220
mov ecx, 8
mov edx, 0x28
call fcn.180074c70
mov ecx, 8
mov edx, 0x50
call fcn.180074c70
lea rax, [0x180085da8]
mov qword [rsp + 0x20], rax
lea rcx, str.a_Display_implementation_returned_an_error_unexpectedly
lea r9, [0x180084138]
lea r8, [rsp + 0xb0]
mov edx, 0x37
call fcn.1800766b0
mov ecx, 4
mov edx, 0x18
call fcn.180074c70
mov ecx, 4
mov edx, 0x3c
call fcn.180074c70
lea rax, [0x180086340]
lea rcx, [rsp + 0x1d0]
mov qword [rcx], rax
mov qword [rcx + 8], 1
lea rax, [0x180091580]
mov qword [rcx + 0x10], rax
xorpd xmm0, xmm0
movupd xmmword [rcx + 0x18], xmm0
lea rdx, [0x180086350]
call fcn.180076160
lea rcx, [0x180084118]
lea r8, str._Tv___q_A___q_U_Si_N_G_kVq2
mov edx, 0x1c
call fcn.180076770
mov ecx, 8
mov edx, 0x90
call fcn.180074c70
mov ecx, 8
jmp 0x180036352
mov ecx, 8
mov rdx, rdi
call fcn.180074c70
int3