Function at 0x140002830
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x20], 0xfffffffffffffffe
mov rsi, rcx
mov rax, qword [rdx]
cmp byte [rax], 0x20
jne 0x140002883
mov rcx, qword [rdx + 8]
dec rcx
inc rax
nop dword [rax + rax]
mov qword [rdx], rax
mov qword [rdx + 8], rcx
dec rcx
cmp byte [rax], 0x20
lea rax, [rax + 1]
je 0x140002870
mov dword [rsi + 0xb0], 0
vmovaps ymm0, ymmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f]
vmovups ymmword [rsi + 0x60], ymm0
vmovups ymmword [rsi + 0x80], ymm0
mov qword [rsi + 0xa0], 0
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rsi], ymm0
vmovups ymmword [rsi + 0x20], ymm0
vmovups ymmword [rsi + 0x40], ymm0
mov rdi, qword [rdx]
mov rbx, qword [rdx + 8]
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [rbp - 0x10], xmm0
mov qword [rbp], 0
test rbx, rbx
je 0x1400028fc
mov rcx, rdi
mov edx, 0x20
mov r8, rbx
vzeroupper
call fcn.140050700
test rax, rax
je 0x1400028fc
mov r14, rax
sub r14, rdi
jmp 0x140002903
mov r14, 0xffffffffffffffff
lea r13, [rsi + 0x60]
xor r12d, r12d
lea r15, [rbp - 0x38]
jmp 0x140002917
mov r14, 0xffffffffffffffff
cmp r14, 0xffffffffffffffff
je 0x1400029b2
mov rax, rbx
sub rax, r12
jb 0x140003066
mov rcx, r14
sub rcx, r12
cmp rax, rcx
cmovb rcx, rax
add r12, rdi
mov qword [rbp - 0x38], r12
mov qword [rbp - 0x30], rcx
mov rdx, qword [rbp - 8]
cmp rdx, qword [rbp]
je 0x140002970
mov rax, qword [rbp - 0x38]
mov qword [rdx], rax
mov rax, qword [rbp - 0x30]
mov qword [rdx + 8], rax
add rdx, 0x10
mov qword [rbp - 8], rdx
jmp 0x14000297f
lea rcx, [rbp - 0x10]
mov r8, r15
vzeroupper
call fcn.140004c50
mov r12, r14
inc r12
mov r8, rbx
sub r8, r12
jbe 0x140002910
lea rcx, [rdi + r12]
mov edx, 0x20
vzeroupper
call fcn.140050700
mov r14, rax
sub r14, rdi
test rax, rax
jne 0x140002917
jmp 0x140002910
sub rbx, r12
jb 0x14000306e
add rdi, r12
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x30], rbx
mov rdx, qword [rbp - 8]
cmp rdx, qword [rbp]
je 0x1400029e9
mov rax, qword [rbp - 0x38]
mov qword [rdx], rax
mov rax, qword [rbp - 0x30]
mov qword [rdx + 8], rax
add rdx, 0x10
mov qword [rbp - 8], rdx
jmp 0x1400029fd
lea rcx, [rbp - 0x10]
lea r8, [rbp - 0x38]
vzeroupper
call fcn.140004c50
mov rdx, qword [rbp - 8]
mov rdi, qword [rbp - 0x10]
mov r9, qword [rdi]
mov r10, qword [rdi + 8]
mov r15, qword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
mov rax, qword [rdi + 0x20]
mov rcx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x30]
mov r11, qword [rdi + 0x38]
sub rdx, rdi
cmp rdx, 0x41
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x58], r8
mov qword [rbp - 0x50], r11
jb 0x140002ada
mov qword [rbp - 0x40], r15
mov rbx, qword [rdi + 0x40]
mov r14, qword [rdi + 0x48]
lea r15, [rbx + r14]
test r14, r14
mov qword [rbp - 0x20], rbx
je 0x140002aec
xor r8d, r8d
cmp byte [rbx], 0x2d
sete r8b
lea r11, [rbx + r8]
mov qword [rbp - 0x18], r15
cmp r11, r15
je 0x140002af6
mov qword [rbp + 0x10], r12
mov r15d, r8d
add r15d, 7
mov qword [rbp - 0x48], r8
sub r14, r8
mov dword [rbp + 0x18], 0
lea r12, [0x14005edf0]
xor ebx, ebx
jmp 0x140002aaf
lea edi, [rbx + rbx*4]
lea ebx, [r8 + rdi*2]
inc r11
dec r14
je 0x140002b15
movzx r8d, byte [r11]
lea rdi, [r8 - 0x30]
cmp rdi, 9
ja 0x140002b04
movzx r8d, byte [r8 + r12]
cmp ebx, 0xccccccc
jb 0x140002aa0
jne 0x140002ad1
cmp r15d, r8d
jae 0x140002aa0
mov r8b, 1
mov dword [rbp + 0x18], r8d
jmp 0x140002aa7
mov dword [rsi + 0xac], 0
xor r8d, r8d
jmp 0x140002c44
xor r11d, r11d
xor ebx, ebx
xor r14d, r14d
jmp 0x140002b29
xor ebx, ebx
xor r14d, r14d
mov r11, r8
mov r15, qword [rbp - 0x18]
jmp 0x140002b29
mov r15, r11
mov rdi, qword [rbp - 0x28]
mov r12, qword [rbp + 0x10]
mov r11, qword [rbp - 0x48]
jmp 0x140002b25
mov rdi, qword [rbp - 0x28]
mov r12, qword [rbp + 0x10]
mov r11, qword [rbp - 0x48]
mov r15, qword [rbp - 0x18]
mov r14d, dword [rbp + 0x18]
sub r15, qword [rbp - 0x20]
movzx r8d, r11b
cmp r15, r8
je 0x140002b50
and r14b, 1
jne 0x140002b50
mov r8d, ebx
neg r8d
test r11b, r11b
cmove r8d, ebx
mov dword [rsi + 0xac], r8d
xor r8d, r8d
cmp rdx, 0x51
mov r15, qword [rbp - 0x40]
jb 0x140002c44
mov rdx, qword [rdi + 0x50]
mov r14, qword [rdi + 0x58]
lea rdi, [rdx + r14]
test r14, r14
je 0x140002be7
mov qword [rbp + 0x10], r12
xor r11d, r11d
cmp byte [rdx], 0x2d
sete r11b
lea r12, [rdx + r11]
cmp r12, rdi
je 0x140002bf1
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x20], rdx
mov r15d, r11d
add r15d, 7
mov qword [rbp + 0x18], r11
sub r14, r11
xor r8d, r8d
lea rdx, [0x14005edf0]
xor ebx, ebx
jmp 0x140002bbf
lea edi, [rbx + rbx*4]
lea ebx, [r11 + rdi*2]
inc r12
dec r14
je 0x140002c11
movzx r11d, byte [r12]
lea rdi, [r11 - 0x30]
cmp rdi, 9
ja 0x140002bfc
movzx r11d, byte [r11 + rdx]
cmp ebx, 0xccccccc
jb 0x140002bb0
jne 0x140002be2
cmp r15d, r11d
jae 0x140002bb0
mov r8b, 1
jmp 0x140002bb7
xor r11d, r11d
xor ebx, ebx
xor r8d, r8d
jmp 0x140002c25
xor ebx, ebx
xor r8d, r8d
mov r12, qword [rbp + 0x10]
jmp 0x140002c25
mov rdi, r12
mov r15, qword [rbp - 0x40]
mov r12, qword [rbp + 0x10]
mov r11, qword [rbp + 0x18]
mov rdx, qword [rbp - 0x20]
jmp 0x140002c25
mov r15, qword [rbp - 0x40]
mov r12, qword [rbp + 0x10]
mov r11, qword [rbp + 0x18]
mov rdx, qword [rbp - 0x20]
mov rdi, qword [rbp - 0x18]
sub rdi, rdx
movzx edx, r11b
cmp rdi, rdx
je 0x140002c4b
and r8b, 1
jne 0x140002c4b
mov r8d, ebx
neg r8d
test r11b, r11b
cmove r8d, ebx
mov dword [rsi + 0xb0], r8d
cmp r12, 1
jne 0x140002c6c
cmp byte [r15], 0x77
setne byte [rbp + 0x18]
setne byte [rsi + 0xa8]
jne 0x140002c77
test r10, r10
jne 0x140002c86
jmp 0x140002d56
mov byte [rsi + 0xa8], 1
mov byte [rbp + 0x18], 1
inc dword [rsi + 0xb0]
test r10, r10
je 0x140002d56
mov bl, 0x38
xor r14d, r14d
lea r15, [0x140003168]
mov r12d, 1
jmp 0x140002cda
xor r11d, r11d
nop dword [rax]
movzx edx, bl
mov byte [r13 + rdx], r11b
xor edi, edi
mov r8d, r11d
movzx r8d, r8b
lea r11, [rdi + rdi*2]
shl r11, 4
add r11, rsi
shlx rdx, r12, rdx
or qword [r11 + r8*8], rdx
or qword [rsi + 0xa0], rdx
inc bl
inc r14
cmp r10, r14
je 0x140002d56
movzx edx, byte [r9 + r14]
lea edi, [rdx - 0x2f]
cmp edi, 0x43
ja case.0x140002cf4.48
mov r8b, 6
mov r11b, 1
movsxd rdi, dword [r15 + rdi*4]
add rdi, r15
jmp rdi
add bl, 0xf0
jmp 0x140002cce
mov r8b, 7
jmp case.0x140002cf4.112
mov r8b, 9
jmp case.0x140002cf4.112
mov r11b, 4
jmp case.0x140002cf4.78
mov r8b, 0xa
jmp case.0x140002cf4.112
mov r11b, 5
jmp case.0x140002cf4.78
lea r8d, [rdx - 0x31]
cmp r8b, 7
ja 0x140002cce
add bl, dl
add bl, 0xd0
jmp 0x140002cce
mov r11b, 2
jmp case.0x140002cf4.78
mov r11b, 3
jmp case.0x140002cf4.78
mov r8b, 0xb
jmp case.0x140002cf4.112
mov r8b, 8
nop dword [rax]
movzx edx, bl
mov byte [r13 + rdx], r8b
add r8b, 0xfa
mov edi, 1
jmp 0x140002cad
mov r8, qword [rbp - 0x58]
movzx edx, byte [r8]
cmp qword [rbp - 0x50], 1
jne 0x140002d6d
mov r9b, 0x40
cmp dl, 0x2d
je 0x140002d7f
movzx r8d, byte [r8 + 1]
shl r8b, 3
add dl, r8b
add dl, 0x17
mov r9d, edx
mov byte [rsi + 0xaa], r9b
mov byte [rsi + 0xa9], 0
test rcx, rcx
je 0x140002de0
xor r10d, r10d
lea r11, [0x140003278]
xor r8d, r8d
mov r14, qword [rbp - 0x28]
jmp 0x140002db9
mov dl, 2
or r8b, dl
mov byte [rsi + 0xa9], r8b
inc r10
cmp rcx, r10
je 0x140002de7
movsx edx, byte [rax + r10]
lea edi, [rdx - 0x4b]
cmp edi, 0x26
ja case.default.0x140002dcf
mov dl, 1
movsxd rdi, dword [r11 + rdi*4]
add rdi, r11
jmp rdi
mov dl, 4
jmp case.0x140002dcf.75
mov dl, 8
jmp case.0x140002dcf.75
cmp edx, 0x2d
jne case.0x140002dcf.76
jmp 0x140002de7
xor r8d, r8d
mov r14, qword [rbp - 0x28]
vmovdqu ymm0, ymmword [rsi]
vpor ymm0, ymm0, ymmword [rsi + 0x20]
vextracti128 xmm1, ymm0, 1
vpor xmm0, xmm0, xmm1
vpshufd xmm1, xmm0, 0xee
vpor xmm0, xmm0, xmm1
vmovq rax, xmm0
vmovdqu xmm0, xmmword [rsi + 0x40]
vpor xmm0, xmm0, xmmword [rsi + 0x50]
vpshufd xmm1, xmm0, 0xee
vpor xmm0, xmm0, xmm1
vmovq rcx, xmm0
or rcx, rax
mov qword [rsi + 0xa0], rcx
vmovdqu xmm0, xmmword [rsi]
vpor xmm0, xmm0, xmmword [rsi + 0x10]
vpshufd xmm1, xmm0, 0xee
vpor xmm0, xmm0, xmm1
vmovq r10, xmm0
or r10, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x38]
or rcx, qword [rsi + 0x30]
or rcx, qword [rsi + 0x40]
or rcx, qword [rsi + 0x48]
or rcx, qword [rsi + 0x50]
or rcx, qword [rsi + 0x58]
or r10, qword [rsi + 0x28]
je 0x140002ef2
xor eax, eax
lea rdx, [0x1400622c0]
lea r11, str.Amw3_9
nop word [rax + rax]
xor edi, edi
tzcnt rdi, r10
movzx ebx, byte [r13 + rdi]
movsxd rbx, dword [rdx + rbx*4]
shl rbx, 9
shl rdi, 3
or rdi, rbx
xor rax, qword [rdi + r11]
blsr r10, r10
jne 0x140002e80
test rcx, rcx
je 0x140002ef9
lea rdx, [0x1400622c0]
lea r10, str.Amw3_9
movzx ebx, byte [rbp + 0x18]
nop
xor r11d, r11d
tzcnt r11, rcx
movzx edi, byte [r13 + r11]
movsxd rdi, dword [rdx + rdi*4]
shl rdi, 9
shl r11, 3
or r11, rdi
xor rax, qword [r11 + r10]
blsr rcx, rcx
jne 0x140002ec0
cmp r9b, 0x40
jne 0x140002f03
xor ecx, ecx
jmp 0x140002f21
xor eax, eax
test rcx, rcx
jne 0x140002eac
movzx ebx, byte [rbp + 0x18]
cmp r9b, 0x40
je 0x140002eee
movzx ecx, r9b
lea rdx, [0x1400608d0]
movsxd rcx, dword [rdx + rcx*4]
lea rdx, str.Amw3_9
mov rcx, qword [rdx + rcx*8 + 0x1820]
xor edx, edx
test bl, bl
movabs r9, 0xf8d626aaaf278509
cmovne r9, rdx
xor rax, r9
xor rax, rcx
lea ecx, [r8*8]
and cl, 8
and r8b, 7
or r8b, cl
movzx ecx, r8b
lea rdx, [0x140062240]
xor rax, qword [rdx + rcx*8]
mov qword [rsi + 0xb8], rax
mov rax, qword [rsi + 0xc0]
cmp rax, qword [rsi + 0xc8]
je 0x140002f78
mov qword [rsi + 0xc8], rax
mov rcx, qword [rsi + 0xd0]
sub rcx, rax
cmp rcx, 0xfff
ja 0x140003020
mov ecx, 0x1027
vzeroupper
call fcn.140028be4
mov rbx, rax
add rbx, 0x27
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
mov rdx, qword [rsi + 0xc0]
mov r8, qword [rsi + 0xc8]
sub r8, rdx
mov rcx, rbx
call fcn.1400508a0
mov rcx, qword [rsi + 0xc0]
test rcx, rcx
je 0x140003004
mov rdx, qword [rsi + 0xd0]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140002fff
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14000307e
add rdx, 0x27
mov rcx, rax
call fcn.140028c28
mov qword [rsi + 0xc0], rbx
mov qword [rsi + 0xc8], rbx
add rbx, 0x1000
mov qword [rsi + 0xd0], rbx
mov rdx, qword [rbp]
sub rdx, r14
cmp rdx, 0x1000
jb 0x140003048
mov rax, qword [r14 - 8]
add r14, 0xfffffffffffffff8
sub r14, rax
cmp r14, 0x20
jae 0x140003076
add rdx, 0x27
mov r14, rax
mov rcx, r14
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
vzeroupper
jmp fcn.140028c28
vzeroupper
call fcn.140004c30
vzeroupper
call fcn.140004c30
vzeroupper
call fcn.140032634
call fcn.140032634
int3