Function at 0x1401a3238
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 - 0x58]
sub rsp, 0x158
movaps xmm0, xmmword [r8]
xor r12d, r12d
mov r15d, dword [rbp + 0xc0]
lea r8, [rbp - 0x50]
mov qword [rbp - 0x40], rcx
mov rdi, r9
mov dword [rbp - 0x38], r12d
mov rbx, rdx
movaps xmm1, xmmword [rbp - 0x40]
mov r13, rcx
lea esi, [r15*2 + 1]
movaps xmmword [rax - 0x58], xmm6
mov edx, esi
movdqa xmmword [rbp - 0x50], xmm0
mov r9d, r15d
movdqa xmmword [rbp - 0x40], xmm1
lea rcx, [rbp - 0x40]
call fcn.1401a2d38
movaps xmm0, xmmword [rbx]
lea r14d, [rsi*4 - 2]
movaps xmm1, xmmword [rdi]
movdqa xmmword [rbp - 0x40], xmm0
movdqa xmmword [rbp - 0x50], xmm1
lea edx, [r14 - 2]
mov rcx, r13
lea r8, [rbp + 0xa8]
call fcn.14018da04
lea edx, [r14 - 1]
mov rcx, r13
lea r8, [rbp + 0xb0]
movzx ebx, byte [rax]
movzx eax, byte [rbp + 0xa8]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
lea r8, [rbp + 0xb8]
mov edx, r14d
mov rcx, r13
movzx edi, byte [rax]
movzx eax, byte [rbp + 0xb0]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
lea edx, [r14 + 1]
mov rcx, r13
lea r8, [rsp + 0x24]
movzx ebx, byte [rax]
movzx eax, byte [rbp + 0xb8]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rsp + 0x24]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
test ecx, ecx
jne 0x1401a335b
mov eax, 0xffffffff
add r14d, 0xfffffffc
add esi, eax
jne 0x1401a32ba
lea esi, [rcx + 1]
mov rdi, qword [rbp - 0x50]
mov r14d, r15d
mov dword [rbp - 0x80], r15d
test r15d, r15d
je 0x1401a3433
mov eax, dword [rbp - 0x48]
lea eax, [rax + r15*4]
add eax, 0xfffffffe
mov dword [rsp + 0x20], eax
lea edx, [rax - 2]
mov rcx, rdi
lea r8, [rbp + 0xa8]
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rbp + 0xb0]
movzx ebx, byte [rbp + 0xa8]
mov rcx, rdi
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
dec edx
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rbp + 0xb8]
mov rcx, qword [rbp - 0x50]
movzx edi, byte [rax]
movzx eax, byte [rbp + 0xb0]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x24]
inc edx
movzx ebx, byte [rax]
movzx eax, byte [rbp + 0xb8]
xor ebx, eax
add ebx, edi
mov rdi, qword [rbp - 0x50]
mov rcx, rdi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x24]
xor ecx, eax
add ecx, ebx
ror ecx, 8
test ecx, ecx
jne 0x1401a343d
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 0x1401a337d
mov r14d, 1
mov dword [rbp - 0x80], r14d
cmp esi, r14d
jae 0x1401a34b7
mov rax, qword [rbp - 0x40]
mov rbx, r15
mov edi, dword [rbp - 0x38]
mov esi, r12d
shl rbx, 2
mov qword [rbp - 0x50], rax
mov dword [rbp - 0x48], edi
mov qword [rbp - 0x40], r13
mov dword [rbp - 0x38], r12d
test rbx, rbx
je 0x1401a4577
movaps xmm1, xmmword [rbp - 0x40]
inc r12d
movaps xmm2, xmmword [rbp - 0x50]
movdqa xmm0, xmm1
psrldq xmm0, 8
inc edi
movd r9d, xmm0
movq r8, xmm1
movdqa xmm0, xmm2
mov dword [rbp - 0x38], r12d
psrldq xmm0, 8
movq rcx, xmm2
movd edx, xmm0
mov dword [rbp - 0x48], edi
call fcn.14018db00
inc esi
mov eax, esi
cmp rax, rbx
jb 0x1401a346b
jmp 0x1401a4577
lea eax, [r15*8 + 8]
mov qword [rbp - 0x10], rdi
mov edi, dword [rbp - 0x48]
lea edx, [rax + 4]
lea ecx, [r14*4]
mov dword [rbp - 0x28], eax
add edx, ecx
mov dword [rbp + 0x10], ecx
add ecx, edx
mov dword [rbp - 0x1c], edx
mov dword [rbp + 0xb0], ecx
mov ebx, edx
mov qword [rbp], r13
mov dword [rbp + 8], edx
lea eax, [rcx + 4]
mov dword [rbp - 8], edi
mov dword [rbp - 0x60], eax
mov eax, r14d
mov qword [rbp + 0x30], rax
shl rax, 2
mov qword [rbp + 0x20], rax
test rax, rax
je 0x1401a3568
mov r15d, r12d
mov r14, rax
movaps xmm1, xmmword [rbp - 0x10]
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 - 8], edi
psrldq xmm0, 8
movq rcx, xmm2
movd edx, xmm0
mov dword [rbp + 8], ebx
call fcn.14018db00
inc r15d
mov eax, r15d
cmp rax, r14
jb 0x1401a3510
mov r14d, dword [rbp - 0x80]
mov r15d, dword [rbp + 0xc0]
mov ecx, dword [rbp + 0xb0]
lea ebx, [rcx + 1]
mov edx, ecx
mov rcx, r13
lea r8, [rbp + 0xa8]
call fcn.14018da04
mov cl, byte [rbp + 0xa8]
lea r8, [rbp + 0xa8]
mov edx, ebx
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rbp + 0xa8]
lea r8, [rbp + 0xa8]
lea edx, [rbx + 1]
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rbp + 0xa8]
lea edx, [rbx + 2]
lea r8, [rbp + 0xa8]
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rbp + 0xa8]
mov edi, dword [rbp - 0x60]
mov ebx, edi
mov qword [rbp], r13
mov byte [rax], cl
mov eax, esi
shl rax, 2
mov dword [rbp + 8], ebx
mov qword [rbp - 0x10], r13
mov dword [rbp - 8], r12d
test rax, rax
je 0x1401a3654
mov r15d, r12d
mov r14, rax
mov r13d, r12d
movaps xmm1, xmmword [rbp - 0x10]
inc r15d
movaps xmm2, xmmword [rbp]
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 + 8], ebx
call fcn.14018db00
inc r13d
mov eax, r13d
cmp rax, r14
jb 0x1401a35f9
mov r13, qword [rbp + 0xa0]
mov r14d, dword [rbp - 0x80]
mov r15d, dword [rbp + 0xc0]
lea edx, [rdi + rsi*4]
mov rcx, r13
lea r8, [rbp + 0xa8]
lea ebx, [rdx + 1]
call fcn.14018da04
mov cl, byte [rbp + 0xa8]
lea r8, [rbp + 0xa8]
mov edx, ebx
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rbp + 0xa8]
lea r8, [rbp + 0xa8]
lea edx, [rbx + 1]
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rbp + 0xa8]
lea edx, [rbx + 2]
lea r8, [rbp + 0xa8]
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rbp + 0xa8]
mov byte [rax], cl
mov eax, esi
sub eax, r14d
mov dword [rsp + 0x2c], eax
js 0x1401a4483
test esi, esi
je 0x1401a4483
test r14d, r14d
je 0x1401a4483
cmp esi, r14d
jbe 0x1401a4483
mov r15, qword [rbp - 0x50]
cmp r14d, 1
jbe 0x1401a378a
mov edx, dword [rbp - 0x48]
lea r8, [rbp + 0xa8]
add edx, 0xfffffff8
mov rcx, r15
lea edx, [rdx + r14*4]
lea esi, [rdx + 1]
call fcn.14018da04
movzx ebx, byte [rbp + 0xa8]
lea r8, [rbp + 0xb0]
mov edx, esi
mov rcx, r15
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
movzx edi, byte [rbp + 0xb0]
lea r8, [rbp + 0xb8]
lea edx, [rsi + 1]
mov rcx, r15
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
movzx ebx, byte [rbp + 0xb8]
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.14018da04
movzx ecx, byte [rsp + 0x24]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
mov dword [rsp + 0x28], ecx
jmp 0x1401a378f
mov dword [rsp + 0x28], r12d
mov edx, dword [rbp - 0x48]
lea r8, [rsp + 0x7d]
add edx, 0xfffffffc
mov rcx, r15
lea edx, [rdx + r14*4]
lea esi, [rdx + 1]
call fcn.14018da04
movzx ebx, byte [rsp + 0x7d]
lea r8, [rbp - 0x78]
mov edx, esi
mov rcx, r15
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
movzx edi, byte [rbp - 0x78]
lea r8, [rbp - 0x77]
lea edx, [rsi + 1]
mov rcx, r15
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
lea edx, [rsi + 2]
mov rcx, r15
lea r8, [rsp + 0x30]
movzx ebx, byte [rax]
movzx eax, byte [rbp - 0x77]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rsp + 0x30]
lea r8, [rsp + 0x31]
mov edx, dword [rbp - 0x60]
add r14d, dword [rsp + 0x2c]
add edx, 0xfffffffc
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
lea edx, [rdx + r14*4]
mov dword [rbp - 0x7c], ecx
lea esi, [rdx + 1]
mov rcx, r13
call fcn.14018da04
mov edx, esi
lea r8, [rsp + 0x32]
mov rcx, r13
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x31]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
movzx edi, byte [rsp + 0x32]
lea r8, [rsp + 0x33]
lea edx, [rsi + 1]
mov rcx, r13
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
movzx r15d, byte [rsp + 0x33]
lea edx, [rsi + 2]
lea r8, [rsp + 0x34]
mov rcx, r13
movzx eax, byte [rax]
xor r15d, eax
add r15d, edi
ror r15d, 8
call fcn.14018da04
lea r8, [rsp + 0x35]
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x34]
xor ecx, eax
mov eax, dword [rbp - 0x60]
add r15d, ecx
lea edx, [rax + r14*4]
lea esi, [rdx + 1]
mov rcx, r13
call fcn.14018da04
movzx ebx, byte [rsp + 0x35]
lea r8, [rsp + 0x36]
mov edx, esi
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
lea r8, [rsp + 0x37]
mov rcx, r13
lea edx, [rsi + 1]
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x36]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
movzx ebx, byte [rsp + 0x37]
lea edx, [rsi + 2]
lea r8, [rsp + 0x38]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
mov edx, dword [rbp - 0x7c]
mov ecx, dword [rsp + 0x28]
mov r10d, edx
movzx r9d, byte [rsp + 0x38]
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 0x1401a3986
test edx, edx
js 0x1401a3986
cmp r8, r10
jb 0x1401a3958
mov eax, 0xffffffff
jmp 0x1401a39a6
mov edx, r12d
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 0x1401a3961
jmp 0x1401a3996
cmp r9d, edx
jae 0x1401a3951
xor edx, edx
mov rax, r8
div r11
mov rdx, rax
test edx, edx
jne 0x1401a39a4
mov qword [rbp - 0x70], 1
jmp 0x1401a39aa
mov eax, edx
mov qword [rbp - 0x70], rax
mov r15d, dword [rbp - 0x28]
mov rsi, r12
mov r12d, dword [rbp - 0x48]
mov r14, qword [rbp - 0x50]
sub r12d, r15d
lea eax, [r15 + 3]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x30]
mov r15d, dword [rsp + 0x28]
mov qword [rbp - 0x30], rax
lea edx, [r12 - 3]
mov rcx, r14
add edx, r15d
lea r8, [rsp + 0x39]
call fcn.14018da04
movzx ebx, byte [rsp + 0x39]
lea edx, [r12 - 2]
add edx, r15d
lea r8, [rsp + 0x3a]
mov rcx, r14
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
movzx edi, byte [rsp + 0x3a]
lea edx, [r12 - 1]
add edx, r15d
lea r8, [rsp + 0x3b]
mov rcx, r14
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
movzx ebx, byte [rsp + 0x3b]
lea edx, [r12 + r15]
lea r8, [rsp + 0x3c]
mov rcx, r14
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rsp + 0x3c]
lea edx, [r15 - 3]
lea r8, [rsp + 0x3d]
movzx eax, byte [rax]
xor eax, ecx
mov rcx, r13
add eax, ebx
ror eax, 8
imul rax, qword [rbp - 0x70]
add rax, rsi
mov rsi, rax
mov ebx, eax
call fcn.14018da04
mov cl, byte [rsp + 0x3d]
lea edx, [r15 - 2]
xor cl, sil
shr ebx, 8
lea r8, [rsp + 0x3e]
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rsp + 0x3e]
lea edx, [r15 - 1]
xor cl, bl
lea r8, [rsp + 0x3f]
shr ebx, 8
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rsp + 0x3f]
lea r8, [rsp + 0x40]
xor cl, bl
mov edx, r15d
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
shr ebx, 8
add r15d, 4
xor bl, byte [rsp + 0x40]
shr rsi, 0x20
sub qword [rbp - 0x30], 1
mov byte [rax], bl
jne 0x1401a39d1
mov r15d, dword [rbp - 0x28]
lea r8, [rsp + 0x41]
mov edi, dword [rbp + 0x10]
mov rcx, r13
lea edx, [r15 + rdi]
lea ebx, [rdx + 1]
call fcn.14018da04
mov cl, byte [rsp + 0x41]
lea r8, [rsp + 0x42]
xor cl, sil
mov edx, ebx
shr esi, 8
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rsp + 0x42]
lea r8, [rsp + 0x43]
xor cl, sil
lea edx, [rbx + 1]
shr esi, 8
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rsp + 0x43]
lea edx, [rbx + 2]
xor cl, sil
lea r8, [rsp + 0x44]
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov r14d, dword [rbp - 0x80]
xor r12d, r12d
mov ecx, dword [rbp - 0x60]
shr esi, 8
xor sil, byte [rsp + 0x44]
mov byte [rax], sil
lea edx, [r14 + 1]
mov eax, dword [rsp + 0x2c]
mov dword [rbp - 0x7c], eax
mov dword [rsp + 0x2c], r14d
lea ecx, [rcx + rax*4]
mov dword [rbp - 0x68], ecx
test r14d, r14d
js 0x1401a4004
lea esi, [rdi + 3]
mov edi, r15d
add esi, ecx
sub edi, ecx
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x28], edi
mov dword [rbp - 0x70], eax
lea r8, [rsp + 0x45]
lea eax, [rsi - 3]
mov rcx, r13
add eax, edi
mov edx, eax
mov dword [rbp + 0x28], eax
call fcn.14018da04
movzx ebx, byte [rsp + 0x45]
lea r8, [rsp + 0x46]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
lea eax, [rdi - 2]
add eax, esi
ror ebx, 8
mov edx, eax
mov dword [rbp + 0x14], eax
call fcn.14018da04
movzx edi, byte [rsp + 0x46]
lea r8, [rsp + 0x47]
mov rcx, r13
movzx eax, byte [rax]
xor edi, eax
mov eax, dword [rsp + 0x28]
dec eax
add edi, ebx
add eax, esi
ror edi, 8
mov edx, eax
mov dword [rbp + 0x18], eax
call fcn.14018da04
movzx ebx, byte [rsp + 0x47]
lea r8, [rsp + 0x48]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
mov eax, dword [rsp + 0x28]
add eax, esi
add ebx, edi
mov edx, eax
ror ebx, 8
mov dword [rbp + 0x1c], eax
call fcn.14018da04
mov edi, dword [rsp + 0x20]
lea r8, [rsp + 0x49]
movzx esi, byte [rsp + 0x48]
mov rcx, r13
movzx eax, byte [rax]
xor esi, eax
lea eax, [rdi - 3]
add esi, ebx
mov dword [rbp - 0x24], eax
mov edx, eax
ror esi, 8
call fcn.14018da04
lea r8, [rsp + 0x4a]
mov rcx, r13
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x49]
xor ebx, eax
lea eax, [rdi - 2]
mov edx, eax
ror ebx, 8
mov dword [rbp - 0x20], eax
call fcn.14018da04
lea r8, [rsp + 0x4b]
mov rcx, r13
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x4a]
xor edi, eax
mov eax, dword [rsp + 0x20]
add edi, ebx
ror edi, 8
dec eax
mov edx, eax
mov dword [rbp - 0x30], eax
call fcn.14018da04
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x4b]
xor ebx, eax
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x4c]
add ebx, edi
mov rcx, r13
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x4c]
xor ecx, eax
add ecx, ebx
ror ecx, 8
cmp esi, ecx
ja 0x1401a3df3
mov edx, dword [rbp + 0x28]
lea r8, [rsp + 0x4d]
mov rcx, r13
call fcn.14018da04
movzx ebx, byte [rsp + 0x4d]
lea r8, [rsp + 0x4e]
mov edx, dword [rbp + 0x14]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
mov edx, dword [rbp + 0x18]
lea r8, [rsp + 0x4f]
mov rcx, r13
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x4e]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
mov edx, dword [rbp + 0x1c]
lea r8, [rsp + 0x50]
mov rcx, r13
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x4f]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
mov edx, dword [rbp - 0x24]
lea r8, [rsp + 0x51]
mov rcx, r13
movzx esi, byte [rax]
movzx eax, byte [rsp + 0x50]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018da04
mov edx, dword [rbp - 0x20]
lea r8, [rsp + 0x52]
mov rcx, r13
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x51]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
mov edx, dword [rbp - 0x30]
lea r8, [rsp + 0x53]
mov rcx, r13
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x52]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x54]
mov rcx, r13
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x53]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rsp + 0x54]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
cmp esi, ecx
jb 0x1401a3ffd
mov eax, dword [rsp + 0x2c]
mov esi, dword [rsp + 0x20]
dec eax
sub esi, 4
mov dword [rsp + 0x2c], eax
mov dword [rsp + 0x20], esi
test eax, eax
js 0x1401a3ffd
mov edi, dword [rsp + 0x28]
mov eax, dword [rbp - 0x7c]
jmp 0x1401a3b97
mov ecx, dword [rbp - 0x70]
lea edx, [r14 + 1]
mov dword [rbp], r12d
mov eax, ecx
mov dword [rbp - 0x7c], ecx
test edx, edx
je 0x1401a3fe8
mov eax, dword [rbp - 0x1c]
lea esi, [r15 + 3]
sub eax, r15d
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x28], eax
mov eax, edx
mov qword [rbp - 0x70], rax
mov dword [rbp - 0x7c], ecx
lea r12d, [rsi - 3]
mov rcx, r13
mov edx, r12d
lea r8, [rsp + 0x55]
call fcn.14018da04
movzx ebx, byte [rsp + 0x55]
lea r15d, [rsi - 2]
lea r8, [rsp + 0x56]
mov edx, r15d
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
lea r14d, [rsi - 1]
mov rcx, r13
lea r8, [rsp + 0x57]
mov edx, r14d
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x56]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
lea r8, [rsp + 0x58]
mov edx, esi
mov rcx, r13
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x57]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x59]
mov edi, dword [rsp + 0x28]
add edx, 0xfffffffd
add edx, edi
mov rcx, r13
movzx esi, byte [rax]
movzx eax, byte [rsp + 0x58]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x5a]
add edi, 0xfffffffe
mov rcx, r13
add edx, edi
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x59]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x5b]
mov rcx, r13
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x5a]
xor edi, eax
mov eax, dword [rsp + 0x28]
dec eax
add edi, ebx
add edx, eax
ror edi, 8
call fcn.14018da04
mov edx, dword [rsp + 0x28]
lea r8, [rsp + 0x5c]
movzx ebx, byte [rsp + 0x5b]
mov rcx, r13
add edx, dword [rsp + 0x20]
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x5c]
xor ecx, eax
add ecx, ebx
mov eax, dword [rbp]
lea r8, [rsp + 0x5d]
ror ecx, 8
mov edx, r12d
mov edi, esi
sub rdi, rax
sub rdi, rcx
mov rcx, r13
mov ebx, edi
call fcn.14018da04
mov cl, byte [rsp + 0x5d]
lea r8, [rsp + 0x5e]
xor cl, dil
shr ebx, 8
mov edx, r15d
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rsp + 0x5e]
lea r8, [rsp + 0x5f]
xor cl, bl
mov edx, r14d
shr ebx, 8
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rsp + 0x5f]
lea r8, [rsp + 0x60]
mov esi, dword [rsp + 0x20]
xor cl, bl
mov edx, esi
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
shr ebx, 8
add esi, 4
xor bl, byte [rsp + 0x60]
mov dword [rsp + 0x20], esi
mov byte [rax], bl
mov rax, rdi
shr rax, 0x20
neg eax
sub qword [rbp - 0x70], 1
mov qword [rbp], rax
jne 0x1401a3e26
mov r14d, dword [rbp - 0x80]
xor r12d, r12d
mov r15d, dword [rbp - 0x28]
mov eax, dword [rbp - 0x7c]
mov ecx, dword [rbp - 0x68]
lea edi, [r14*4]
mov dword [rsp + 0x2c], r14d
jmp 0x1401a3b85
mov ecx, dword [rbp - 0x68]
lea edx, [r14 + 1]
mov dword [rbp - 0x10], r12d
test edx, edx
je 0x1401a4202
mov r14d, ecx
mov eax, edx
sub r14d, r15d
mov qword [rbp - 0x30], rax
lea edi, [r15 + 3]
mov dword [rbp - 0x70], r14d
mov dword [rsp + 0x20], edi
mov rsi, qword [rbp + 0xa0]
lea r13d, [rdi - 3]
add r13d, r14d
lea r8, [rsp + 0x61]
mov edx, r13d
mov rcx, rsi
call fcn.14018da04
lea r12d, [rdi - 2]
mov rcx, rsi
add r12d, r14d
lea r8, [rsp + 0x62]
mov edx, r12d
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x61]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
mov r15d, dword [rsp + 0x20]
lea r8, [rsp + 0x63]
add r15d, r14d
mov rcx, rsi
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x62]
xor edi, eax
lea edx, [r15 - 1]
add edi, ebx
ror edi, 8
call fcn.14018da04
lea r8, [rsp + 0x64]
mov rcx, rsi
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x63]
xor ebx, eax
add ebx, edi
mov edi, dword [rsp + 0x20]
add r14d, edi
ror ebx, 8
mov edx, r14d
call fcn.14018da04
movzx esi, byte [rsp + 0x64]
lea edx, [rdi - 3]
mov rcx, qword [rbp + 0xa0]
lea r8, [rsp + 0x65]
movzx eax, byte [rax]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018da04
movzx ebx, byte [rsp + 0x65]
lea r8, [rsp + 0x66]
mov rcx, qword [rbp + 0xa0]
mov edx, edi
add edx, 0xfffffffe
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x67]
movzx edi, byte [rsp + 0x66]
dec edx
mov rcx, qword [rbp + 0xa0]
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
mov edx, dword [rsp + 0x20]
lea r8, [rsp + 0x68]
mov rcx, qword [rbp + 0xa0]
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x67]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rax]
movzx eax, byte [rsp + 0x68]
xor ecx, eax
add ecx, ebx
ror ecx, 8
mov eax, dword [rbp - 0x10]
lea r8, [rsp + 0x69]
mov edx, r13d
mov edi, esi
mov r13, qword [rbp + 0xa0]
sub rdi, rax
sub rdi, rcx
mov rcx, r13
mov ebx, edi
call fcn.14018da04
mov cl, byte [rsp + 0x69]
lea r8, [rsp + 0x6a]
xor cl, dil
shr ebx, 8
mov edx, r12d
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rsp + 0x6a]
lea r8, [rsp + 0x6b]
xor cl, bl
lea edx, [r15 - 1]
shr ebx, 8
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov cl, byte [rsp + 0x6b]
lea r8, [rsp + 0x6c]
xor cl, bl
mov edx, r14d
mov byte [rax], cl
mov rcx, r13
call fcn.14018da04
mov r14d, dword [rbp - 0x70]
shr ebx, 8
xor bl, byte [rsp + 0x6c]
mov byte [rax], bl
mov rax, rdi
mov edi, dword [rsp + 0x20]
shr rax, 0x20
add edi, 4
neg eax
mov dword [rsp + 0x20], edi
sub qword [rbp - 0x30], 1
mov qword [rbp - 0x10], rax
jne 0x1401a4028
mov r14d, dword [rbp - 0x80]
xor r12d, r12d
mov dword [rsp + 0x2c], r14d
test r14d, r14d
js 0x1401a445e
mov esi, dword [rbp - 0x68]
lea r15d, [r14*4]
add r15d, 3
add r15d, dword [rbp - 0x1c]
sub esi, dword [rbp - 0x1c]
mov dword [rbp - 0x68], esi
lea eax, [r15 - 3]
mov rcx, r13
add eax, esi
lea r8, [rsp + 0x6d]
mov edx, eax
mov dword [rbp - 0x70], eax
call fcn.14018da04
movzx ebx, byte [rsp + 0x6d]
lea r8, [rsp + 0x6e]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
lea eax, [r15 - 2]
add eax, esi
ror ebx, 8
mov edx, eax
mov dword [rbp - 0x30], eax
call fcn.14018da04
movzx edi, byte [rsp + 0x6e]
lea r8, [rsp + 0x6f]
mov rcx, r13
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 - 0x20], eax
call fcn.14018da04
movzx ebx, byte [rsp + 0x6f]
lea r8, [rsp + 0x70]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
lea eax, [rsi + r15]
add ebx, edi
mov dword [rbp - 0x24], eax
mov edx, eax
ror ebx, 8
call fcn.14018da04
lea edx, [r15 - 3]
mov rcx, r13
lea r8, [rsp + 0x71]
movzx esi, byte [rax]
movzx eax, byte [rsp + 0x70]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018da04
lea edx, [r15 - 2]
mov rcx, r13
lea r8, [rsp + 0x72]
movzx ebx, byte [rax]
movzx eax, byte [rsp + 0x71]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
lea edx, [r15 - 1]
mov rcx, r13
lea r8, [rsp + 0x73]
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x72]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
movzx ebx, byte [rsp + 0x73]
lea r8, [rsp + 0x74]
mov edx, r15d
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rsp + 0x74]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
cmp esi, ecx
ja 0x1401a459c
mov edx, dword [rbp - 0x70]
lea r8, [rsp + 0x75]
mov rcx, r13
call fcn.14018da04
movzx ebx, byte [rsp + 0x75]
lea r8, [rsp + 0x76]
mov edx, dword [rbp - 0x30]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
movzx edi, byte [rsp + 0x76]
lea r8, [rsp + 0x77]
mov edx, dword [rbp - 0x20]
mov rcx, r13
movzx eax, byte [rax]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
movzx ebx, byte [rsp + 0x77]
lea r8, [rsp + 0x78]
mov edx, dword [rbp - 0x24]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
lea r8, [rsp + 0x79]
mov rcx, r13
lea edx, [r15 - 3]
movzx esi, byte [rax]
movzx eax, byte [rsp + 0x78]
xor esi, eax
add esi, ebx
ror esi, 8
call fcn.14018da04
movzx ebx, byte [rsp + 0x79]
lea r8, [rsp + 0x7a]
lea edx, [r15 - 2]
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
ror ebx, 8
call fcn.14018da04
lea r8, [rsp + 0x7b]
mov rcx, r13
lea edx, [r15 - 1]
movzx edi, byte [rax]
movzx eax, byte [rsp + 0x7a]
xor edi, eax
add edi, ebx
ror edi, 8
call fcn.14018da04
movzx ebx, byte [rsp + 0x7b]
lea r8, [rsp + 0x7c]
mov edx, r15d
mov rcx, r13
movzx eax, byte [rax]
xor ebx, eax
add ebx, edi
ror ebx, 8
call fcn.14018da04
movzx ecx, byte [rsp + 0x7c]
movzx eax, byte [rax]
xor ecx, eax
add ecx, ebx
ror ecx, 8
cmp esi, ecx
jb 0x1401a4594
mov eax, dword [rsp + 0x2c]
sub r15d, 4
mov esi, dword [rbp - 0x68]
dec eax
mov dword [rsp + 0x2c], eax
test eax, eax
jns 0x1401a4229
mov ecx, r12d
mov edx, dword [rbp - 0x7c]
test ecx, ecx
lea eax, [rdx + 1]
cmovs eax, edx
sub eax, 1
mov dword [rsp + 0x2c], eax
jns 0x1401a36e7
mov r15d, dword [rbp + 0xc0]
mov edi, dword [rbp - 0x60]
mov rax, qword [rbp - 0x40]
mov esi, dword [rbp - 0x38]
mov qword [rbp - 0x50], r13
mov r13d, r12d
mov qword [rbp + 0x30], rax
mov dword [rbp + 0x38], esi
mov dword [rbp - 0x48], edi
cmp qword [rbp + 0x20], r12
jbe 0x1401a4518
mov r15, qword [rbp + 0x20]
movaps xmm1, xmmword [rbp - 0x50]
lea r8, [rbp + 0xa8]
movaps xmm6, xmmword [rbp + 0x30]
movdqa xmm0, xmm1
psrldq xmm0, 8
inc edi
movd edx, xmm0
inc esi
movq rcx, xmm1
mov dword [rbp - 0x48], edi
mov dword [rbp + 0x38], esi
call fcn.14018da04
movdqa xmm0, xmm6
lea r8, [rbp + 0xa0]
psrldq xmm0, 8
movq rcx, xmm6
movd edx, xmm0
mov rbx, rax
call fcn.14018da04
mov cl, byte [rbp + 0xa0]
inc r13d
xor cl, byte [rbp + 0xa8]
xor cl, byte [rbx]
mov byte [rax], cl
mov eax, r13d
cmp rax, r15
jb 0x1401a44a5
mov r15d, dword [rbp + 0xc0]
mov edi, dword [rbp - 0x38]
lea eax, [r14*4]
add edi, eax
sub r15d, r14d
mov rax, qword [rbp - 0x40]
mov ebx, r15d
shl rbx, 2
mov qword [rbp - 0x40], rax
mov dword [rbp - 0x38], edi
test rbx, rbx
je 0x1401a4577
mov dword [rbp - 0x38], edi
movaps xmm1, xmmword [rbp - 0x40]
lea r8, [rbp + 0xc0]
movdqa xmm0, xmm1
inc edi
psrldq xmm0, 8
movq rcx, xmm1
movd edx, xmm0
mov dword [rbp - 0x38], edi
call fcn.14018da04
mov cl, byte [rbp + 0xc0]
mov byte [rax], cl
sub rbx, 1
jne 0x1401a4542
movaps xmm6, xmmword [rsp + 0x140]
add rsp, 0x158
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
or ecx, 0xffffffff
jmp 0x1401a4461
mov ecx, 1
jmp 0x1401a4461