Function at 0x140241920
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rax, qword [0x14047f698]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r11, qword [0x140464308]
movsxd rax, dword [r11]
mov qword [rsp + 0x30], rax
mov al, 1
jmp 0x140241967
mov r8d, dword [0x140377200]
test al, al
je 0x140241960
mov r8d, dword [0x140377200]
test al, al
je 0x140241960
mov dword [rsp + 0x28], r8d
mov rax, qword [rdx]
mov r8, qword [rdx + 0x10]
mov rdi, qword [r8]
mov esi, dword [r8 + 0x14]
movabs r8, 0x23d00000000
mov qword [rcx + 0x149c], r8
xor ebx, ebx
mov r13d, 0xffffffff
xor r9d, r9d
test esi, esi
jg 0x1402419c0
jmp 0x140241a2d
mov word [rax + r9*4 + 2], 0
inc r9
cmp rsi, r9
je 0x1402419f0
cmp word [rax + r9*4], 0
je 0x1402419b0
movsxd r8, dword [rcx + 0x149c]
lea r10, [r8 + 1]
mov dword [rcx + 0x149c], r10d
mov dword [rcx + r8*4 + 0xbac], r9d
mov byte [rcx + r9 + 0x14a4], 0
mov r13d, r9d
jmp 0x1402419b8
mov r9d, dword [rcx + 0x149c]
cmp r9d, 1
jle 0x140241a2d
mov dword [rdx + 8], r13d
mov edi, dword [rcx + 0x149c]
cmp edi, 2
jl 0x140241bb3
shr rdi, 1
jmp 0x140241abf
mov r9d, dword [rcx + 0x149c]
cmp r9d, 2
jge 0x1402419fd
lea r8d, [r13 + 1]
cmp r13d, 2
cmovl r13d, r8d
cmovge r8d, ebx
lea r10d, [r9 + 1]
mov dword [rcx + 0x149c], r10d
movsxd r9, r9d
mov dword [rcx + r9*4 + 0xbac], r8d
movsxd r8, r8d
mov word [rax + r8*4], 1
mov byte [rcx + r8 + 0x14a4], 0
mov r9d, dword [rcx + 0x16fc]
mov r10d, r9d
not r10d
lea r9d, [r10 + r9*2]
mov dword [rcx + 0x16fc], r9d
test rdi, rdi
je 0x140241a20
movzx r8d, word [rdi + r8*4 + 2]
sub dword [rcx + 0x1700], r8d
jmp 0x140241a20
mov r15d, ebp
movsxd r8, r15d
mov dword [rcx + r8*4 + 0xba8], r9d
lea r8, [rdi - 1]
cmp rdi, 1
mov rdi, r8
jle 0x140241bb3
mov r9d, dword [rcx + rdi*4 + 0xba8]
lea r14d, [rdi + rdi]
mov r8d, dword [rcx + 0x149c]
mov r15d, edi
cmp r14d, r8d
jg 0x140241aa3
movsxd rbx, r9d
mov ebp, edi
jmp 0x140241b0e
movsxd r10, ebp
mov dword [rcx + r10*4 + 0xba8], r8d
lea r14d, [r15 + r15]
mov r8d, dword [rcx + 0x149c]
mov ebp, r15d
cmp r14d, r8d
jg 0x140241aa3
cmp r14d, r8d
jge 0x140241b70
mov r8d, r14d
or r8d, 1
movsxd r10, r8d
movsxd r15, dword [rcx + r10*4 + 0xba8]
movsxd r10, r14d
movsxd r10, dword [rcx + r10*4 + 0xba8]
movzx r12d, word [rax + r10*4]
cmp word [rax + r15*4], r12w
jae 0x140241b50
mov r15d, r8d
jmp 0x140241b73
jne 0x140241b70
movzx r12d, byte [rcx + r15 + 0x14a4]
mov r15d, r14d
cmp r12b, byte [rcx + r10 + 0x14a4]
jbe 0x140241b3c
jmp 0x140241b73
mov r15d, r14d
movsxd r8, r15d
mov r8d, dword [rcx + r8*4 + 0xba8]
movsxd r10, r8d
movzx r14d, word [rax + r10*4]
cmp word [rax + rbx*4], r14w
jb 0x140241aa0
jne 0x140241af0
movzx r14d, byte [rcx + rbx + 0x14a4]
cmp r14b, byte [rcx + r10 + 0x14a4]
ja 0x140241af0
jmp 0x140241aa0
add qword [rsp + 0x30], r11
movsxd r11, esi
mov r8d, dword [rcx + 0x149c]
jmp 0x140241bf2
mov esi, r9d
movsxd r8, esi
mov dword [rcx + r8*4 + 0xba8], r11d
inc r11
mov r8d, dword [rcx + 0x149c]
cmp r8d, 1
jle 0x140241e92
mov edi, dword [rcx + 0xbac]
lea r12d, [r8 - 1]
mov dword [rcx + 0x149c], r12d
movsxd r8, r8d
mov ebx, dword [rcx + r8*4 + 0xba8]
mov dword [rcx + 0xbac], ebx
mov esi, 1
mov r14d, 1
cmp r8d, 3
jl 0x140241d06
movsxd r9, ebx
mov ebp, 1
mov r15d, 2
jmp 0x140241c62
movsxd r10, ebp
mov dword [rcx + r10*4 + 0xba8], r8d
lea r15d, [r14 + r14]
mov r12d, dword [rcx + 0x149c]
mov ebp, r14d
cmp r15d, r12d
jg 0x140241d06
cmp r15d, r12d
jge 0x140241cc0
mov r8d, r15d
or r8d, 1
movsxd r10, r8d
movsxd r14, dword [rcx + r10*4 + 0xba8]
movsxd r10, r15d
movsxd r10, dword [rcx + r10*4 + 0xba8]
movzx r12d, word [rax + r10*4]
cmp word [rax + r14*4], r12w
jae 0x140241ca0
mov r14d, r8d
jmp 0x140241cc3
jne 0x140241cc0
movzx r12d, byte [rcx + r14 + 0x14a4]
mov r14d, r15d
cmp r12b, byte [rcx + r10 + 0x14a4]
jbe 0x140241c90
jmp 0x140241cc3
mov r14d, r15d
cmp byte [0x1404903d0], 0
jne 0x140241d03
movsxd r8, r14d
mov r8d, dword [rcx + r8*4 + 0xba8]
movsxd r10, r8d
movzx r15d, word [rax + r10*4]
cmp word [rax + r9*4], r15w
jb 0x140241d03
jne 0x140241c40
movzx r15d, byte [rcx + r9 + 0x14a4]
cmp r15b, byte [rcx + r10 + 0x14a4]
ja 0x140241c40
mov r14d, ebp
movsxd r9, edi
movsxd r8, r14d
mov dword [rcx + r8*4 + 0xba8], ebx
movsxd rdi, dword [rcx + 0xbac]
movsxd r8, dword [rcx + 0x14a0]
lea r10, [r8 - 1]
mov dword [rcx + 0x14a0], r10d
mov dword [rcx + r8*4 + 0xba4], r9d
movsxd r8, dword [rcx + 0x14a0]
lea r10, [r8 - 1]
mov dword [rcx + 0x14a0], r10d
mov dword [rcx + r8*4 + 0xba4], edi
movzx r8d, word [rax + rdi*4]
add r8w, word [rax + r9*4]
mov word [rax + r11*4], r8w
movzx r8d, byte [rcx + r9 + 0x14a4]
movzx r10d, byte [rcx + rdi + 0x14a4]
cmp r8b, r10b
cmova r10d, r8d
mov r8d, r10d
xor r8b, 1
and r10b, 1
add r10b, r10b
add r10b, r8b
mov byte [rcx + r11 + 0x14a4], r10b
mov word [rax + rdi*4 + 2], r11w
mov word [rax + r9*4 + 2], r11w
mov dword [rcx + 0xbac], r11d
mov r8d, dword [rcx + 0x149c]
cmp r8d, 2
jl 0x140241bd3
mov r9d, 1
mov edi, 2
jmp 0x140241df1
movsxd r9, r9d
mov dword [rcx + r9*4 + 0xba8], r8d
lea edi, [rsi + rsi]
mov r8d, dword [rcx + 0x149c]
mov r9d, esi
cmp edi, r8d
jg 0x140241bd3
cmp edi, r8d
jge 0x140241e50
mov r8d, edi
or r8d, 1
movsxd r10, r8d
movsxd rsi, dword [rcx + r10*4 + 0xba8]
movsxd r10, edi
movsxd r10, dword [rcx + r10*4 + 0xba8]
movzx ebx, word [rax + r10*4]
cmp word [rax + rsi*4], bx
jae 0x140241e30
mov esi, r8d
jmp 0x140241e52
jne 0x140241e50
movzx ebx, byte [rcx + rsi + 0x14a4]
mov esi, edi
cmp bl, byte [rcx + r10 + 0x14a4]
jbe 0x140241e1e
jmp 0x140241e52
mov esi, edi
movsxd r8, esi
mov r8d, dword [rcx + r8*4 + 0xba8]
movsxd r10, r8d
movzx edi, word [rax + r10*4]
cmp word [rax + r11*4], di
jb 0x140241bd0
jne 0x140241dd0
movzx ebx, byte [rcx + r11 + 0x14a4]
cmp bl, byte [rcx + r10 + 0x14a4]
ja 0x140241dd0
jmp 0x140241bd0
mov r8d, dword [rcx + 0xbac]
movsxd r9, dword [rcx + 0x14a0]
lea r10, [r9 - 1]
mov dword [rcx + 0x14a0], r10d
mov dword [rcx + r9*4 + 0xba4], r8d
mov r11, qword [rdx]
mov esi, dword [rdx + 8]
mov rdx, qword [rdx + 0x10]
mov r9, qword [rdx]
mov r10, qword [rdx + 8]
mov edi, dword [rdx + 0x10]
movsxd rdx, dword [rdx + 0x18]
xorps xmm0, xmm0
movups xmmword [rcx + 0xb98], xmm0
movups xmmword [rcx + 0xb88], xmm0
movsxd r8, dword [rcx + 0x14a0]
movsxd r8, dword [rcx + r8*4 + 0xba8]
mov word [r11 + r8*4 + 2], 0
movsxd r12, dword [rcx + 0x14a0]
cmp r12, 0x23b
jg 0x1402421e1
mov dword [rsp + 0x2c], edi
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x40], r9
mov r8d, dword [0x140464300]
lea edi, [r8 + 1]
mov dword [0x140464300], edi
mov r9d, r8d
not r9d
xor r8d, edi
not edi
and edi, r9d
or edi, r8d
not edi
mov r8b, 1
nop dword [rax]
test r8b, r8b
je 0x140241f40
test r8b, r8b
je 0x140241f40
test edi, edi
mov qword [rsp + 0x38], r13
je 0x140241f58
xor r15d, r15d
jmp 0x140241f69
xor r8d, r8d
test r8b, r8b
jne 0x14024243d
jmp 0x140242435
xor r8d, r8d
test r8b, r8b
jne 0x140241f79
mov r8b, 1
test r8b, r8b
jne 0x140241f87
mov r8b, 1
nop dword [rax]
test r8b, r8b
je 0x140241f80
jmp 0x140241f71
lea r9d, [r12 + 1]
xor r10d, r10d
jmp 0x140241fc3
mov bpl, r14b
add r10d, ebp
inc r9d
mov rbx, qword [rsp + 0x30]
mov r8, rbx
inc r8
cmp ebx, 0x23b
mov r12, r8
je 0x140242060
mov qword [rsp + 0x30], r12
movsxd r13, dword [rcx + r12*4 + 0xbac]
movzx r8d, word [r11 + r13*4 + 2]
movzx r8d, word [r11 + r8*4 + 2]
xor ebp, ebp
mov ebx, edx
cmp edx, r8d
setle r14b
jle 0x140241fef
inc r8d
mov ebx, r8d
mov word [r11 + r13*4 + 2], bx
cmp r13d, esi
jg 0x140241fa0
movsxd r8, ebx
inc word [rcx + r8*2 + 0xb88]
xor r8d, r8d
cmp r13d, dword [rsp + 0x2c]
jl 0x140242024
mov r8d, r13d
sub r8d, dword [rsp + 0x2c]
movsxd r8, r8d
mov r12, qword [rsp + 0x48]
mov r8d, dword [r12 + r8*4]
movzx r12d, word [r11 + r13*4]
add ebx, r8d
imul ebx, r12d
add dword [rcx + 0x16fc], ebx
cmp qword [rsp + 0x40], 0
je 0x140241fa0
mov rbx, qword [rsp + 0x40]
movzx ebx, word [rbx + r13*4 + 2]
add r8d, ebx
imul r8d, r12d
add dword [rcx + 0x1700], r8d
jmp 0x140241fa0
test r10d, r10d
mov r13, qword [rsp + 0x38]
je 0x1402421e1
mov bl, 1
xor ebp, ebp
jmp 0x1402420b2
dec r8d
mov word [rcx + r12*2 + 0xb88], r8w
movsxd r8, r14d
add word [rcx + r8*2 + 0xb88], 2
dec word [rcx + rdx*2 + 0xb88]
lea r8d, [r10 - 2]
cmp r10d, 2
mov r10d, r8d
jle 0x140242167
mov r12, rdx
jmp 0x1402420cf
movzx r8d, word [rcx + r12*2 + 0xb88]
test r8w, r8w
jne 0x140242080
mov r14, r12
dec r12
nop word cs:[rax + rax]
test bl, bl
je 0x1402420e0
test bl, bl
je 0x1402420e0
movzx r8d, word [0x1403771f8]
cmp edi, 1
mov r13d, 0
sbb r13d, r13d
sub r8d, r15d
and r8d, r13d
nop word cs:[rax + rax]
test bpl, bpl
jne 0x140242122
test r8w, r8w
setne r13b
test bpl, bpl
je 0x140242130
test bl, bl
je 0x140242110
jmp 0x140242115
or r13b, byte [0x1404903d0]
test bpl, bpl
jne 0x140242157
nop dword [rax]
mov r8d, r13d
and r8b, 1
mov byte [0x1404903d0], r8b
test bpl, bpl
je 0x1402420c0
mov r8d, r13d
and r8b, 1
mov byte [0x1404903d0], r8b
jmp 0x140242140
test edx, edx
mov r13, qword [rsp + 0x38]
je 0x1402421e1
lea r10, [rcx + 0xba4]
jmp 0x140242187
dec rdx
test edx, edx
je 0x1402421e1
movzx edi, word [rcx + rdx*2 + 0xb88]
test edi, edi
jne 0x1402421a4
jmp 0x140242180
dec edi
je 0x140242180
movsxd r8, r9d
lea rbx, [r10 + r8*4]
nop dword [rax + rax]
movsxd r8, dword [rbx]
dec r9d
add rbx, 0xfffffffffffffffc
cmp r8d, esi
jg 0x1402421b0
movzx ebp, word [r11 + r8*4 + 2]
mov ebx, edx
sub ebx, ebp
je 0x1402421a0
movzx ebp, word [r11 + r8*4]
imul ebx, ebp
add dword [rcx + 0x16fc], ebx
mov word [r11 + r8*4 + 2], dx
jmp 0x1402421a0
movzx edx, word [rcx + 0xb88]
lea r8d, [rdx + rdx]
mov word [rsp + 0x52], r8w
movzx r8d, word [rcx + 0xb8a]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x54], r8w
movzx r8d, word [rcx + 0xb8c]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x56], r8w
movzx r8d, word [rcx + 0xb8e]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x58], r8w
movzx r8d, word [rcx + 0xb90]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x5a], r8w
movzx r8d, word [rcx + 0xb92]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x5c], r8w
movzx r8d, word [rcx + 0xb94]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x5e], r8w
movzx r8d, word [rcx + 0xb96]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x60], r8w
movzx r8d, word [rcx + 0xb98]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x62], r8w
movzx r8d, word [rcx + 0xb9a]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x64], r8w
movzx r8d, word [rcx + 0xb9c]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x66], r8w
movzx r8d, word [rcx + 0xb9e]
lea edx, [r8 + rdx*2]
lea r8d, [rdx + rdx]
mov word [rsp + 0x68], r8w
movzx r8d, word [rcx + 0xba0]
lea edx, [r8 + rdx*2]
add edx, edx
mov word [rsp + 0x6a], dx
add dx, word [rcx + 0xba2]
add edx, edx
mov word [rsp + 0x6c], dx
add dx, word [rcx + 0xba4]
add edx, edx
mov word [rsp + 0x6e], dx
test r13d, r13d
js 0x140242416
inc r13d
xor ecx, ecx
jmp 0x140242340
mov word [rax + rcx*4], si
inc rcx
cmp rcx, r13
je 0x140242416
movzx esi, word [rax + rcx*4 + 2]
test esi, esi
je 0x140242334
movzx edx, word [rsp + rsi*2 + 0x50]
lea r8d, [rdx + 1]
mov word [rsp + rsi*2 + 0x50], r8w
mov r9d, esi
and r9d, 3
xor r10d, r10d
cmp si, 4
jae 0x140242370
jmp 0x1402423e0
mov r11d, esi
not r11d
xor esi, 0xfffc
and r11d, 0xffff0003
or r11d, esi
inc r11d
xor r10d, r10d
nop dword [rax]
mov r8d, edx
and r8d, 1
or r8d, r10d
shl r8d, 2
mov r10d, edx
not r10d
mov esi, edx
xor esi, 2
and r10d, 0x7ffffffd
or r10d, esi
not r10d
mov esi, edx
shr esi, 2
and esi, 1
or esi, r8d
or esi, r10d
mov r8d, edx
shr r8d, 3
and r8d, 1
lea esi, [r8 + rsi*2]
shr edx, 4
lea r10d, [rsi + rsi]
add r11d, 4
jne 0x140242390
test r9d, r9d
je 0x140242330
nop dword [rax]
mov esi, edx
not esi
mov r8d, edx
xor r8d, 1
and esi, 0xfffffffe
or esi, r8d
not esi
or esi, r10d
shr edx, 1
lea r10d, [rsi + rsi]
dec r9d
jne 0x1402423f0
jmp 0x140242330
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1403198b0
nop
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8b, 1
test r8b, r8b
jne 0x140242447
mov r8b, 1
test r8b, r8b
je 0x140242440
jmp 0x140242435
xor r13d, r13d
mov r15d, 0
cmp dword [rsp + 0x28], 0
jle 0x140241f69
mov r9b, 1
xor r14d, r14d
xor ebp, ebp
jmp 0x140242485
and ebp, ebx
or r15d, ebp
add r14d, 2
mov ebp, r15d
cmp r14d, r8d
jge 0x140241f69
test r13b, r13b
jne 0x1402424e0
nop word [rax + rax]
test r9b, r9b
je 0x1402424e0
nop word cs:[rax + rax]
test r13b, r13b
jne 0x1402424a0
movsxd r8, r14d
add r8, qword [rsp + 0x30]
movzx r10d, word [r8]
mov r15d, ebp
not r15d
nop word [rax + rax]
test r9b, r9b
je 0x1402424c0
test r9b, r9b
je 0x1402424c0
mov ebx, r10d
not ebx
and r15d, r10d
test r13b, r13b
mov r8d, dword [rsp + 0x28]
jne 0x140242500
jmp 0x1402424f0
test r9b, r9b
je 0x1402424e0
jmp 0x140242490
test r9b, r9b
jne 0x140242470
nop dword [rax]
test r9b, r9b
je 0x140242500
jmp 0x1402424f0