Function at 0x14012fc50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x118]
sub rsp, 0x218
mov rax, qword [0x14143b040]
xor rax, rsp
mov qword [rbp + 0x100], rax
mov r15, rcx
mov qword [rsp + 0x50], rcx
mov rcx, rdx
mov qword [rbp - 0x78], rdx
sub rcx, r15
mov dword [rsp + 0x70], r9d
movabs rax, 0x2aaaaaaaaaaaaaab
mov r12, rdx
imul rcx
mov rbx, r8
mov r13, rdx
sar r13, 2
mov rax, r13
shr rax, 0x3f
add r13, rax
mov qword [rsp + 0x68], r13
cmp r13, 0x18
jl 0x140131c43
movzx eax, byte [rbp + 0x180]
lea rsi, [r12 - 0x18]
mov qword [rbp - 0x20], rsi
mov byte [rsp + 0x3c], al
nop
mov rax, r13
mov qword [rsp + 0x30], rbx
shr rax, 1
lea rcx, [rsp + 0x30]
lea rax, [rax + rax*2]
lea rdi, [r15 + rax*8]
cmp r13, 0x80
jbe 0x14013006a
mov r8, r15
mov rdx, rdi
call fcn.140131fd0
test al, al
je 0x14012fd3c
vmovups xmm0, xmmword [rdi]
vmovups xmm3, xmmword [r15]
vmovsd xmm2, qword [r15 + 0x10]
vmovups xmmword [r15], xmm0
vmovsd xmm1, qword [rdi + 0x10]
vmovsd qword [r15 + 0x10], xmm1
vmovups xmmword [rdi], xmm3
vmovsd qword [rdi + 0x10], xmm2
mov r8, rdi
mov qword [rsp + 0x30], rbx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012fd79
vmovups xmm0, xmmword [rsi]
vmovups xmm3, xmmword [rdi]
vmovsd xmm2, qword [rdi + 0x10]
vmovups xmmword [rdi], xmm0
vmovsd xmm1, qword [rsi + 0x10]
vmovsd qword [rdi + 0x10], xmm1
vmovups xmmword [rsi], xmm3
vmovsd qword [rsi + 0x10], xmm2
mov r8, r15
mov qword [rsp + 0x30], rbx
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012fdba
vmovups xmm0, xmmword [rdi]
vmovups xmm3, xmmword [r15]
vmovsd xmm2, qword [r15 + 0x10]
vmovups xmmword [r15], xmm0
vmovsd xmm1, qword [rdi + 0x10]
vmovsd qword [r15 + 0x10], xmm1
vmovups xmmword [rdi], xmm3
vmovsd qword [rdi + 0x10], xmm2
mov r14, qword [rsp + 0x50]
lea rdx, [rdi - 0x18]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rbx
lea r8, [r14 + 0x18]
call fcn.140131fd0
test al, al
je 0x14012fe06
vmovups xmm0, xmmword [rdi - 0x18]
vmovups xmm3, xmmword [r14 + 0x18]
vmovsd xmm2, qword [r14 + 0x28]
vmovups xmmword [r14 + 0x18], xmm0
vmovsd xmm1, qword [rdi - 8]
vmovsd qword [r14 + 0x28], xmm1
vmovups xmmword [rdi - 0x18], xmm3
vmovsd qword [rdi - 8], xmm2
lea r8, [rdi - 0x18]
mov qword [rsp + 0x30], rbx
lea rdx, [r12 - 0x30]
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012fe52
vmovups xmm0, xmmword [r12 - 0x30]
vmovups xmm3, xmmword [rdi - 0x18]
vmovsd xmm2, qword [rdi - 8]
vmovups xmmword [rdi - 0x18], xmm0
vmovsd xmm1, qword [r12 - 0x20]
vmovsd qword [rdi - 8], xmm1
vmovups xmmword [r12 - 0x30], xmm3
vmovsd qword [r12 - 0x20], xmm2
lea r8, [r14 + 0x18]
mov qword [rsp + 0x30], rbx
lea rdx, [rdi - 0x18]
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012fe99
vmovups xmm0, xmmword [rdi - 0x18]
vmovups xmm3, xmmword [r14 + 0x18]
vmovsd xmm2, qword [r14 + 0x28]
vmovups xmmword [r14 + 0x18], xmm0
vmovsd xmm1, qword [rdi - 8]
vmovsd qword [r14 + 0x28], xmm1
vmovups xmmword [rdi - 0x18], xmm3
vmovsd qword [rdi - 8], xmm2
lea r8, [r14 + 0x30]
mov qword [rsp + 0x30], rbx
lea rdx, [rdi + 0x18]
mov r15, r14
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012fee3
vmovups xmm0, xmmword [rdi + 0x18]
vmovups xmm3, xmmword [r14 + 0x30]
vmovsd xmm2, qword [r14 + 0x40]
vmovups xmmword [r14 + 0x30], xmm0
vmovsd xmm1, qword [rdi + 0x28]
vmovsd qword [r14 + 0x40], xmm1
vmovups xmmword [rdi + 0x18], xmm3
vmovsd qword [rdi + 0x28], xmm2
lea r8, [rdi + 0x18]
mov qword [rsp + 0x30], rbx
lea rdx, [r12 - 0x48]
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012ff2f
vmovups xmm0, xmmword [r12 - 0x48]
vmovups xmm3, xmmword [rdi + 0x18]
vmovsd xmm2, qword [rdi + 0x28]
vmovups xmmword [rdi + 0x18], xmm0
vmovsd xmm1, qword [r12 - 0x38]
vmovsd qword [rdi + 0x28], xmm1
vmovups xmmword [r12 - 0x48], xmm3
vmovsd qword [r12 - 0x38], xmm2
lea r8, [r15 + 0x30]
mov qword [rsp + 0x30], rbx
lea rdx, [rdi + 0x18]
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012ff76
vmovups xmm0, xmmword [rdi + 0x18]
vmovups xmm3, xmmword [r15 + 0x30]
vmovsd xmm2, qword [r15 + 0x40]
vmovups xmmword [r15 + 0x30], xmm0
vmovsd xmm1, qword [rdi + 0x28]
vmovsd qword [r15 + 0x40], xmm1
vmovups xmmword [rdi + 0x18], xmm3
vmovsd qword [rdi + 0x28], xmm2
lea r8, [rdi - 0x18]
mov qword [rsp + 0x30], rbx
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012ffb6
vmovups xmm0, xmmword [rdi]
vmovups xmm3, xmmword [rdi - 0x18]
vmovsd xmm2, qword [rdi - 8]
vmovups xmmword [rdi - 0x18], xmm0
vmovsd xmm1, qword [rdi + 0x10]
vmovsd qword [rdi - 8], xmm1
vmovups xmmword [rdi], xmm3
vmovsd qword [rdi + 0x10], xmm2
mov r8, rdi
mov qword [rsp + 0x30], rbx
lea rdx, [rdi + 0x18]
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x14012fff6
vmovups xmm0, xmmword [rdi + 0x18]
vmovups xmm3, xmmword [rdi]
vmovsd xmm2, qword [rdi + 0x10]
vmovups xmmword [rdi], xmm0
vmovsd xmm1, qword [rdi + 0x28]
vmovsd qword [rdi + 0x10], xmm1
vmovups xmmword [rdi + 0x18], xmm3
vmovsd qword [rdi + 0x28], xmm2
lea r8, [rdi - 0x18]
mov qword [rsp + 0x30], rbx
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x140130036
vmovups xmm0, xmmword [rdi]
vmovups xmm3, xmmword [rdi - 0x18]
vmovsd xmm2, qword [rdi - 8]
vmovups xmmword [rdi - 0x18], xmm0
vmovsd xmm1, qword [rdi + 0x10]
vmovsd qword [rdi - 8], xmm1
vmovups xmmword [rdi], xmm3
vmovsd qword [rdi + 0x10], xmm2
vmovups xmm0, xmmword [rdi]
vmovups xmm3, xmmword [r14]
vmovsd xmm2, qword [r14 + 0x10]
mov r12, qword [rbp - 0x78]
mov r15, r14
vmovups xmmword [r14], xmm0
vmovsd xmm1, qword [rdi + 0x10]
vmovsd qword [r14 + 0x10], xmm1
vmovups xmmword [rdi], xmm3
vmovsd qword [rdi + 0x10], xmm2
jmp 0x140130123
mov r8, rdi
mov rdx, r15
call fcn.140131fd0
test al, al
je 0x1401300a1
vmovups xmm0, xmmword [r15]
vmovups xmm3, xmmword [rdi]
vmovsd xmm2, qword [rdi + 0x10]
vmovups xmmword [rdi], xmm0
vmovsd xmm1, qword [r15 + 0x10]
vmovsd qword [rdi + 0x10], xmm1
vmovups xmmword [r15], xmm3
vmovsd qword [r15 + 0x10], xmm2
mov r8, r15
mov qword [rsp + 0x30], rbx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x1401300e2
vmovups xmm0, xmmword [rsi]
vmovups xmm3, xmmword [r15]
vmovsd xmm2, qword [r15 + 0x10]
vmovups xmmword [r15], xmm0
vmovsd xmm1, qword [rsi + 0x10]
vmovsd qword [r15 + 0x10], xmm1
vmovups xmmword [rsi], xmm3
vmovsd qword [rsi + 0x10], xmm2
mov r8, rdi
mov qword [rsp + 0x30], rbx
mov rdx, r15
lea rcx, [rsp + 0x30]
call fcn.140131fd0
test al, al
je 0x140130123
vmovups xmm0, xmmword [r15]
vmovups xmm3, xmmword [rdi]
vmovsd xmm2, qword [rdi + 0x10]
vmovups xmmword [rdi], xmm0
vmovsd xmm1, qword [r15 + 0x10]
vmovsd qword [rdi + 0x10], xmm1
vmovups xmmword [r15], xmm3
vmovsd qword [r15 + 0x10], xmm2
cmp byte [rsp + 0x3c], 0
jne 0x140130437
lea rdx, [r15 - 0x18]
mov r8, r15
lea rcx, [rbp + 0x170]
call fcn.140131fd0
test al, al
jne 0x140130437
vmovups xmm0, xmmword [r15]
mov rsi, qword [rbp - 0x78]
mov r12, r15
vmovups xmmword [rbp - 0x40], xmm0
vmovups xmmword [rbp - 0x70], xmm0
vmovsd xmm0, qword [r15 + 0x10]
vmovsd qword [rsp + 0x30], xmm0
vmovsd qword [rbp - 0x60], xmm0
mov qword [rsp + 0x68], rbx
mov r14, rsi
nop dword [rax + rax]
mov rdi, r14
lea rdx, [rbp - 0x70]
sub r14, 0x18
lea rcx, [rsp + 0x68]
mov r8, r14
call fcn.140131fd0
test al, al
jne 0x140130180
cmp rdi, rsi
jne 0x1401301d0
cmp r12, r14
jae 0x140130406
add r12, 0x18
lea rdx, [rbp - 0x70]
mov r8, r12
lea rcx, [rsp + 0x68]
call fcn.140131fd0
test al, al
je 0x1401301a1
jmp 0x1401301e9
add r12, 0x18
lea rdx, [rbp - 0x70]
mov r8, r12
lea rcx, [rsp + 0x68]
call fcn.140131fd0
test al, al
je 0x1401301d0
cmp r12, r14
jae 0x140130406
mov r13d, dword [rbp - 0x40]
lea rdi, [rbx + 0x150]
mov rbx, r14
vmovups xmm0, xmmword [rbx]
vmovups xmm3, xmmword [r12]
vmovsd xmm2, qword [r12 + 0x10]
vmovups xmmword [r12], xmm0
vmovsd xmm1, qword [rbx + 0x10]
vmovsd qword [r12 + 0x10], xmm1
vmovups xmmword [rbx], xmm3
vmovsd qword [rbx + 0x10], xmm2
nop dword [rax]
movzx edx, r13w
mov rcx, rdi
sub rbx, 0x18
call fcn.140184c20
movzx edx, word [rbx]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx eax, byte [rax + 0x1a]
test al, 1
je 0x140130277
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [r15 + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130293
test al, 2
je 0x14013028c
mov rdx, qword [r15 + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130293
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x1401302ba
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x1401302d3
test al, 2
je 0x1401302cc
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x1401302d3
lea rax, [0x1413ca658]
sub rsi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x1401302e9
inc rax
test cl, cl
jne 0x1401302d6
xor eax, eax
jmp 0x1401302ee
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1401302ff
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta al
jmp 0x140130302
setg al
test al, al
jne 0x140130230
mov qword [rsp + 0x40], rbx
nop
movzx edx, r13w
mov rcx, rdi
add r12, 0x18
call fcn.140184c20
movzx edx, word [r12]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx eax, byte [rax + 0x1a]
test al, 1
je 0x140130359
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [r15 + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130375
test al, 2
je 0x14013036e
mov rdx, qword [r15 + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130375
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x14013039c
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x1401303b5
test al, 2
je 0x1401303ae
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x1401303b5
lea rax, [0x1413ca658]
sub rsi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x1401303cb
inc rax
test cl, cl
jne 0x1401303b8
xor eax, eax
jmp 0x1401303d0
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1401303e1
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta al
jmp 0x1401303e4
setg al
test al, al
je 0x140130310
cmp r12, rbx
jb 0x140130200
mov rbx, qword [rbp + 0x170]
mov r14, qword [rsp + 0x40]
mov r15, qword [rsp + 0x50]
vmovups xmm0, xmmword [r14]
vmovups xmmword [r15], xmm0
vmovsd xmm1, qword [r14 + 0x10]
vmovups xmm0, xmmword [rbp - 0x40]
vmovsd qword [r15 + 0x10], xmm1
vmovups xmmword [r14], xmm0
vmovsd xmm0, qword [rsp + 0x30]
vmovsd qword [r14 + 0x10], xmm0
jmp 0x140131ad6
vmovups xmm0, xmmword [r15]
vmovups xmmword [rbp - 0x18], xmm0
vmovups xmmword [rbp - 0x70], xmm0
vmovsd xmm0, qword [r15 + 0x10]
vmovsd qword [rbp - 0x40], xmm0
vmovsd qword [rbp - 0x60], xmm0
mov qword [rsp + 0x60], rbx
mov r14, r15
mov qword [rsp + 0x78], r12
nop dword [rax]
nop word [rax + rax]
mov rdi, r14
lea r8, [rbp - 0x70]
add r14, 0x18
lea rcx, [rsp + 0x60]
mov rdx, r14
mov qword [rsp + 0x58], r14
mov rsi, r14
call fcn.140131fd0
test al, al
jne 0x140130470
cmp rdi, r15
jne 0x1401304d0
nop dword [rax]
cmp r14, r12
jae 0x1401304ee
sub r12, 0x18
lea r8, [rbp - 0x70]
mov rdx, r12
mov qword [rsp + 0x78], r12
lea rcx, [rsp + 0x60]
call fcn.140131fd0
test al, al
je 0x1401304a0
jmp 0x1401304ee
sub r12, 0x18
lea r8, [rbp - 0x70]
mov rdx, r12
lea rcx, [rsp + 0x60]
call fcn.140131fd0
test al, al
je 0x1401304d0
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x30], r12
mov r9, r12
cmp r14, r12
jae 0x14013131e
vmovups xmm3, xmmword [r14]
vmovsd xmm2, qword [r14 + 0x10]
vmovups xmm0, xmmword [r12]
vmovups xmmword [r14], xmm0
vmovsd xmm1, qword [r12 + 0x10]
vmovsd qword [r14 + 0x10], xmm1
add r14, 0x18
mov qword [rbp - 0x28], r12
xor r13d, r13d
mov qword [rbp - 8], r14
lea rax, [rbp + 0x3f]
mov qword [rbp - 0x30], r14
and rax, 0xffffffffffffffc0
mov qword [rbp - 0x48], 0
lea r10, [rbp + 0xbf]
mov qword [rsp + 0x40], rax
and r10, 0xffffffffffffffc0
mov qword [rbp - 0x80], 0
mov qword [rsp + 0x48], r10
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x50], r13
vmovups xmmword [r12], xmm3
vmovsd qword [r12 + 0x10], xmm2
cmp r14, r12
jae 0x140131319
mov r15d, dword [rbp - 0x18]
xor r8d, r8d
mov dword [rsp + 0x38], r15d
nop dword [rax]
mov rcx, r12
movabs rax, 0x2aaaaaaaaaaaaaab
sub rcx, r14
imul rcx
mov r12, rdx
sar r12, 2
mov rax, r12
shr rax, 0x3f
add r12, rax
test r8, r8
jne 0x1401305c9
mov rsi, r12
test r13, r13
jne 0x1401305d5
shr rsi, 1
sub r12, rsi
jmp 0x1401305d8
xor esi, esi
test r13, r13
jne 0x1401305d5
sub r12, rsi
jmp 0x1401305d8
xor r12d, r12d
cmp rsi, 0x40
jb 0x140130744
mov rbx, qword [rbp - 0x50]
xor esi, esi
mov r15, qword [rsp + 0x40]
nop dword [rax]
movzx eax, sil
lea r8, [rbp - 0x70]
mov rdx, r14
mov byte [rbx + r15], al
lea rcx, [rsp + 0x60]
inc rsi
call fcn.140131fd0
movzx edi, al
lea r8, [rbp - 0x70]
movzx eax, sil
lea rdx, [r14 + 0x18]
xor rdi, 1
lea rcx, [rsp + 0x60]
add rdi, rbx
inc rsi
mov byte [rdi + r15], al
call fcn.140131fd0
movzx eax, al
lea r8, [rbp - 0x70]
xor rax, 1
lea rdx, [r14 + 0x30]
add rdi, rax
lea rcx, [rsp + 0x60]
movzx eax, sil
inc rsi
mov byte [rdi + r15], al
call fcn.140131fd0
movzx eax, al
lea r8, [rbp - 0x70]
xor rax, 1
lea rdx, [r14 + 0x48]
add rdi, rax
lea rcx, [rsp + 0x60]
movzx eax, sil
inc rsi
mov byte [rdi + r15], al
call fcn.140131fd0
movzx eax, al
lea r8, [rbp - 0x70]
xor rax, 1
lea rdx, [r14 + 0x60]
add rdi, rax
lea rcx, [rsp + 0x60]
movzx eax, sil
inc rsi
mov byte [rdi + r15], al
call fcn.140131fd0
movzx eax, al
lea r8, [rbp - 0x70]
xor rax, 1
lea rdx, [r14 + 0x78]
add rdi, rax
lea rcx, [rsp + 0x60]
movzx eax, sil
inc rsi
mov byte [rdi + r15], al
call fcn.140131fd0
movzx eax, al
lea r8, [rbp - 0x70]
xor rax, 1
lea rdx, [r14 + 0x90]
add rdi, rax
lea rcx, [rsp + 0x60]
movzx eax, sil
inc rsi
mov byte [rdi + r15], al
call fcn.140131fd0
movzx eax, al
lea r8, [rbp - 0x70]
xor rax, 1
lea rdx, [r14 + 0xa8]
add rdi, rax
lea rcx, [rsp + 0x60]
movzx eax, sil
inc rsi
mov byte [rdi + r15], al
call fcn.140131fd0
movzx ebx, al
xor rbx, 1
add rbx, rdi
add r14, 0xc0
cmp rsi, 0x40
jb 0x1401305f0
mov qword [rbp - 0x50], rbx
jmp 0x140130793
xor edi, edi
test rsi, rsi
je 0x1401307a8
mov r15, qword [rbp - 0x50]
mov rbx, qword [rsp + 0x40]
nop dword [rax]
nop dword [rax + rax]
movzx eax, dil
lea r8, [rbp - 0x70]
mov rdx, r14
mov byte [rbx + r15], al
lea rcx, [rsp + 0x60]
inc rdi
call fcn.140131fd0
movzx eax, al
add r14, 0x18
xor rax, 1
add r15, rax
cmp rdi, rsi
jb 0x140130760
mov qword [rbp - 0x50], r15
mov r15d, dword [rsp + 0x38]
mov r10, qword [rsp + 0x48]
mov rbx, qword [rbp + 0x170]
mov qword [rbp - 8], r14
cmp r12, 0x40
jb 0x140130f3a
mov r12, qword [rsp + 0x78]
lea rdi, [rbx + 0x150]
mov qword [rbp - 0x58], 0
mov rbx, qword [rbp - 0x58]
nop word [rax + rax]
inc rbx
mov rcx, rdi
mov byte [r10 + r13], bl
movzx edx, word [r12 - 0x18]
call fcn.140184c20
movzx edx, r15w
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x14013081e
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x14013083b
test cl, 2
je 0x140130834
mov rdx, qword [rax + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x14013083b
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130862
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x14013087b
test al, 2
je 0x140130874
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x14013087b
lea rax, [0x1413ca658]
sub rsi, rax
nop
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x140130893
inc rax
test cl, cl
jne 0x140130880
xor eax, eax
jmp 0x140130898
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x1401308ab
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x1401308ae
setg cl
mov rax, qword [rsp + 0x48]
add r13, rcx
inc rbx
mov rcx, rdi
mov byte [rax + r13], bl
movzx edx, word [r12 - 0x30]
call fcn.140184c20
movzx edx, word [rsp + 0x38]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x140130905
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130922
test cl, 2
je 0x14013091b
mov rdx, qword [rax + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130922
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130949
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140130962
test al, 2
je 0x14013095b
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x140130962
lea rax, [0x1413ca658]
sub rsi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x140130978
inc rax
test cl, cl
jne 0x140130965
xor eax, eax
jmp 0x14013097d
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x140130990
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x140130993
setg cl
mov rax, qword [rsp + 0x48]
add r13, rcx
inc rbx
mov rcx, rdi
mov byte [rax + r13], bl
movzx edx, word [r12 - 0x48]
call fcn.140184c20
movzx edx, word [rsp + 0x38]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x1401309ea
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130a07
test cl, 2
je 0x140130a00
mov rdx, qword [rax + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130a07
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130a2e
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140130a47
test al, 2
je 0x140130a40
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x140130a47
lea rax, [0x1413ca658]
sub rsi, rax
nop word [rax + rax]
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x140130a63
inc rax
test cl, cl
jne 0x140130a50
xor eax, eax
jmp 0x140130a68
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x140130a7b
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x140130a7e
setg cl
mov rax, qword [rsp + 0x48]
add r13, rcx
inc rbx
mov rcx, rdi
mov byte [rax + r13], bl
movzx edx, word [r12 - 0x60]
call fcn.140184c20
movzx edx, word [rsp + 0x38]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x140130ad5
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130af2
test cl, 2
je 0x140130aeb
mov rdx, qword [rax + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130af2
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130b19
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140130b32
test al, 2
je 0x140130b2b
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x140130b32
lea rax, [0x1413ca658]
sub rsi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x140130b48
inc rax
test cl, cl
jne 0x140130b35
xor eax, eax
jmp 0x140130b4d
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x140130b60
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x140130b63
setg cl
mov rax, qword [rsp + 0x48]
add r13, rcx
inc rbx
mov rcx, rdi
mov byte [rax + r13], bl
movzx edx, word [r12 - 0x78]
call fcn.140184c20
movzx edx, word [rsp + 0x38]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x140130bba
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130bd7
test cl, 2
je 0x140130bd0
mov rdx, qword [rax + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130bd7
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130bfe
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140130c17
test al, 2
je 0x140130c10
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x140130c17
lea rax, [0x1413ca658]
sub rsi, rax
nop word [rax + rax]
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x140130c33
inc rax
test cl, cl
jne 0x140130c20
xor eax, eax
jmp 0x140130c38
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x140130c4b
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x140130c4e
setg cl
mov rax, qword [rsp + 0x48]
add r13, rcx
inc rbx
mov rcx, rdi
mov byte [rax + r13], bl
movzx edx, word [r12 - 0x90]
call fcn.140184c20
movzx edx, word [rsp + 0x38]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x140130ca8
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130cc5
test cl, 2
je 0x140130cbe
mov rdx, qword [rax + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130cc5
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130cec
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140130d05
test al, 2
je 0x140130cfe
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x140130d05
lea rax, [0x1413ca658]
sub rsi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x140130d1b
inc rax
test cl, cl
jne 0x140130d08
xor eax, eax
jmp 0x140130d20
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x140130d33
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x140130d36
setg cl
mov rax, qword [rsp + 0x48]
add r13, rcx
inc rbx
mov rcx, rdi
mov byte [rax + r13], bl
movzx edx, word [r12 - 0xa8]
call fcn.140184c20
movzx edx, word [rsp + 0x38]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x140130d90
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130dad
test cl, 2
je 0x140130da6
mov rdx, qword [rax + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130dad
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130dd4
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140130ded
test al, 2
je 0x140130de6
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x140130ded
lea rax, [0x1413ca658]
sub rsi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x140130e03
inc rax
test cl, cl
jne 0x140130df0
xor eax, eax
jmp 0x140130e08
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x140130e1b
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x140130e1e
setg cl
mov rax, qword [rsp + 0x48]
add r13, rcx
sub r12, 0xc0
inc rbx
mov rcx, rdi
mov byte [rax + r13], bl
movzx edx, word [r12]
call fcn.140184c20
movzx edx, word [rsp + 0x38]
mov rcx, rdi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x140130e7b
mov ecx, dword [rdi + 0xc98]
movzx edx, word [rdi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rsi, qword [rdx + rcx*8]
jmp 0x140130e98
test cl, 2
je 0x140130e91
mov rdx, qword [rax + 0x12]
mov rcx, rdi
call fcn.140184990
mov rsi, rax
jmp 0x140130e98
lea rsi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130ebf
mov eax, dword [rdi + 0xc98]
movzx ecx, word [rdi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140130ed8
test al, 2
je 0x140130ed1
mov rdx, qword [r14 + 0x12]
mov rcx, rdi
call fcn.140184990
jmp 0x140130ed8
lea rax, [0x1413ca658]
sub rsi, rax
nop dword [rax + rax]
movzx ecx, byte [rax]
cmp cl, byte [rax + rsi]
jne 0x140130ef3
inc rax
test cl, cl
jne 0x140130ee0
xor eax, eax
jmp 0x140130ef8
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x140130f0b
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x140130f0e
setg cl
mov r10, qword [rsp + 0x48]
add r13, rcx
mov r15d, dword [rsp + 0x38]
cmp rbx, 0x40
jb 0x1401307d0
mov rbx, qword [rbp + 0x170]
mov r14, qword [rbp - 8]
mov qword [rsp + 0x78], r12
jmp 0x14013107c
xor r13d, r13d
test r12, r12
je 0x140131073
lea rsi, [rbx + 0x150]
mov rbx, qword [rbp - 0x58]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsp + 0x78]
inc r13
sub rax, 0x18
mov byte [r10 + rbx], r13b
mov rcx, rsi
mov qword [rsp + 0x78], rax
movzx edx, word [rax]
call fcn.140184c20
movzx edx, r15w
mov rcx, rsi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx ecx, byte [rax + 0x1a]
test cl, 1
je 0x140130fb9
mov ecx, dword [rsi + 0xc98]
movzx edx, word [rsi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [rax + 0x12]
mov rdi, qword [rdx + rcx*8]
jmp 0x140130fd6
test cl, 2
je 0x140130fcf
mov rdx, qword [rax + 0x12]
mov rcx, rsi
call fcn.140184990
mov rdi, rax
jmp 0x140130fd6
lea rdi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140130ffd
mov eax, dword [rsi + 0xc98]
movzx ecx, word [rsi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140131016
test al, 2
je 0x14013100f
mov rdx, qword [r14 + 0x12]
mov rcx, rsi
call fcn.140184990
jmp 0x140131016
lea rax, [0x1413ca658]
sub rdi, rax
nop dword [rax]
movzx ecx, byte [rax]
cmp cl, byte [rax + rdi]
jne 0x140131033
inc rax
test cl, cl
jne 0x140131020
xor eax, eax
jmp 0x140131038
sbb eax, eax
or eax, 1
xor ecx, ecx
test eax, eax
jne 0x14013104b
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta cl
jmp 0x14013104e
setg cl
mov r10, qword [rsp + 0x48]
add rbx, rcx
mov r15d, dword [rsp + 0x38]
cmp r13, r12
jb 0x140130f60
mov r14, qword [rbp - 8]
mov qword [rbp - 0x58], rbx
mov rbx, qword [rbp + 0x170]
mov r12, qword [rsp + 0x78]
mov r13, qword [rbp - 0x58]
mov rsi, qword [rbp - 0x50]
mov rdi, qword [rbp - 0x48]
cmp r13, rsi
mov rcx, qword [rsp + 0x40]
mov r11, rsi
mov r9, qword [rbp - 0x80]
cmovb r11, r13
add rdi, r10
add r9, rcx
cmp rsi, r13
jne 0x14013111f
test r11, r11
je 0x1401311f7
mov rbx, qword [rbp - 0x30]
sub rdi, r9
mov r12, qword [rbp - 0x28]
mov r8, r11
nop dword [rax]
movzx eax, byte [r9 + rdi]
lea r9, [r9 + 1]
mov rdx, r12
lea rcx, [rax + rax*2]
movzx eax, byte [r9 - 1]
shl rcx, 3
sub rdx, rcx
lea rcx, [rax + rax*2]
vmovups xmm3, xmmword [rbx + rcx*8]
vmovups xmm0, xmmword [rdx]
vmovsd xmm2, qword [rbx + rcx*8 + 0x10]
vmovups xmmword [rbx + rcx*8], xmm0
vmovsd xmm1, qword [rdx + 0x10]
vmovsd qword [rbx + rcx*8 + 0x10], xmm1
vmovups xmmword [rdx], xmm3
vmovsd qword [rdx + 0x10], xmm2
sub r8, 1
jne 0x1401310c0
mov rbx, qword [rbp + 0x170]
mov r12, qword [rsp + 0x78]
jmp 0x1401311f2
test r11, r11
je 0x1401311f7
movzx eax, byte [r9]
mov r8, qword [rbp - 0x28]
lea rcx, [rax + rax*2]
mov rax, qword [rbp - 0x30]
vmovups xmm2, xmmword [rax + rcx*8]
vmovsd xmm3, qword [rax + rcx*8 + 0x10]
lea rdx, [rax + rcx*8]
movzx eax, byte [rdi]
lea rcx, [rax + rax*2]
shl rcx, 3
sub r8, rcx
vmovups xmm0, xmmword [r8]
vmovups xmmword [rdx], xmm0
vmovsd xmm1, qword [r8 + 0x10]
vmovsd qword [rdx + 0x10], xmm1
cmp r11, 1
jbe 0x1401311e7
mov rbx, qword [rbp - 0x30]
lea r10, [rdi + 1]
mov r15, qword [rbp - 0x28]
sub r9, rdi
lea rdi, [r11 - 1]
movzx eax, byte [r10 + r9]
lea r10, [r10 + 1]
lea rcx, [rax + rax*2]
vmovups xmm0, xmmword [rbx + rcx*8]
vmovups xmmword [r8], xmm0
vmovsd xmm1, qword [rbx + rcx*8 + 0x10]
vmovsd qword [r8 + 0x10], xmm1
movzx eax, byte [r10 - 1]
lea rdx, [rbx + rcx*8]
mov r8, r15
lea rcx, [rax + rax*2]
shl rcx, 3
sub r8, rcx
vmovups xmm0, xmmword [r8]
vmovups xmmword [rdx], xmm0
vmovsd xmm1, qword [r8 + 0x10]
vmovsd qword [rdx + 0x10], xmm1
sub rdi, 1
jne 0x140131182
mov rbx, qword [rbp + 0x170]
mov r10, qword [rsp + 0x48]
mov r15d, dword [rsp + 0x38]
vmovups xmmword [r8], xmm2
vmovsd qword [r8 + 0x10], xmm3
mov rcx, qword [rsp + 0x40]
mov rax, qword [rbp - 0x80]
sub rsi, r11
mov rdi, qword [rbp - 0x48]
add rax, r11
mov r9, qword [rbp - 0x30]
add rdi, r11
sub r13, r11
mov qword [rbp - 0x50], rsi
test rsi, rsi
mov qword [rbp - 0x58], r13
mov r8, rsi
mov qword [rbp - 0x48], rdi
cmove r9, r14
xor edx, edx
test rsi, rsi
mov qword [rbp - 0x30], r9
cmovne rdx, rax
mov qword [rbp - 0x80], rdx
test r13, r13
jne 0x14013124a
xor edi, edi
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x48], rdi
mov r11, r12
jmp 0x14013124e
mov r11, qword [rbp - 0x28]
cmp r14, r12
jb 0x140130590
test rsi, rsi
je 0x1401312ba
add rcx, rdx
mov r14, r12
mov qword [rsp + 0x40], rcx
nop word [rax + rax]
movzx eax, byte [rsi + rcx - 1]
sub r14, 0x18
dec rsi
lea rcx, [rax + rax*2]
vmovups xmm3, xmmword [r9 + rcx*8]
vmovsd xmm2, qword [r9 + rcx*8 + 0x10]
vmovups xmm0, xmmword [r14]
vmovups xmmword [r9 + rcx*8], xmm0
vmovsd xmm1, qword [r14 + 0x10]
vmovsd qword [r9 + rcx*8 + 0x10], xmm1
mov rcx, qword [rsp + 0x40]
vmovups xmmword [r14], xmm3
vmovsd qword [r14 + 0x10], xmm2
test rsi, rsi
jne 0x140131270
test r13, r13
je 0x14013130a
add r10, rdi
movzx eax, byte [r10 + r13 - 1]
dec r13
vmovups xmm0, xmmword [r14]
lea rcx, [rax + rax*2]
mov rax, r11
shl rcx, 3
sub rax, rcx
vmovups xmm3, xmmword [rax]
vmovsd xmm2, qword [rax + 0x10]
vmovups xmmword [rax], xmm0
vmovsd xmm1, qword [r14 + 0x10]
vmovsd qword [rax + 0x10], xmm1
vmovups xmmword [r14], xmm3
vmovsd qword [r14 + 0x10], xmm2
add r14, 0x18
test r13, r13
jne 0x1401312c2
mov r15, qword [rsp + 0x50]
mov r9, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x58]
mov r13, qword [rsp + 0x68]
vmovups xmm0, xmmword [r14 - 0x18]
mov r10, qword [rbp - 0x78]
add r14, 0xffffffffffffffe8
vmovups xmmword [r15], xmm0
vmovups xmm0, xmmword [rbp - 0x18]
movabs r11, 0x2aaaaaaaaaaaaaab
shr r13, 3
vmovsd xmm1, qword [r14 + 0x10]
mov rcx, r14
mov qword [rsp + 0x40], r14
sub rcx, r15
mov rax, r11
imul rcx
vmovsd qword [r15 + 0x10], xmm1
mov r8, rdx
mov rcx, r10
sar r8, 2
sub rcx, r14
mov rax, r8
sub rcx, 0x18
shr rax, 0x3f
add r8, rax
mov rax, r11
imul rcx
vmovups xmmword [r14], xmm0
vmovsd xmm0, qword [rbp - 0x40]
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
vmovsd qword [r14 + 0x10], xmm0
cmp r8, r13
jl 0x1401317c6
cmp rdx, r13
jl 0x1401317c6
cmp rsi, r9
jb 0x140131ab5
mov qword [rbp - 0x40], rbx
cmp r15, r14
je 0x1401315bf
lea rdi, [r15 + 0x18]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x58], rdi
cmp rdi, r14
je 0x1401315bf
mov qword [rbp - 0x80], r15
nop word [rax + rax]
mov r8, r15
lea rcx, [rbp - 0x40]
mov rdx, rdi
mov r14, rdi
mov r12, r15
call fcn.140131fd0
test al, al
je 0x14013159c
vmovups xmm0, xmmword [rdi]
vmovsd xmm1, qword [rdi + 0x10]
vmovd eax, xmm0
mov dword [rsp + 0x38], eax
vmovups xmmword [rbp - 0x18], xmm0
vmovsd qword [rsp + 0x68], xmm1
nop dword [rax]
vmovups xmm0, xmmword [r12]
mov r15, qword [rsp + 0x50]
vmovups xmmword [r14], xmm0
vmovsd xmm1, qword [r12 + 0x10]
vmovsd qword [r14 + 0x10], xmm1
sub r14, 0x18
cmp r14, r15
je 0x140131545
lea rsi, [rbx + 0x150]
movzx edx, ax
mov rcx, rsi
sub r12, 0x18
call fcn.140184c20
movzx edx, word [r12]
mov rcx, rsi
mov r15, rax
call fcn.140184c20
mov r13, rax
movzx eax, byte [rax + 0x1a]
test al, 1
je 0x1401314a9
movzx edx, word [rsi + 0xc9c]
mov ecx, dword [rsi + 0xc98]
mov rax, qword [r13 + 0x12]
shl rdx, 0x20
or rdx, rcx
mov rdi, qword [rdx + rax*8]
jmp 0x1401314c5
test al, 2
je 0x1401314be
mov rdx, qword [r13 + 0x12]
mov rcx, rsi
call fcn.140184990
mov rdi, rax
jmp 0x1401314c5
lea rdi, [0x1413ca658]
movzx eax, byte [r15 + 0x1a]
test al, 1
je 0x1401314ec
mov eax, dword [rsi + 0xc98]
movzx ecx, word [rsi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r15 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140131505
test al, 2
je 0x1401314fe
mov rdx, qword [r15 + 0x12]
mov rcx, rsi
call fcn.140184990
jmp 0x140131505
lea rax, [0x1413ca658]
sub rdi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rdi]
jne 0x14013151b
inc rax
test cl, cl
jne 0x140131508
xor eax, eax
jmp 0x140131520
sbb eax, eax
or eax, 1
test eax, eax
jne 0x140131531
mov eax, dword [r13 + 0x1b]
cmp dword [r15 + 0x1b], eax
seta al
jmp 0x140131534
setg al
test al, al
mov eax, dword [rsp + 0x38]
jne 0x140131430
mov r15, qword [rsp + 0x50]
vmovups xmm0, xmmword [rbp - 0x18]
mov rsi, qword [rsp + 0x30]
movabs rax, 0x2aaaaaaaaaaaaaab
mov rdi, qword [rsp + 0x58]
vmovups xmmword [r14], xmm0
vmovsd xmm0, qword [rsp + 0x68]
mov rcx, rdi
sub rcx, r14
imul rcx
vmovsd qword [r14 + 0x10], xmm0
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
add rsi, rdx
mov qword [rsp + 0x30], rsi
cmp rsi, 8
ja 0x140131ab0
mov r15, qword [rbp - 0x80]
mov r14, qword [rsp + 0x40]
add rdi, 0x18
add r15, 0x18
mov qword [rsp + 0x58], rdi
mov qword [rbp - 0x80], r15
cmp rdi, r14
jne 0x1401313f0
mov r10, qword [rbp - 0x78]
lea rsi, [r14 + 0x18]
mov qword [rbp - 0x40], rbx
mov qword [rsp + 0x68], rsi
cmp rsi, r10
je 0x140131fad
lea rdi, [rsi + 0x18]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x58], rdi
cmp rdi, r10
je 0x140131fad
mov r13, rsi
mov qword [rbp - 0x80], rsi
nop word [rax + rax]
mov r8, r13
lea rcx, [rbp - 0x40]
mov rdx, rdi
mov r14, rdi
mov r12, r13
call fcn.140131fd0
test al, al
je 0x1401317a6
vmovups xmm0, xmmword [rdi]
vmovsd xmm1, qword [rdi + 0x10]
vmovd eax, xmm0
mov dword [rsp + 0x38], eax
vmovups xmmword [rbp - 0x18], xmm0
vmovsd qword [rbp - 0x48], xmm1
nop dword [rax + rax]
vmovups xmm0, xmmword [r12]
vmovups xmmword [r14], xmm0
vmovsd xmm1, qword [r12 + 0x10]
vmovsd qword [r14 + 0x10], xmm1
sub r14, 0x18
cmp r14, rsi
je 0x140131750
lea rsi, [rbx + 0x150]
movzx edx, ax
mov rcx, rsi
sub r12, 0x18
call fcn.140184c20
movzx edx, word [r12]
mov rcx, rsi
mov r15, rax
call fcn.140184c20
mov r13, rax
movzx eax, byte [rax + 0x1a]
test al, 1
je 0x1401316b4
movzx edx, word [rsi + 0xc9c]
mov ecx, dword [rsi + 0xc98]
mov rax, qword [r13 + 0x12]
shl rdx, 0x20
or rdx, rcx
mov rdi, qword [rdx + rax*8]
jmp 0x1401316d0
test al, 2
je 0x1401316c9
mov rdx, qword [r13 + 0x12]
mov rcx, rsi
call fcn.140184990
mov rdi, rax
jmp 0x1401316d0
lea rdi, [0x1413ca658]
movzx eax, byte [r15 + 0x1a]
test al, 1
je 0x1401316f7
mov eax, dword [rsi + 0xc98]
movzx ecx, word [rsi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r15 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140131710
test al, 2
je 0x140131709
mov rdx, qword [r15 + 0x12]
mov rcx, rsi
call fcn.140184990
jmp 0x140131710
lea rax, [0x1413ca658]
sub rdi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rdi]
jne 0x140131726
inc rax
test cl, cl
jne 0x140131713
xor eax, eax
jmp 0x14013172b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14013173c
mov eax, dword [r13 + 0x1b]
cmp dword [r15 + 0x1b], eax
seta al
jmp 0x14013173f
setg al
mov rsi, qword [rsp + 0x68]
test al, al
mov eax, dword [rsp + 0x38]
jne 0x140131640
vmovups xmm0, xmmword [rbp - 0x18]
mov r15, qword [rsp + 0x30]
movabs rax, 0x2aaaaaaaaaaaaaab
mov rdi, qword [rsp + 0x58]
vmovups xmmword [r14], xmm0
vmovsd xmm0, qword [rbp - 0x48]
mov rcx, rdi
sub rcx, r14
imul rcx
vmovsd qword [r14 + 0x10], xmm0
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
add r15, rdx
mov qword [rsp + 0x30], r15
cmp r15, 8
ja 0x140131aab
mov r13, qword [rbp - 0x80]
add rdi, 0x18
add r13, 0x18
mov qword [rsp + 0x58], rdi
mov qword [rbp - 0x80], r13
cmp rdi, qword [rbp - 0x78]
jne 0x140131600
jmp 0x140131fad
sub dword [rsp + 0x70], 1
je 0x140131b24
cmp r8, 0x18
jl 0x14013193a
mov rcx, r8
test r8, r8
jns 0x1401317e7
lea rcx, [r8 + 3]
vmovups xmm3, xmmword [r15]
vmovsd xmm2, qword [r15 + 0x10]
sar rcx, 2
mov r9, r14
lea rax, [rcx + rcx*2]
vmovups xmm0, xmmword [r15 + rax*8]
vmovups xmmword [r15], xmm0
vmovsd xmm1, qword [r15 + rax*8 + 0x10]
vmovsd qword [r15 + 0x10], xmm1
vmovups xmmword [r15 + rax*8], xmm3
vmovsd qword [r15 + rax*8 + 0x10], xmm2
vmovups xmm3, xmmword [r14 - 0x18]
vmovsd xmm2, qword [r14 - 8]
lea rax, [rax*8]
sub r9, rax
vmovups xmm0, xmmword [r9]
vmovups xmmword [r14 - 0x18], xmm0
vmovsd xmm1, qword [r9 + 0x10]
vmovsd qword [r14 - 8], xmm1
vmovups xmmword [r9], xmm3
vmovsd qword [r9 + 0x10], xmm2
cmp r8, 0x80
jle 0x14013193a
vmovups xmm0, xmmword [r15 + rax + 0x18]
vmovups xmm3, xmmword [r15 + 0x18]
vmovsd xmm2, qword [r15 + 0x28]
vmovups xmmword [r15 + 0x18], xmm0
vmovsd xmm1, qword [r15 + rax + 0x28]
vmovsd qword [r15 + 0x28], xmm1
vmovups xmmword [r15 + rax + 0x18], xmm3
vmovsd qword [r15 + rax + 0x28], xmm2
vmovups xmm3, xmmword [r15 + 0x30]
vmovsd xmm2, qword [r15 + 0x40]
lea rax, [rcx + rcx*2]
lea rcx, [rax*8 + 0x30]
mov rax, r14
vmovups xmm0, xmmword [r15 + rcx]
vmovups xmmword [r15 + 0x30], xmm0
vmovsd xmm1, qword [r15 + rcx + 0x10]
vmovsd qword [r15 + 0x40], xmm1
vmovups xmmword [r15 + rcx], xmm3
vmovsd qword [r15 + rcx + 0x10], xmm2
vmovups xmm0, xmmword [r9 - 0x18]
vmovups xmm3, xmmword [r14 - 0x30]
vmovsd xmm2, qword [r14 - 0x20]
vmovups xmmword [r14 - 0x30], xmm0
vmovsd xmm1, qword [r9 - 8]
vmovsd qword [r14 - 0x20], xmm1
vmovups xmmword [r9 - 0x18], xmm3
vmovsd qword [r9 - 8], xmm2
vmovups xmm3, xmmword [r14 - 0x48]
vmovsd xmm2, qword [r14 - 0x38]
sub rax, rcx
vmovups xmm0, xmmword [rax]
vmovups xmmword [r14 - 0x48], xmm0
vmovsd xmm1, qword [rax + 0x10]
vmovsd qword [r14 - 0x38], xmm1
vmovups xmmword [rax], xmm3
vmovsd qword [rax + 0x10], xmm2
cmp rdx, 0x18
jl 0x140131ab5
mov r8, rdx
test rdx, rdx
jns 0x140131950
lea r8, [rdx + 3]
vmovups xmm3, xmmword [r14 + 0x18]
vmovsd xmm2, qword [r14 + 0x28]
mov rsi, qword [rbp - 0x20]
mov r9, r10
sar r8, 2
lea rax, [r8 + r8*2]
vmovups xmm0, xmmword [r14 + rax*8 + 0x18]
vmovups xmmword [r14 + 0x18], xmm0
vmovsd xmm1, qword [r14 + rax*8 + 0x28]
vmovsd qword [r14 + 0x28], xmm1
vmovups xmmword [r14 + rax*8 + 0x18], xmm3
vmovsd qword [r14 + rax*8 + 0x28], xmm2
vmovups xmm3, xmmword [rsi]
vmovsd xmm2, qword [rsi + 0x10]
lea rax, [rax*8]
sub r9, rax
vmovups xmm0, xmmword [r9]
vmovups xmmword [rsi], xmm0
vmovsd xmm1, qword [r9 + 0x10]
vmovsd qword [rsi + 0x10], xmm1
vmovups xmmword [r9], xmm3
vmovsd qword [r9 + 0x10], xmm2
cmp rdx, 0x80
jle 0x140131ab5
vmovups xmm3, xmmword [r14 + 0x30]
vmovsd xmm2, qword [r14 + 0x40]
lea rax, [r8 + r8*2]
lea rcx, [rax*8 + 0x30]
vmovups xmm0, xmmword [r14 + rcx]
vmovups xmmword [r14 + 0x30], xmm0
vmovsd xmm1, qword [r14 + rcx + 0x10]
vmovsd qword [r14 + 0x40], xmm1
vmovups xmmword [r14 + rcx], xmm3
vmovsd qword [r14 + rcx + 0x10], xmm2
vmovups xmm3, xmmword [r14 + 0x48]
vmovsd xmm2, qword [r14 + 0x58]
lea rax, [r8 + r8*2]
vmovups xmm0, xmmword [r14 + rax*8 + 0x48]
vmovups xmmword [r14 + 0x48], xmm0
vmovsd xmm1, qword [r14 + rax*8 + 0x58]
vmovsd qword [r14 + 0x58], xmm1
vmovups xmmword [r14 + rax*8 + 0x48], xmm3
vmovsd qword [r14 + rax*8 + 0x58], xmm2
vmovups xmm0, xmmword [r9 - 0x18]
vmovups xmm3, xmmword [r10 - 0x30]
vmovsd xmm2, qword [r10 - 0x20]
vmovups xmmword [r10 - 0x30], xmm0
vmovsd xmm1, qword [r9 - 8]
vmovsd qword [r10 - 0x20], xmm1
vmovups xmmword [r9 - 0x18], xmm3
vmovsd qword [r9 - 8], xmm2
vmovups xmm3, xmmword [r10 - 0x48]
vmovsd xmm2, qword [r10 - 0x38]
mov rax, r10
sub rax, rcx
vmovups xmm0, xmmword [rax]
vmovups xmmword [r10 - 0x48], xmm0
vmovsd xmm1, qword [rax + 0x10]
vmovsd qword [r10 - 0x38], xmm1
vmovups xmmword [rax], xmm3
vmovsd qword [rax + 0x10], xmm2
jmp 0x140131ab5
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x40]
movzx eax, byte [rsp + 0x3c]
mov r8, rbx
mov r9d, dword [rsp + 0x70]
mov rdx, r14
mov rcx, r15
mov byte [rsp + 0x20], al
call fcn.14012fc50
mov byte [rsp + 0x3c], 0
mov r12, qword [rbp - 0x78]
lea r15, [r14 + 0x18]
mov rcx, r12
mov qword [rsp + 0x50], r15
sub rcx, r15
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov r13, rdx
sar r13, 2
mov rax, r13
shr rax, 0x3f
add r13, rax
mov qword [rsp + 0x68], r13
cmp r13, 0x18
jl 0x140131e10
mov rsi, qword [rbp - 0x20]
mov qword [rsp + 0x50], r15
jmp 0x14012fce0
sub r10, r15
mov rax, r11
imul r10
mov r14, rdx
sar r14, 2
mov rax, r14
shr rax, 0x3f
add r14, rax
mov rdi, r14
sar rdi, 1
test rdi, rdi
jle 0x140131b91
lea rax, [rdi + rdi*2]
lea rsi, [r15 + rax*8]
lea rsi, [rsi - 0x18]
mov qword [rsp + 0x20], rbx
vmovups xmm0, xmmword [rsi]
vmovsd xmm1, qword [rsi + 0x10]
dec rdi
lea r9, [rbp - 0x70]
mov r8, r14
mov rdx, rdi
mov rcx, r15
vmovups xmmword [rbp - 0x70], xmm0
vmovsd qword [rbp - 0x60], xmm1
call fcn.14013cc50
test rdi, rdi
jg 0x140131b51
movabs r11, 0x2aaaaaaaaaaaaaab
cmp r14, 2
jl 0x140131fad
mov rsi, qword [rbp - 0x20]
mov edi, 0x18
sub rdi, r15
nop word [rax + rax]
lea rcx, [rdi + rsi]
mov rax, r11
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 2
jl 0x140131c2c
vmovups xmm0, xmmword [rsi]
vmovsd xmm1, qword [rsi + 0x10]
mov rax, r11
mov qword [rsp + 0x20], rbx
vmovups xmmword [rbp - 0x70], xmm0
vmovups xmm0, xmmword [r15]
vmovups xmmword [rsi], xmm0
vmovsd qword [rbp - 0x60], xmm1
vmovsd xmm1, qword [r15 + 0x10]
mov rcx, rsi
lea r9, [rbp - 0x70]
sub rcx, r15
imul rcx
mov rcx, r15
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
add r8, rdx
xor edx, edx
vmovsd qword [rsi + 0x10], xmm1
call fcn.14013cc50
movabs r11, 0x2aaaaaaaaaaaaaab
sub rsi, 0x18
lea rax, [rdi + rsi]
cmp rax, 0x30
jge 0x140131bb0
jmp 0x140131fad
cmp byte [rbp + 0x180], 0
je 0x140131e10
mov qword [rbp - 0x40], rbx
cmp r15, r12
je 0x140131fad
lea rdi, [r15 + 0x18]
mov qword [rsp + 0x30], rdi
cmp rdi, r12
je 0x140131fad
mov rsi, r15
mov qword [rsp + 0x58], r15
nop word [rax + rax]
mov r8, rsi
lea rcx, [rbp - 0x40]
mov rdx, rdi
mov r14, rdi
mov r12, rsi
call fcn.140131fd0
test al, al
je 0x140131def
vmovups xmm0, xmmword [rdi]
vmovsd xmm1, qword [rdi + 0x10]
vmovd eax, xmm0
mov dword [rsp + 0x70], eax
vmovups xmmword [rbp - 0x18], xmm0
vmovsd qword [rbp - 0x20], xmm1
nop dword [rax + rax]
vmovups xmm0, xmmword [r12]
vmovups xmmword [r14], xmm0
vmovsd xmm1, qword [r12 + 0x10]
vmovsd qword [r14 + 0x10], xmm1
sub r14, 0x18
cmp r14, r15
je 0x140131dd0
lea rsi, [rbx + 0x150]
movzx edx, ax
mov rcx, rsi
sub r12, 0x18
call fcn.140184c20
movzx edx, word [r12]
mov rcx, rsi
mov r15, rax
call fcn.140184c20
mov r13, rax
movzx eax, byte [rax + 0x1a]
test al, 1
je 0x140131d34
movzx edx, word [rsi + 0xc9c]
mov ecx, dword [rsi + 0xc98]
mov rax, qword [r13 + 0x12]
shl rdx, 0x20
or rdx, rcx
mov rdi, qword [rdx + rax*8]
jmp 0x140131d50
test al, 2
je 0x140131d49
mov rdx, qword [r13 + 0x12]
mov rcx, rsi
call fcn.140184990
mov rdi, rax
jmp 0x140131d50
lea rdi, [0x1413ca658]
movzx eax, byte [r15 + 0x1a]
test al, 1
je 0x140131d77
mov eax, dword [rsi + 0xc98]
movzx ecx, word [rsi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r15 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140131d90
test al, 2
je 0x140131d89
mov rdx, qword [r15 + 0x12]
mov rcx, rsi
call fcn.140184990
jmp 0x140131d90
lea rax, [0x1413ca658]
sub rdi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rdi]
jne 0x140131da6
inc rax
test cl, cl
jne 0x140131d93
xor eax, eax
jmp 0x140131dab
sbb eax, eax
or eax, 1
test eax, eax
jne 0x140131dbc
mov eax, dword [r13 + 0x1b]
cmp dword [r15 + 0x1b], eax
seta al
jmp 0x140131dbf
setg al
mov r15, qword [rsp + 0x50]
test al, al
mov eax, dword [rsp + 0x70]
jne 0x140131cc0
vmovups xmm0, xmmword [rbp - 0x18]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x58]
vmovups xmmword [r14], xmm0
vmovsd xmm0, qword [rbp - 0x20]
vmovsd qword [r14 + 0x10], xmm0
add rdi, 0x18
add rsi, 0x18
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x58], rsi
cmp rdi, qword [rbp - 0x78]
jne 0x140131c80
jmp 0x140131fad
mov qword [rbp - 0x40], rbx
cmp r15, r12
je 0x140131fad
lea rdi, [r15 + 0x18]
mov qword [rsp + 0x30], rdi
cmp rdi, r12
je 0x140131fad
nop
mov r8, r15
lea rcx, [rbp - 0x40]
mov rdx, rdi
mov r13, rdi
mov r12, r15
call fcn.140131fd0
test al, al
je 0x140131f91
vmovups xmm0, xmmword [rdi]
vmovsd xmm1, qword [rdi + 0x10]
lea rsi, [rbx + 0x150]
vmovups xmmword [rbp - 0x18], xmm0
vmovsd qword [rsp + 0x58], xmm1
vmovd ebx, xmm0
nop dword [rax]
vmovups xmm0, xmmword [r12]
vmovups xmmword [r13], xmm0
vmovsd xmm1, qword [r12 + 0x10]
vmovsd qword [r13 + 0x10], xmm1
movzx edx, bx
lea r13, [r13 - 0x18]
mov rcx, rsi
lea r12, [r12 - 0x18]
call fcn.140184c20
movzx edx, word [r12]
mov rcx, rsi
mov r14, rax
call fcn.140184c20
mov r15, rax
movzx eax, byte [rax + 0x1a]
test al, 1
je 0x140131ed6
mov ecx, dword [rsi + 0xc98]
movzx edx, word [rsi + 0xc9c]
shl rdx, 0x20
or rdx, rcx
mov rcx, qword [r15 + 0x12]
mov rdi, qword [rdx + rcx*8]
jmp 0x140131ef2
test al, 2
je 0x140131eeb
mov rdx, qword [r15 + 0x12]
mov rcx, rsi
call fcn.140184990
mov rdi, rax
jmp 0x140131ef2
lea rdi, [0x1413ca658]
movzx eax, byte [r14 + 0x1a]
test al, 1
je 0x140131f19
mov eax, dword [rsi + 0xc98]
movzx ecx, word [rsi + 0xc9c]
shl rcx, 0x20
or rcx, rax
mov rax, qword [r14 + 0x12]
mov rax, qword [rcx + rax*8]
jmp 0x140131f32
test al, 2
je 0x140131f2b
mov rdx, qword [r14 + 0x12]
mov rcx, rsi
call fcn.140184990
jmp 0x140131f32
lea rax, [0x1413ca658]
sub rdi, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rdi]
jne 0x140131f48
inc rax
test cl, cl
jne 0x140131f35
xor eax, eax
jmp 0x140131f4d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x140131f5e
mov eax, dword [r15 + 0x1b]
cmp dword [r14 + 0x1b], eax
seta al
jmp 0x140131f61
setg al
test al, al
jne 0x140131e70
vmovups xmm0, xmmword [rbp - 0x18]
mov rbx, qword [rbp + 0x170]
mov rdi, qword [rsp + 0x30]
mov r15, qword [rsp + 0x50]
vmovups xmmword [r13], xmm0
vmovsd xmm0, qword [rsp + 0x58]
vmovsd qword [r13 + 0x10], xmm0
add rdi, 0x18
add r15, 0x18
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x50], r15
cmp rdi, qword [rbp - 0x78]
jne 0x140131e30
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.1403f4b10
add rsp, 0x218
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret