Function at 0x1401a4934
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x68]
sub rsp, 0x168
movaps xmm0, xmmword [r8]
xor r13d, r13d
mov r15d, dword [rbp + 0xd0]
lea r8, [rbp - 0x60]
mov qword [rbp - 0x40], rcx
mov rdi, r9
mov dword [rbp - 0x38], r13d
mov rbx, rdx
movaps xmm1, xmmword [rbp - 0x40]
mov r12, rcx
lea esi, [r15*2 + 1]
movaps xmmword [rax - 0x58], xmm6
mov edx, esi
movdqa xmmword [rbp - 0x60], xmm0
mov r9d, r15d
movdqa xmmword [rbp - 0x40], xmm1
lea rcx, [rbp - 0x40]
mov dword [rbp - 0x2c], esi
call fcn.1401a4424
movaps xmm0, xmmword [rbx]
lea r14d, [rsi*4 - 2]
movaps xmm1, xmmword [rdi]
movdqa xmmword [rbp - 0x40], xmm0
movdqa xmmword [rbp - 0x60], xmm1
lea edx, [r14 - 2]
mov rcx, r12
lea r8, [rbp + 0xb8]
call fcn.14018f20c
lea edx, [r14 - 1]
mov rcx, r12
lea r8, [rbp + 0xc0]
movzx ebx, byte [rax]
movzx eax, byte [rbp + 0xb8]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
lea r8, [rbp + 0xc8]
mov edx, r14d
mov rcx, r12
movzx edi, byte [rax]
movzx eax, byte [rbp + 0xc0]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
lea edx, [r14 + 1]
mov rcx, r12
lea r8, [rsp + 0x24]
movzx ebx, byte [rax]
movzx eax, byte [rbp + 0xc8]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
movzx ecx, byte [rsp + 0x24]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
test ecx, ecx
jne 0x1401a4a62
mov eax, 0xffffffff
add r14d, 0xfffffffc
add esi, eax
mov dword [rbp - 0x2c], esi
test esi, esi
jne 0x1401a49b9
lea esi, [rcx + 1]
mov dword [rbp - 0x2c], esi
mov rdi, qword [rbp - 0x60]
mov r14d, r15d
mov dword [rbp - 0x80], r15d
test r15d, r15d
je 0x1401a4b3b
lea eax, [r15*4 - 2]
add eax, dword [rbp - 0x58]
mov dword [rsp + 0x20], eax
lea edx, [rax - 2]
mov rcx, rdi
lea r8, [rbp + 0xb8]
call fcn.14018f20c
mov edx, dword [rsp + 0x20]
lea r8, [rbp + 0xc0]
movzx ebx, byte [rbp + 0xb8]
mov rcx, rdi
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
dec edx
call fcn.14018f20c
mov edx, dword [rsp + 0x20]
lea r8, [rbp + 0xc8]
mov rcx, qword [rbp - 0x60]
movzx edi, byte [rax]
movzx eax, byte [rbp + 0xc0]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x24]
inc edx
movzx ebx, byte [rax]
movzx eax, byte [rbp + 0xc8]
xor ebx, eax
add ebx, edi
mov rdi, qword [rbp - 0x60]
mov rcx, rdi
ror ebx, 8
call fcn.14018f20c
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x24]
xor ecx, eax
add ecx, ebx
ror ecx, 8
test ecx, ecx
jne 0x1401a4b45
mov eax, 0xffffffff
add r14d, eax
mov eax, dword [rsp + 0x20]
add eax, 0xfffffffc
mov dword [rbp - 0x80], r14d
mov dword [rsp + 0x20], eax
test r14d, r14d
jne 0x1401a4a85
mov r14d, 1
mov dword [rbp - 0x80], r14d
cmp esi, r14d
jae 0x1401a4bbf
mov rax, qword [rbp - 0x40]
mov rbx, r15
mov edi, dword [rbp - 0x38]
mov esi, r13d
shl rbx, 2
mov qword [rbp - 0x60], rax
mov dword [rbp - 0x58], edi
mov qword [rbp - 0x40], r12
mov dword [rbp - 0x38], r13d
test rbx, rbx
je 0x1401a5c55
movaps xmm1, xmmword [rbp - 0x40]
inc r13d
movaps xmm2, xmmword [rbp - 0x60]
movdqa xmm0, xmm1
psrldq xmm0, 8
inc edi
movd r9d, xmm0
movq r8, xmm1
movdqa xmm0, xmm2
mov dword [rbp - 0x38], r13d
psrldq xmm0, 8
movq rcx, xmm2
movd edx, xmm0
mov dword [rbp - 0x58], edi
call fcn.14018f308
inc esi
mov eax, esi
cmp rax, rbx
jb 0x1401a4b73
jmp 0x1401a5c55
lea eax, [r15*8 + 8]
mov qword [rbp + 0x20], rdi
mov edi, dword [rbp - 0x58]
lea edx, [r14*4]
mov dword [rbp - 0x28], eax
add eax, edx
mov dword [rbp - 0x24], eax
mov qword [rbp], r12
mov dword [rbp + 0x28], edi
lea ecx, [rax + 4]
add edx, ecx
mov dword [rbp + 8], ecx
mov dword [rbp + 0x10], edx
lea eax, [rdx + 4]
mov dword [rbp - 0x78], eax
mov eax, r14d
mov qword [rbp + 0x40], rax
shl rax, 2
mov qword [rbp + 0x30], rax
test rax, rax
je 0x1401a4c69
mov ebx, ecx
mov dword [rbp + 8], ecx
mov r15d, r13d
mov rsi, rax
movaps xmm1, xmmword [rbp + 0x20]
inc edi
movaps xmm2, xmmword [rbp]
movdqa xmm0, xmm1
psrldq xmm0, 8
inc ebx
movd r9d, xmm0
movq r8, xmm1
movdqa xmm0, xmm2
mov dword [rbp + 0x28], edi
psrldq xmm0, 8
movq rcx, xmm2
movd edx, xmm0
mov dword [rbp + 8], ebx
call fcn.14018f308
inc r15d
mov eax, r15d
cmp rax, rsi
jb 0x1401a4c15
mov esi, dword [rbp - 0x2c]
mov r15d, dword [rbp + 0xd0]
mov edx, dword [rbp + 0x10]
lea r8, [rbp + 0xb8]
mov rcx, r12
lea ebx, [rdx + 1]
call fcn.14018f20c
mov cl, byte [rbp + 0xb8]
lea r8, [rbp + 0xb8]
mov edx, ebx
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rbp + 0xb8]
lea r8, [rbp + 0xb8]
lea edx, [rbx + 1]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rbp + 0xb8]
lea edx, [rbx + 2]
lea r8, [rbp + 0xb8]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rbp + 0xb8]
mov edi, dword [rbp - 0x78]
mov ebx, edi
mov qword [rbp + 0x20], r12
mov byte [rax], cl
mov eax, esi
shl rax, 2
mov dword [rbp + 0x28], ebx
mov qword [rbp], r12
mov dword [rbp + 8], r13d
test rax, rax
je 0x1401a4d53
mov r15d, r13d
mov r14, rax
mov r12d, r13d
movaps xmm1, xmmword [rbp]
inc r15d
movaps xmm2, xmmword [rbp + 0x20]
movdqa xmm0, xmm1
psrldq xmm0, 8
inc ebx
movd r9d, xmm0
movq r8, xmm1
movdqa xmm0, xmm2
mov dword [rbp + 8], r15d
psrldq xmm0, 8
movq rcx, xmm2
movd edx, xmm0
mov dword [rbp + 0x28], ebx
call fcn.14018f308
inc r12d
mov eax, r12d
cmp rax, r14
jb 0x1401a4cf8
mov r12, qword [rbp + 0xb0]
mov r14d, dword [rbp - 0x80]
mov r15d, dword [rbp + 0xd0]
lea edx, [rdi + rsi*4]
mov rcx, r12
lea r8, [rbp + 0xb8]
lea ebx, [rdx + 1]
call fcn.14018f20c
mov cl, byte [rbp + 0xb8]
lea r8, [rbp + 0xb8]
mov edx, ebx
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rbp + 0xb8]
lea r8, [rbp + 0xb8]
lea edx, [rbx + 1]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rbp + 0xb8]
lea edx, [rbx + 2]
lea r8, [rbp + 0xb8]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rbp + 0xb8]
mov byte [rax], cl
mov eax, esi
sub eax, r14d
mov dword [rbp - 0x30], eax
js 0x1401a5b5f
test esi, esi
je 0x1401a5b55
test r14d, r14d
je 0x1401a5b55
cmp esi, r14d
jbe 0x1401a5b55
mov r15, qword [rbp - 0x60]
cmp r14d, 1
jbe 0x1401a4e88
mov edx, dword [rbp - 0x58]
lea r8, [rbp + 0xb8]
add edx, 0xfffffff8
mov rcx, r15
lea edx, [rdx + r14*4]
lea esi, [rdx + 1]
call fcn.14018f20c
movzx ebx, byte [rbp + 0xb8]
lea r8, [rbp + 0xc0]
mov edx, esi
mov rcx, r15
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
movzx edi, byte [rbp + 0xc0]
lea r8, [rbp + 0xc8]
lea edx, [rsi + 1]
mov rcx, r15
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
movzx ebx, byte [rbp + 0xc8]
lea edx, [rsi + 2]
lea r8, [rsp + 0x24]
mov rcx, r15
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
movzx ecx, byte [rsp + 0x24]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
mov dword [rsp + 0x7c], ecx
jmp 0x1401a4e8d
mov dword [rsp + 0x7c], r13d
mov edx, dword [rbp - 0x58]
lea r8, [rsp + 0x7a]
add edx, 0xfffffffc
mov rcx, r15
lea edx, [rdx + r14*4]
lea esi, [rdx + 1]
call fcn.14018f20c
movzx ebx, byte [rsp + 0x7a]
lea r8, [rsp + 0x7b]
mov edx, esi
mov rcx, r15
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
movzx edi, byte [rsp + 0x7b]
lea r8, [rsp + 0x2c]
lea edx, [rsi + 1]
mov rcx, r15
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
lea edx, [rsi + 2]
mov rcx, r15
lea r8, [rsp + 0x2d]
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x2c]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
movzx ecx, byte [rsp + 0x2d]
lea r8, [rsp + 0x2e]
mov edx, dword [rbp - 0x78]
add r14d, dword [rbp - 0x30]
add edx, 0xfffffffc
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
lea edx, [rdx + r14*4]
mov dword [rsp + 0x28], ecx
lea esi, [rdx + 1]
mov rcx, r12
call fcn.14018f20c
mov edx, esi
lea r8, [rsp + 0x2f]
mov rcx, r12
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x2e]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
movzx edi, byte [rsp + 0x2f]
lea r8, [rsp + 0x30]
lea edx, [rsi + 1]
mov rcx, r12
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
movzx r15d, byte [rsp + 0x30]
lea edx, [rsi + 2]
lea r8, [rsp + 0x31]
mov rcx, r12
movzx eax, byte [rax]
xor r15d, eax
add r15d, edi
ror r15d, 8
call fcn.14018f20c
lea r8, [rsp + 0x32]
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x31]
xor ecx, eax
mov eax, dword [rbp - 0x78]
add r15d, ecx
lea edx, [rax + r14*4]
lea esi, [rdx + 1]
mov rcx, r12
call fcn.14018f20c
movzx ebx, byte [rsp + 0x32]
lea r8, [rsp + 0x33]
mov edx, esi
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
lea r8, [rsp + 0x34]
mov rcx, r12
lea edx, [rsi + 1]
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x33]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
movzx ebx, byte [rsp + 0x34]
lea edx, [rsi + 2]
lea r8, [rsp + 0x35]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
mov edx, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x7c]
mov r10d, edx
movzx r9d, byte [rsp + 0x35]
mov r11d, edx
movzx eax, byte [rax]
xor r9d, eax
ror r15d, 8
add r9d, ebx
shl r10, 0x20
ror r9d, 8
add r10, rcx
mov eax, r9d
shl rax, 0x20
mov r8d, r15d
add r8, rax
test ecx, ecx
je 0x1401a5089
test edx, edx
js 0x1401a5089
cmp r8, r10
jb 0x1401a505b
mov eax, 0xffffffff
jmp 0x1401a50a9
mov edx, r13d
mov r9d, 0x80000000
lea rcx, [r8 + r8]
mov eax, r9d
or eax, edx
mov r8, rcx
cmp rcx, r10
cmovb eax, edx
sub r8, r10
cmp rcx, r10
mov edx, eax
cmovb r8, rcx
shr r9d, 1
jne 0x1401a5064
jmp 0x1401a5099
cmp r9d, edx
jae 0x1401a5054
xor edx, edx
mov rax, r8
div r11
mov rdx, rax
test edx, edx
jne 0x1401a50a7
mov qword [rbp - 0x50], 1
jmp 0x1401a50ad
mov eax, edx
mov qword [rbp - 0x50], rax
mov eax, dword [rbp - 0x28]
mov rsi, r13
mov ecx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
sub ecx, eax
mov r13d, ecx
lea r14d, [rax + 3]
mov rax, qword [rbp + 0x40]
mov qword [rbp - 0x70], rax
lea edx, [r13 - 3]
mov rcx, r15
add edx, r14d
lea r8, [rsp + 0x36]
call fcn.14018f20c
movzx ebx, byte [rsp + 0x36]
lea edx, [r13 - 2]
add edx, r14d
lea r8, [rsp + 0x37]
mov rcx, r15
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
movzx edi, byte [rsp + 0x37]
lea edx, [r13 - 1]
add edx, r14d
lea r8, [rsp + 0x38]
mov rcx, r15
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
movzx ebx, byte [rsp + 0x38]
lea edx, [r14 + r13]
lea r8, [rsp + 0x39]
mov rcx, r15
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
movzx ecx, byte [rsp + 0x39]
lea edx, [r14 - 3]
lea r8, [rsp + 0x3a]
movzx eax, byte [rax]
xor eax, ecx
mov rcx, r12
add eax, ebx
ror eax, 8
imul rax, qword [rbp - 0x50]
add rax, rsi
mov rsi, rax
mov ebx, eax
call fcn.14018f20c
mov cl, byte [rsp + 0x3a]
lea edx, [r14 - 2]
xor cl, sil
shr ebx, 8
lea r8, [rsp + 0x3b]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x3b]
lea edx, [r14 - 1]
xor cl, bl
lea r8, [rsp + 0x3c]
shr ebx, 8
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x3c]
lea r8, [rsp + 0x3d]
xor cl, bl
mov edx, r14d
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
shr ebx, 8
add r14d, 4
xor bl, byte [rsp + 0x3d]
shr rsi, 0x20
sub qword [rbp - 0x70], 1
mov byte [rax], bl
jne 0x1401a50cb
mov eax, dword [rbp - 0x24]
lea r8, [rsp + 0x3e]
mov edx, eax
mov rcx, r12
lea ebx, [rax + 1]
call fcn.14018f20c
mov cl, byte [rsp + 0x3e]
lea r8, [rsp + 0x3f]
xor cl, sil
mov edx, ebx
shr esi, 8
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x3f]
lea r8, [rsp + 0x40]
xor cl, sil
lea edx, [rbx + 1]
shr esi, 8
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x40]
lea edx, [rbx + 2]
xor cl, sil
lea r8, [rsp + 0x41]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov ecx, dword [rbp - 0x78]
mov r14d, dword [rbp - 0x80]
shr esi, 8
xor sil, byte [rsp + 0x41]
mov byte [rax], sil
mov eax, dword [rbp - 0x30]
lea eax, [rcx + rax*4]
lea ecx, [r14 + 1]
mov dword [rbp - 0x7c], eax
mov dword [rbp - 0x50], ecx
mov r15d, dword [rbp - 0x28]
xor r13d, r13d
mov dword [rsp + 0x28], r14d
test r14d, r14d
js 0x1401a56f9
lea esi, [r14*4]
mov edi, r15d
add esi, 3
add esi, eax
sub edi, eax
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x7c], edi
lea eax, [rdi - 3]
mov rcx, r12
add eax, esi
lea r8, [rsp + 0x42]
mov edx, eax
mov dword [rbp + 0x38], eax
call fcn.14018f20c
movzx ebx, byte [rsp + 0x42]
lea r8, [rsp + 0x43]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
lea eax, [rdi - 2]
add eax, esi
ror ebx, 8
mov edx, eax
mov dword [rbp - 0x20], eax
call fcn.14018f20c
movzx edi, byte [rsp + 0x43]
lea r8, [rsp + 0x44]
mov rcx, r12
movzx eax, byte [rax]
xor edi, eax
mov eax, dword [rsp + 0x7c]
dec eax
add edi, ebx
add eax, esi
ror edi, 8
mov edx, eax
mov dword [rbp - 0x1c], eax
call fcn.14018f20c
movzx ebx, byte [rsp + 0x44]
lea r8, [rsp + 0x45]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
mov eax, dword [rsp + 0x7c]
add eax, esi
add ebx, edi
mov edx, eax
ror ebx, 8
mov dword [rbp - 0x18], eax
call fcn.14018f20c
mov edi, dword [rsp + 0x20]
lea r8, [rsp + 0x46]
movzx esi, byte [rsp + 0x45]
mov rcx, r12
movzx eax, byte [rax]
xor esi, eax
lea eax, [rdi - 3]
add esi, ebx
mov dword [rbp - 0x14], eax
mov edx, eax
ror esi, 8
call fcn.14018f20c
lea r8, [rsp + 0x47]
mov rcx, r12
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x46]
xor ebx, eax
lea eax, [rdi - 2]
mov edx, eax
ror ebx, 8
mov dword [rbp - 0x10], eax
call fcn.14018f20c
lea r8, [rsp + 0x48]
mov rcx, r12
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x47]
xor edi, eax
mov eax, dword [rsp + 0x20]
add edi, ebx
ror edi, 8
dec eax
mov edx, eax
mov dword [rbp - 0x70], eax
call fcn.14018f20c
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x48]
xor ebx, eax
add ebx, edi
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x49]
mov rcx, r12
ror ebx, 8
call fcn.14018f20c
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x49]
xor ecx, eax
add ecx, ebx
ror ecx, 8
cmp esi, ecx
ja 0x1401a54e9
mov edx, dword [rbp + 0x38]
lea r8, [rsp + 0x4a]
mov rcx, r12
call fcn.14018f20c
movzx ebx, byte [rsp + 0x4a]
lea r8, [rsp + 0x4b]
mov edx, dword [rbp - 0x20]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
mov edx, dword [rbp - 0x1c]
lea r8, [rsp + 0x4c]
mov rcx, r12
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x4b]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
mov edx, dword [rbp - 0x18]
lea r8, [rsp + 0x4d]
mov rcx, r12
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x4c]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
mov edx, dword [rbp - 0x14]
lea r8, [rsp + 0x4e]
mov rcx, r12
movzx esi, byte [rax]
movzx eax, byte [rsp + 0x4d]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018f20c
mov edx, dword [rbp - 0x10]
lea r8, [rsp + 0x4f]
mov rcx, r12
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x4e]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
mov edx, dword [rbp - 0x70]
lea r8, [rsp + 0x50]
mov rcx, r12
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x4f]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x51]
mov rcx, r12
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x50]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
movzx ecx, byte [rsp + 0x51]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
cmp esi, ecx
jb 0x1401a56f2
mov eax, dword [rsp + 0x28]
mov esi, dword [rsp + 0x20]
dec eax
sub esi, 4
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], esi
test eax, eax
js 0x1401a56f2
mov edi, dword [rsp + 0x7c]
jmp 0x1401a5293
mov eax, dword [rbp - 0x7c]
lea ecx, [r14 + 1]
mov dword [rbp + 0x20], r13d
test ecx, ecx
je 0x1401a526b
mov eax, dword [rbp - 0x24]
lea r14d, [r15 + 3]
add eax, 4
mov dword [rsp + 0x20], r14d
sub eax, r15d
mov dword [rbp - 0x70], eax
mov r13d, dword [rbp - 0x70]
mov eax, ecx
mov qword [rbp - 0x10], rax
mov rsi, qword [rbp + 0xb0]
lea r8, [rsp + 0x52]
mov rcx, rsi
lea edx, [r14 - 3]
call fcn.14018f20c
movzx ebx, byte [rsp + 0x52]
lea r8, [rsp + 0x53]
lea edx, [r14 - 2]
mov rcx, rsi
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
lea r8, [rsp + 0x54]
mov rcx, rsi
lea edx, [r14 - 1]
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x53]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
lea r8, [rsp + 0x55]
mov rcx, rsi
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x54]
xor ebx, eax
add ebx, edi
mov edi, dword [rsp + 0x20]
mov edx, edi
ror ebx, 8
call fcn.14018f20c
mov rcx, qword [rbp + 0xb0]
lea edx, [rdi - 3]
add edx, r13d
lea r8, [rsp + 0x56]
movzx esi, byte [rax]
movzx eax, byte [rsp + 0x55]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018f20c
mov rcx, qword [rbp + 0xb0]
lea r8, [rsp + 0x57]
mov edx, edi
add edx, 0xfffffffe
movzx ebx, byte [rax]
add edx, r13d
movzx eax, byte [rsp + 0x56]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x58]
mov rcx, qword [rbp + 0xb0]
dec edx
add edx, r13d
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x57]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x59]
movzx ebx, byte [rsp + 0x58]
add edx, r13d
mov rcx, qword [rbp + 0xb0]
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
mov edi, esi
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x59]
xor ecx, eax
mov eax, dword [rbp + 0x20]
add ecx, ebx
ror ecx, 8
sub rdi, rax
mov r12, qword [rbp + 0xb0]
lea r8, [rsp + 0x5a]
sub rdi, rcx
lea edx, [r14 - 3]
mov rcx, r12
mov ebx, edi
call fcn.14018f20c
mov cl, byte [rsp + 0x5a]
lea r8, [rsp + 0x5b]
xor cl, dil
shr ebx, 8
lea edx, [r14 - 2]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x5b]
lea r8, [rsp + 0x5c]
xor cl, bl
lea edx, [r14 - 1]
shr ebx, 8
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x5c]
lea r8, [rsp + 0x5d]
mov r14d, dword [rsp + 0x20]
xor cl, bl
mov edx, r14d
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
shr ebx, 8
add r14d, 4
xor bl, byte [rsp + 0x5d]
mov dword [rsp + 0x20], r14d
mov byte [rax], bl
mov rax, rdi
shr rax, 0x20
neg eax
sub qword [rbp - 0x10], 1
mov qword [rbp + 0x20], rax
jne 0x1401a551b
mov r14d, dword [rbp - 0x80]
mov eax, dword [rbp - 0x7c]
mov ecx, dword [rbp - 0x50]
jmp 0x1401a5264
mov eax, dword [rbp - 0x7c]
lea ecx, [r14 + 1]
mov dword [rbp], r13d
test ecx, ecx
je 0x1401a58c8
mov r14d, eax
lea r13d, [r15 + 3]
sub r14d, r15d
sub eax, r15d
mov dword [rbp - 0x50], eax
mov r15d, dword [rbp - 0x50]
mov eax, ecx
mov qword [rbp - 0x70], rax
lea edx, [r14 - 3]
mov rcx, r12
add edx, r13d
lea r8, [rsp + 0x5e]
call fcn.14018f20c
lea edx, [r14 - 2]
mov rcx, r12
add edx, r13d
lea r8, [rsp + 0x5f]
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x5e]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
lea edx, [r14 - 1]
mov rcx, r12
add edx, r13d
lea r8, [rsp + 0x60]
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x5f]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
lea edx, [r14 + r13]
mov rcx, r12
lea r8, [rsp + 0x61]
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x60]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
movzx esi, byte [rsp + 0x61]
lea edx, [r13 - 3]
lea r8, [rsp + 0x62]
mov rcx, r12
movzx eax, byte [rax]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018f20c
movzx ebx, byte [rsp + 0x62]
lea edx, [r13 - 2]
lea r8, [rsp + 0x63]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
movzx edi, byte [rsp + 0x63]
lea edx, [r13 - 1]
lea r8, [rsp + 0x64]
mov rcx, r12
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
lea r8, [rsp + 0x65]
mov edx, r13d
mov rcx, r12
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x64]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
mov edi, esi
lea edx, [r15 - 3]
lea r8, [rsp + 0x66]
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x65]
xor ecx, eax
mov eax, dword [rbp]
add ecx, ebx
sub rdi, rax
ror ecx, 8
sub rdi, rcx
mov ebx, edi
add edx, r13d
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x66]
lea edx, [r15 - 2]
xor cl, dil
shr ebx, 8
add edx, r13d
lea r8, [rsp + 0x67]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x67]
lea edx, [r15 - 1]
xor cl, bl
lea r8, [rsp + 0x68]
add edx, r13d
shr ebx, 8
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
mov cl, byte [rsp + 0x68]
lea edx, [r15 + r13]
xor cl, bl
lea r8, [rsp + 0x69]
mov byte [rax], cl
mov rcx, r12
call fcn.14018f20c
shr ebx, 8
add r13d, 4
xor bl, byte [rsp + 0x69]
mov byte [rax], bl
mov rax, rdi
shr rax, 0x20
neg eax
sub qword [rbp - 0x70], 1
mov qword [rbp], rax
jne 0x1401a571f
mov r14d, dword [rbp - 0x80]
xor r13d, r13d
mov dword [rsp + 0x28], r14d
test r14d, r14d
js 0x1401a5b38
mov esi, dword [rbp + 0x10]
mov eax, dword [rbp - 0x24]
add esi, 3
mov r15d, dword [rbp - 0x7c]
add eax, 4
mov dword [rsp + 0x20], esi
sub r15d, eax
lea eax, [r15 - 3]
mov rcx, r12
add eax, esi
lea r8, [rsp + 0x6a]
mov edx, eax
mov dword [rbp - 0x50], eax
call fcn.14018f20c
movzx ebx, byte [rsp + 0x6a]
lea r8, [rsp + 0x6b]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
lea eax, [r15 - 2]
add eax, esi
ror ebx, 8
mov edx, eax
mov dword [rbp - 0x70], eax
call fcn.14018f20c
movzx edi, byte [rsp + 0x6b]
lea r8, [rsp + 0x6c]
mov rcx, r12
movzx eax, byte [rax]
xor edi, eax
lea eax, [r15 - 1]
add eax, esi
add edi, ebx
mov edx, eax
ror edi, 8
mov dword [rbp - 0x10], eax
call fcn.14018f20c
movzx ebx, byte [rsp + 0x6c]
lea r8, [rsp + 0x6d]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
lea eax, [r15 + rsi]
add ebx, edi
mov dword [rbp - 0x14], eax
mov edx, eax
ror ebx, 8
call fcn.14018f20c
mov edi, dword [rsp + 0x20]
lea r8, [rsp + 0x6e]
mov rcx, r12
movzx esi, byte [rax]
movzx eax, byte [rsp + 0x6d]
xor esi, eax
lea eax, [rdi - 3]
add esi, ebx
mov dword [rbp - 0x18], eax
mov edx, eax
ror esi, 8
call fcn.14018f20c
lea r8, [rsp + 0x6f]
mov rcx, r12
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x6e]
xor ebx, eax
lea eax, [rdi - 2]
mov edx, eax
ror ebx, 8
mov dword [rbp - 0x1c], eax
call fcn.14018f20c
lea r8, [rsp + 0x70]
mov rcx, r12
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x6f]
xor edi, eax
mov eax, dword [rsp + 0x20]
add edi, ebx
ror edi, 8
dec eax
mov edx, eax
mov dword [rbp - 0x20], eax
call fcn.14018f20c
movzx ebx, byte [rsp + 0x70]
lea r8, [rsp + 0x71]
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
mov edx, dword [rsp + 0x20]
mov rcx, r12
call fcn.14018f20c
movzx ecx, byte [rsp + 0x71]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
cmp esi, ecx
ja 0x1401a5c7a
mov edx, dword [rbp - 0x50]
lea r8, [rsp + 0x72]
mov rcx, r12
call fcn.14018f20c
movzx ebx, byte [rsp + 0x72]
lea r8, [rsp + 0x73]
mov edx, dword [rbp - 0x70]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
movzx edi, byte [rsp + 0x73]
lea r8, [rsp + 0x74]
mov edx, dword [rbp - 0x10]
mov rcx, r12
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
movzx ebx, byte [rsp + 0x74]
lea r8, [rsp + 0x75]
mov edx, dword [rbp - 0x14]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
mov edx, dword [rbp - 0x18]
lea r8, [rsp + 0x76]
mov rcx, r12
movzx esi, byte [rax]
movzx eax, byte [rsp + 0x75]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018f20c
movzx ebx, byte [rsp + 0x76]
lea r8, [rsp + 0x77]
mov edx, dword [rbp - 0x1c]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018f20c
mov edx, dword [rbp - 0x20]
lea r8, [rsp + 0x78]
mov rcx, r12
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x77]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018f20c
movzx ebx, byte [rsp + 0x78]
lea r8, [rsp + 0x79]
mov edx, dword [rsp + 0x20]
mov rcx, r12
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018f20c
movzx ecx, byte [rsp + 0x79]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
cmp esi, ecx
jb 0x1401a5c72
mov eax, dword [rsp + 0x28]
mov esi, dword [rsp + 0x20]
dec eax
sub esi, 4
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], esi
test eax, eax
jns 0x1401a58ed
mov edx, r13d
mov ecx, dword [rbp - 0x30]
test edx, edx
mov esi, dword [rbp - 0x2c]
lea eax, [rcx + 1]
cmovs eax, ecx
sub eax, 1
mov dword [rbp - 0x30], eax
jns 0x1401a4dcb
mov r15d, dword [rbp + 0xd0]
mov edi, dword [rbp - 0x78]
mov ecx, dword [rbp - 0x38]
mov esi, ecx
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x60], r12
mov r12d, r13d
mov qword [rbp + 0x40], rax
mov dword [rbp + 0x48], ecx
mov dword [rbp - 0x58], edi
cmp qword [rbp + 0x30], r13
jbe 0x1401a5bfd
mov r15, qword [rbp + 0x30]
movaps xmm1, xmmword [rbp - 0x60]
lea r8, [rbp + 0xb8]
movaps xmm6, xmmword [rbp + 0x40]
movdqa xmm0, xmm1
psrldq xmm0, 8
inc edi
movd edx, xmm0
inc esi
movq rcx, xmm1
mov dword [rbp - 0x58], edi
mov dword [rbp + 0x48], esi
call fcn.14018f20c
movdqa xmm0, xmm6
lea r8, [rbp + 0xb0]
psrldq xmm0, 8
movq rcx, xmm6
movd edx, xmm0
mov rbx, rax
call fcn.14018f20c
mov cl, byte [rbp + 0xb0]
inc r12d
xor cl, byte [rbp + 0xb8]
xor cl, byte [rbx]
mov byte [rax], cl
mov eax, r12d
cmp rax, r15
jb 0x1401a5b83
mov r15d, dword [rbp + 0xd0]
mov rax, qword [rbp - 0x40]
mov ecx, dword [rbp - 0x38]
sub r15d, r14d
mov qword [rbp - 0x40], rax
mov ebx, r15d
lea edi, [r14*4]
add edi, ecx
shl rbx, 2
mov dword [rbp - 0x38], edi
test rbx, rbx
je 0x1401a5c55
mov dword [rbp - 0x38], edi
movaps xmm1, xmmword [rbp - 0x40]
lea r8, [rbp + 0xd0]
movdqa xmm0, xmm1
inc edi
psrldq xmm0, 8
movq rcx, xmm1
movd edx, xmm0
mov dword [rbp - 0x38], edi
call fcn.14018f20c
mov cl, byte [rbp + 0xd0]
mov byte [rax], cl
sub rbx, 1
jne 0x1401a5c20
movaps xmm6, xmmword [rsp + 0x150]
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
or edx, 0xffffffff
jmp 0x1401a5b3b
mov edx, 1
jmp 0x1401a5b3b