Function at 0x1404347c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
vmovaps xmmword [rsp + 0x90], xmm6
mov rax, qword [0x1405b8180]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov r13d, 0xfffffff3
test byte [rcx + 0xa8], 0x10
jne 0x140435122
mov rdi, r9
mov r15, r8
mov r14, rdx
mov rsi, rcx
mov rax, qword [rsp + 0x110]
cmp qword [rcx + 0x30], 0
je 0x140434837
cmp rax, r15
jb 0x140435122
mov rax, qword [rsi + 0x38]
add rax, r15
cmp rax, qword [rsi + 0x20]
jbe 0x140434840
jmp 0x140435122
cmp rax, r15
jb 0x140435122
mov rax, qword [rsp + 0x118]
mov qword [rax], r15
test r15, r15
je 0x1404350e9
lea rbx, [rsi + 0x48]
lea rax, [rsi + 0x10]
mov qword [rsp + 0x38], rax
lea rax, [rsi + 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rsi + 3]
mov qword [rsp + 0x48], rax
vxorps xmm6, xmm6, xmm6
mov qword [rsp + 0x28], rbx
jmp 0x14043488f
add r14, rbp
add rdi, rbp
sub r15, rbp
je 0x1404350e9
mov rax, qword [rsi + 0x38]
mov r12d, eax
and r12d, 0xf
mov ebp, 0x10
sub rbp, r12
cmp rbp, r15
cmovae rbp, r15
add rax, rbp
mov qword [rsi + 0x38], rax
mov eax, dword [rsi + 0x44]
mov ecx, eax
or ecx, 2
cmp ecx, 3
jne 0x140434c03
lea rcx, [rsi + r12]
cmp rbp, 7
ja 0x1404348d0
xor eax, eax
jmp 0x1404348ee
mov rax, qword [r14]
xor qword [rcx], rax
mov eax, 8
cmp rbp, 0x10
jb 0x1404348ee
mov rax, qword [r14 + 8]
xor qword [rcx + 8], rax
mov eax, 0x10
mov rdx, rbp
sub rdx, rax
jbe 0x140434a7f
cmp rdx, 0x10
jb 0x140434a10
lea r11, [rax + r12]
lea r8, [rsi + r11]
lea r9, [r14 + rax]
lea r10, [r14 + rbp]
cmp r8, r10
jae 0x140434929
lea r10, [r12 + rbp]
add r10, rsi
cmp r9, r10
jb 0x140434a10
cmp rdx, 0x80
jae 0x14043493a
xor r10d, r10d
jmp 0x1404349d1
mov rbx, r15
mov r10, rdx
and r10, 0xffffffffffffff80
add r11, qword [rsp + 0x30]
lea r13, [r14 + rax]
add r13, 0x60
xor r15d, r15d
nop word cs:[rax + rax]
vmovups ymm0, ymmword [r13 + r15 - 0x60]
vmovups ymm1, ymmword [r13 + r15 - 0x40]
vmovups ymm2, ymmword [r13 + r15 - 0x20]
vmovups ymm3, ymmword [r13 + r15]
vxorps ymm0, ymm0, ymmword [r11 + r15 - 0x60]
vxorps ymm1, ymm1, ymmword [r11 + r15 - 0x40]
vxorps ymm2, ymm2, ymmword [r11 + r15 - 0x20]
vxorps ymm3, ymm3, ymmword [r11 + r15]
vmovups ymmword [r11 + r15 - 0x60], ymm0
vmovups ymmword [r11 + r15 - 0x40], ymm1
vmovups ymmword [r11 + r15 - 0x20], ymm2
vmovups ymmword [r11 + r15], ymm3
sub r15, 0xffffffffffffff80
cmp r10, r15
jne 0x140434960
cmp rdx, r10
mov r15, rbx
mov rbx, qword [rsp + 0x28]
je 0x140434a7f
test dl, 0x70
je 0x140434a02
mov r11, rdx
and r11, 0xfffffffffffffff0
add rax, r11
nop dword [rax + rax]
vmovups xmm0, xmmword [r9 + r10]
vxorps xmm0, xmm0, xmmword [r8 + r10]
vmovups xmmword [r8 + r10], xmm0
add r10, 0x10
cmp r11, r10
jne 0x1404349e0
cmp rdx, r11
jne 0x140434a10
jmp 0x140434a7f
add rax, r10
nop word cs:[rax + rax]
mov r8d, ebp
sub r8d, eax
mov rdx, rax
not rdx
add rdx, rbp
and r8, 3
je 0x140434a41
nop word cs:[rax + rax]
movzx r9d, byte [r14 + rax]
xor byte [rcx + rax], r9b
inc rax
dec r8
jne 0x140434a30
cmp rdx, 3
jb 0x140434a7f
mov rcx, qword [rsp + 0x48]
add rcx, r12
nop
movzx edx, byte [r14 + rax]
xor byte [rcx + rax - 3], dl
movzx edx, byte [r14 + rax + 1]
xor byte [rcx + rax - 2], dl
movzx edx, byte [r14 + rax + 2]
xor byte [rcx + rax - 1], dl
movzx edx, byte [r14 + rax + 3]
xor byte [rcx + rax], dl
add rax, 4
cmp rbp, rax
jne 0x140434a50
lea rax, [r12 + rbp]
cmp rax, 0x10
je 0x140434a93
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x140434abc
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, rsi
mov r9, rsi
vzeroupper
call fcn.14042d350
test eax, eax
jne 0x140435109
mov qword [rsp + 0x58], 0
vmovaps xmmword [rsp + 0x70], xmm6
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, qword [rsp + 0x38]
lea r9, [rsp + 0x70]
vzeroupper
call fcn.14042d350
test eax, eax
jne 0x1404350ee
lea rax, [rsp + r12]
add rax, 0x70
cmp rbp, 7
ja 0x140434b10
xor edx, edx
jmp 0x140434b35
mov rcx, qword [rax]
xor rcx, qword [r14]
mov qword [rdi], rcx
mov edx, 8
cmp rbp, 0x10
jb 0x140434b35
mov rcx, qword [rax + 8]
xor rcx, qword [r14 + 8]
mov qword [rdi + 8], rcx
mov edx, 0x10
mov r8, rbp
sub r8, rdx
jbe 0x140434bee
cmp r8, 0x10
jb 0x140434b62
lea r9, [rdx + rdi]
lea r10, [rdx + r14]
mov rcx, r9
sub rcx, r10
cmp rcx, 0x80
jae 0x140434cc3
mov rcx, rdx
mov r8d, ebp
sub r8d, ecx
mov rdx, rcx
not rdx
add rdx, rbp
and r8, 3
je 0x140434b95
nop word [rax + rax]
movzx r9d, byte [rax + rcx]
xor r9b, byte [r14 + rcx]
mov byte [rdi + rcx], r9b
inc rcx
dec r8
jne 0x140434b80
cmp rdx, 3
jb 0x140434bee
lea rax, [rsp + 0x73]
add rax, r12
nop word cs:[rax + rax]
movzx edx, byte [rax + rcx - 3]
xor dl, byte [r14 + rcx]
mov byte [rdi + rcx], dl
movzx edx, byte [rax + rcx - 2]
xor dl, byte [r14 + rcx + 1]
mov byte [rdi + rcx + 1], dl
movzx edx, byte [rax + rcx - 1]
xor dl, byte [r14 + rcx + 2]
mov byte [rdi + rcx + 2], dl
movzx edx, byte [rax + rcx]
xor dl, byte [r14 + rcx + 3]
mov byte [rdi + rcx + 3], dl
add rcx, 4
cmp rbp, rcx
jne 0x140434bb0
mov edx, 0x10
lea rcx, [rsp + 0x70]
vzeroupper
call fcn.14042e7d0
mov eax, dword [rsi + 0x44]
test eax, 0xfffffffd
jne 0x140434c60
mov qword [rsp + 0x58], 0
vmovaps xmmword [rsp + 0x70], xmm6
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, qword [rsp + 0x38]
lea r9, [rsp + 0x70]
call fcn.14042d350
test eax, eax
jne 0x1404350ee
lea rax, [rsp + r12]
add rax, 0x70
cmp rbp, 7
ja 0x140434c70
xor ecx, ecx
jmp 0x140434c98
add r12, rbp
jmp 0x14043509a
mov rcx, qword [rax]
xor rcx, qword [r14]
mov qword [rsp + 0x60], rcx
mov ecx, 8
cmp rbp, 0x10
jb 0x140434c98
mov rcx, qword [rax + 8]
xor rcx, qword [r14 + 8]
mov qword [rsp + 0x68], rcx
mov ecx, 0x10
mov rdx, rbp
sub rdx, rcx
jbe 0x140434ef6
cmp rdx, 0x10
jae 0x140434cb2
mov r9, rcx
jmp 0x140434ee0
cmp rdx, 0x80
jae 0x140434cd8
xor r8d, r8d
jmp 0x140434d81
cmp r8, 0x80
jae 0x140434dde
xor r11d, r11d
jmp 0x140434e84
mov r8, rdx
and r8, 0xffffffffffffff80
lea r9, [r14 + rcx]
add r9, 0x60
lea r10, [rcx + r12]
lea r11, [rsp + 0xd0]
add r10, r11
lea r11, [rsp + 0xc0]
add r11, rcx
xor ebx, ebx
nop word cs:[rax + rax]
vmovups ymm0, ymmword [r10 + rbx - 0x60]
vmovups ymm1, ymmword [r10 + rbx - 0x40]
vmovups ymm2, ymmword [r10 + rbx - 0x20]
vmovups ymm3, ymmword [r10 + rbx]
vxorps ymm0, ymm0, ymmword [r9 + rbx - 0x60]
vxorps ymm1, ymm1, ymmword [r9 + rbx - 0x40]
vxorps ymm2, ymm2, ymmword [r9 + rbx - 0x20]
vxorps ymm3, ymm3, ymmword [r9 + rbx]
vmovups ymmword [r11 + rbx - 0x60], ymm0
vmovups ymmword [r11 + rbx - 0x40], ymm1
vmovups ymmword [r11 + rbx - 0x20], ymm2
vmovups ymmword [r11 + rbx], ymm3
sub rbx, 0xffffffffffffff80
cmp r8, rbx
jne 0x140434d10
cmp rdx, r8
mov rbx, qword [rsp + 0x28]
je 0x140434ef6
test dl, 0x70
je 0x140434ece
mov r10, rdx
and r10, 0xfffffffffffffff0
lea r9, [rcx + r10]
lea r11, [r14 + rcx]
lea rbx, [rcx + r12]
add rbx, rsp
add rbx, 0x70
add rcx, rsp
add rcx, 0x60
nop word cs:[rax + rax]
vmovups xmm0, xmmword [rbx + r8]
vxorps xmm0, xmm0, xmmword [r11 + r8]
vmovups xmmword [rcx + r8], xmm0
add r8, 0x10
cmp r10, r8
jne 0x140434db0
cmp rdx, r10
mov rbx, qword [rsp + 0x28]
jne 0x140434ee0
jmp 0x140434ef6
mov qword [rsp + 0x40], r15
mov r11, r8
and r11, 0xffffffffffffff80
lea rcx, [r14 + rdx]
add rcx, 0x60
lea r13, [rdx + r12]
lea rbx, [rsp + 0xd0]
add r13, rbx
lea r15, [rdi + rdx]
add r15, 0x60
xor ebx, ebx
nop dword [rax + rax]
vmovups ymm0, ymmword [r13 + rbx - 0x60]
vmovups ymm1, ymmword [r13 + rbx - 0x40]
vmovups ymm2, ymmword [r13 + rbx - 0x20]
vmovups ymm3, ymmword [r13 + rbx]
vxorps ymm0, ymm0, ymmword [rcx + rbx - 0x60]
vxorps ymm1, ymm1, ymmword [rcx + rbx - 0x40]
vxorps ymm2, ymm2, ymmword [rcx + rbx - 0x20]
vxorps ymm3, ymm3, ymmword [rcx + rbx]
vmovups ymmword [r15 + rbx - 0x60], ymm0
vmovups ymmword [r15 + rbx - 0x40], ymm1
vmovups ymmword [r15 + rbx - 0x20], ymm2
vmovups ymmword [r15 + rbx], ymm3
sub rbx, 0xffffffffffffff80
cmp r11, rbx
jne 0x140434e10
cmp r8, r11
mov r15, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x28]
je 0x140434bee
test r8b, 0x70
je 0x1404350e1
mov rbx, r8
and rbx, 0xfffffffffffffff0
lea rcx, [rdx + rbx]
add rdx, r12
add rdx, rsp
add rdx, 0x70
nop dword [rax]
vmovups xmm0, xmmword [rdx + r11]
vxorps xmm0, xmm0, xmmword [r10 + r11]
vmovups xmmword [r9 + r11], xmm0
add r11, 0x10
cmp rbx, r11
jne 0x140434ea0
cmp r8, rbx
mov rbx, qword [rsp + 0x28]
jne 0x140434b65
jmp 0x140434bee
add rcx, r8
mov r9, rcx
nop word cs:[rax + rax]
movzx ecx, byte [rax + r9]
xor cl, byte [r14 + r9]
mov byte [rsp + r9 + 0x60], cl
inc r9
cmp rbp, r9
jne 0x140434ee0
mov edx, 0x10
lea rcx, [rsp + 0x70]
vzeroupper
call fcn.14042e7d0
lea rax, [rsi + r12]
cmp rbp, 7
ja 0x140434f20
xor ecx, ecx
jmp 0x140434f41
mov rcx, qword [rsp + 0x60]
xor qword [rax], rcx
mov ecx, 8
cmp rbp, 0x10
jb 0x140434f41
mov rcx, qword [rsp + 0x68]
xor qword [rax + 8], rcx
mov ecx, 0x10
mov rdx, rbp
sub rdx, rcx
jbe 0x140435052
cmp rdx, 0x10
jae 0x140434f5b
mov r9, rcx
jmp 0x140435040
cmp rdx, 0x80
jae 0x140434f6c
xor r8d, r8d
jmp 0x140434ff4
mov r8, rdx
and r8, 0xffffffffffffff80
lea r9, [rcx + r12]
add r9, qword [rsp + 0x30]
lea r10, [rsp + 0xc0]
add r10, rcx
xor r11d, r11d
nop word [rax + rax]
vmovups ymm0, ymmword [r10 + r11 - 0x60]
vmovups ymm1, ymmword [r10 + r11 - 0x40]
vmovups ymm2, ymmword [r10 + r11 - 0x20]
vmovups ymm3, ymmword [r10 + r11]
vxorps ymm0, ymm0, ymmword [r9 + r11 - 0x60]
vxorps ymm1, ymm1, ymmword [r9 + r11 - 0x40]
vxorps ymm2, ymm2, ymmword [r9 + r11 - 0x20]
vxorps ymm3, ymm3, ymmword [r9 + r11]
vmovups ymmword [r9 + r11 - 0x60], ymm0
vmovups ymmword [r9 + r11 - 0x40], ymm1
vmovups ymmword [r9 + r11 - 0x20], ymm2
vmovups ymmword [r9 + r11], ymm3
sub r11, 0xffffffffffffff80
cmp r8, r11
jne 0x140434f90
cmp rdx, r8
je 0x140435052
test dl, 0x70
je 0x140435032
mov r10, rdx
and r10, 0xfffffffffffffff0
lea r9, [rcx + r10]
lea r11, [rcx + r12]
add r11, rsi
add rcx, rsp
add rcx, 0x60
nop dword [rax]
vmovups xmm0, xmmword [rcx + r8]
vxorps xmm0, xmm0, xmmword [r11 + r8]
vmovups xmmword [r11 + r8], xmm0
add r8, 0x10
cmp r10, r8
jne 0x140435010
cmp rdx, r10
jne 0x140435040
jmp 0x140435052
add rcx, r8
mov r9, rcx
nop dword [rax + rax]
movzx ecx, byte [rsp + r9 + 0x60]
xor byte [rax + r9], cl
inc r9
cmp rbp, r9
jne 0x140435040
mov rcx, rdi
lea rdx, [rsp + 0x60]
mov r8, rbp
vzeroupper
call fcn.140464fe0
add r12, rbp
cmp r12, 0x10
je 0x140435078
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x1404350a0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, rsi
mov r9, rsi
call fcn.14042d350
test eax, eax
jne 0x140435109
cmp r12, 0x10
je 0x1404350ae
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x140434880
cmp dword [rsi + 0x40], 0
je 0x140434880
xor eax, eax
nop word [rax + rax]
movsxd rcx, eax
mov rdx, rsi
sub rdx, rcx
inc byte [rdx + 0x1f]
jne 0x140434880
inc eax
movzx eax, al
cmp dword [rsi + 0x40], eax
ja 0x1404350c0
jmp 0x140434880
add rdx, r11
jmp 0x140434b62
xor r13d, r13d
jmp 0x140435113
mov r13d, eax
or byte [rsi + 0xa8], 0x10
lea rcx, [rsp + 0x70]
mov edx, 0x10
call fcn.14042e7d0
jmp 0x140435113
mov r13d, eax
or byte [rsi + 0xa8], 0x10
lea rcx, [rsp + 0x60]
mov edx, 0x10
call fcn.14042e7d0
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.14043bf40
mov eax, r13d
vmovaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret