Function at 0x140332460
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
lea rbp, [rsp + 0x30]
mov rax, rcx
mov r14, r9
mov r8, rdx
mov r15d, 0x7fffffff
xor edi, edi
mov rsi, qword [rax + 0x48]
mov rcx, qword [rax + 0x30]
test rsi, rsi
jle 0x1403328d7
mov rdx, qword [rax]
mov rbx, rdx
mov rax, qword [rax + 0x50]
test rcx, rcx
jle 0x1403325b1
cmp rcx, 4
jl 0x1403328c7
mov r11, rbx
and r11, 0xf
je 0x1403324d8
test r11, 3
jne 0x1403328c7
neg r11
add r11, 0x10
shr r11, 2
lea r9, [r11 + 4]
cmp rcx, r9
jl 0x1403328c7
mov r10, rcx
xor r9d, r9d
sub r10, r11
and r10, 3
neg r10
add r10, rcx
test r11, r11
jbe 0x140332510
mov r12d, dword [rbx + r9*4]
cmp r12d, r15d
cmovl r15d, r12d
inc r9
cmp r9, r11
jb 0x1403324fd
movd xmm0, r15d
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [rbx + r11*4]
add r11, 4
movdqa xmm2, xmm1
pcmpgtd xmm2, xmm0
pxor xmm0, xmm1
pand xmm2, xmm0
movdqa xmm0, xmm1
pxor xmm0, xmm2
cmp r11, r10
jb 0x14033251a
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm1, xmm0
pand xmm2, xmm1
pxor xmm2, xmm0
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm0, xmm2
pand xmm3, xmm0
pxor xmm3, xmm2
movd r15d, xmm3
cmp r10, rcx
jae 0x140332598
mov r9d, dword [rbx + r10*4]
cmp r9d, r15d
cmovl r15d, r9d
inc r10
cmp r10, rcx
jb 0x140332585
inc rdi
add rbx, rax
cmp rdi, rsi
jb 0x1403324a4
mov ebx, 0x80000000
xor r11d, r11d
jmp 0x1403325f7
mov ebx, 0x80000000
cmp rsi, 1
jbe 0x140332728
mov edi, 2
cmp rsi, 2
jbe 0x140332728
lea r11, [rdi + 1]
cmp r11, rsi
jae 0x140332728
test rcx, rcx
jg 0x1403325f7
lea r11, [rdi + 2]
cmp r11, rsi
jae 0x140332728
test rcx, rcx
jle 0x14033271c
inc r11
cmp rcx, 4
jl 0x1403328cf
mov rdi, rax
mov r9, rdx
imul rdi, r11
sub r9, rax
add r9, rdi
mov rdi, r9
and rdi, 0xf
je 0x140332635
test rdi, 3
jne 0x1403328cf
neg rdi
add rdi, 0x10
shr rdi, 2
lea r10, [rdi + 4]
cmp rcx, r10
jl 0x1403328cf
mov r10, rcx
xor r12d, r12d
sub r10, rdi
and r10, 3
neg r10
add r10, rcx
test rdi, rdi
jbe 0x14033266d
mov r13d, dword [r9 + r12*4]
cmp r13d, ebx
cmovg ebx, r13d
inc r12
cmp r12, rdi
jb 0x14033265a
movd xmm0, ebx
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r9 + rdi*4]
add rdi, 4
movdqa xmm2, xmm1
pxor xmm1, xmm0
pcmpgtd xmm2, xmm0
pand xmm2, xmm1
pxor xmm0, xmm2
cmp rdi, r10
jb 0x140332676
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm2, xmm0
pand xmm3, xmm2
pxor xmm3, xmm0
movd ebx, xmm3
cmp r10, rcx
jae 0x1403326ff
mov r9, rax
mov rdi, rdx
imul r9, r11
sub rdi, rax
add rdi, r9
mov r9d, dword [rdi + r10*4]
cmp r9d, ebx
cmovg ebx, r9d
inc r10
cmp r10, rcx
jb 0x1403326ec
cmp r11, rsi
jae 0x140332728
test rcx, rcx
jg 0x1403325f7
lea rdi, [r11 + 1]
cmp rdi, rsi
jb 0x1403325cf
jmp 0x140332728
inc r11
cmp r11, rsi
jb 0x1403325ee
mov rdx, qword [rbp + 0xe0]
cmp r15d, ebx
jne 0x1403327c8
mov rax, rdx
mov rbx, rsp
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.14043da60
sub rsp, rax
lea rax, [rsp + 0x30]
mov rsi, rax
mov rcx, rsi
mov r9d, edx
call fcn.140349590
mov r10, rsp
lea rcx, [rbp]
movabs r8, 0x801208384ff00
lea r9, [0x140590ec4]
movsxd rax, eax
lea rdi, [0x140590e60]
mov qword [rbp + 0x38], rsi
lea rsi, [rbp + 0x30]
mov edx, dword [r14]
mov qword [rcx], 0
mov qword [rsi], rax
mov qword [r10 + 0x20], rsi
mov qword [r10 + 0x28], rdi
call fcn.140353740
lea rdx, [0x140590ecc]
lea rcx, [rbp]
mov dword [rbp + 0x40], r15d
lea r8, [rbp + 0x40]
call fcn.140356950
mov rax, rbx
mov rsp, rax
jmp 0x1403328b6
mov rax, rdx
mov rsi, rsp
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.14043da60
sub rsp, rax
lea rax, [rsp + 0x30]
mov rdi, rax
mov rcx, rdi
mov r9d, edx
call fcn.140349590
mov r11, rsp
lea rcx, [rbp]
movabs r8, 0x801208384ff00
lea r9, [0x140590ed4]
movsxd rax, eax
lea r10, [0x140590e8c]
mov qword [rbp + 0x38], rdi
lea rdi, [rbp + 0x30]
mov edx, dword [r14]
mov qword [rcx], 0
mov qword [rdi], rax
mov qword [r11 + 0x20], rdi
mov qword [r11 + 0x28], r10
call fcn.140353740
lea rdx, [0x140590edc]
lea rcx, [rbp]
lea rdi, str.__variable_2D_integer_array_ranging_from
lea r8, [rbp + 0x40]
mov qword [r8], 0x2a
mov qword [rbp + 0x48], rdi
call fcn.140356950
lea rdx, [0x140590ee4]
lea rcx, [rbp]
mov dword [rbp + 0x60], r15d
lea r8, [rbp + 0x60]
call fcn.140356950
lea rdx, [0x140590eec]
lea rcx, [rbp]
lea rdi, [0x140591274]
lea r8, [rbp + 0x50]
mov qword [r8], 4
mov qword [rbp + 0x58], rdi
call fcn.140356950
lea rdx, [0x140590ef4]
lea rcx, [rbp]
mov dword [rbp + 0x68], ebx
lea r8, [rbp + 0x68]
call fcn.140356950
mov rax, rsi
mov rsp, rax
lea rsp, [rbp + 0x78]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor r10d, r10d
jmp 0x140332580
xor r10d, r10d
jmp 0x1403326d7
mov ebx, 0x80000000
jmp 0x140332728