Function at 0x1402d6ba0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x360
mov rax, qword [0x14040f040]
xor rax, rsp
mov qword [rsp + 0x350], rax
mov rdi, r9
movzx r13d, dl
mov byte [rsp + 0x20], dl
mov r15, rcx
mov rsi, qword [rsp + 0x3c8]
mov r14, qword [rsp + 0x3d8]
mov qword [rsp + 0x28], r14
mov rbx, qword [rsp + 0x3e0]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rax
movzx r9d, byte [rbx + 0x16a]
lea r8, str.gcm_process
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.14015be20
nop
mov ebp, dword [rsp + 0x3d0]
test ebp, ebp
je 0x1402d6c7a
test rsi, rsi
jne 0x1402d6c7a
mov rax, qword [rbx]
lea rdx, str.NULL_input.
mov rcx, rbx
call qword [rax + 0x28]
xor bl, bl
lea rcx, [rsp + 0x30]
call fcn.14015bf80
movzx eax, bl
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.140109210
mov rbx, qword [rsp + 0x3a8]
add rsp, 0x360
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, r14
call fcn.14014b850
mov r12d, eax
add eax, ebp
mov dword [rsp + 0x24], eax
lea edx, [rax + 0x20]
mov rcx, r14
call fcn.14014afd0
test al, al
jne 0x1402d6ca6
mov rax, qword [rbx]
lea rdx, str.Unable_to_allocate_GCM_output_buffer.
jmp 0x1402d6c3a
mov edx, r12d
test r13b, r13b
je 0x1402d6cc0
mov r14, rsi
mov rcx, qword [rsp + 0x28]
call fcn.14014b4f0
mov rsi, rax
jmp 0x1402d6ccb
mov rcx, r14
call fcn.14014b4f0
mov r14, rax
movzx r12d, byte [0x140549324]
movsxd rax, dword [rdi + 0x558]
cmp eax, 0x10
ja 0x1402d6c40
mov ecx, dword [rdi + 0x554]
cmp ecx, 1
jne 0x1402d6d96
test eax, eax
je 0x1402d6d49
shl rax, 3
add qword [rdi + 0x560], rax
xor edx, edx
mov r8d, 0x178
lea rcx, [rsp + 0x1d0]
call sub.VCRUNTIME140.dll_memset
lea rcx, [rsp + 0x1d0]
call fcn.14015bee0
nop
lea rdx, [rdi + 0x510]
lea r8, [rsp + 0x1d0]
mov rcx, rdi
call fcn.1402d6900
nop
lea rcx, [rsp + 0x1d0]
call fcn.14015bfd0
lea rcx, [rdi + 0x52f]
mov rdx, 0xfffffffffffffae0
sub rdx, rdi
nop word [rax + rax]
add byte [rcx], 1
jne 0x1402d6d72
dec rcx
lea rax, [rdx + rcx]
cmp rax, 0xc
jge 0x1402d6d60
mov rax, qword [r15]
lea r8, [rdi + 0x540]
lea rdx, [rdi + 0x520]
mov rcx, r15
call qword [rax + 0x20]
mov qword [rdi + 0x554], 2
jmp 0x1402d6d9f
cmp ecx, 2
jne 0x1402d6c40
xor edx, edx
mov r8d, 0x178
lea rcx, [rsp + 0x50]
call sub.VCRUNTIME140.dll_memset
lea rcx, [rsp + 0x50]
call fcn.14015bee0
nop
xor ebx, ebx
cmp dword [rdi + 0x558], ebx
jne 0x1402d73d6
and ebp, 0xfffffff0
test r13b, r13b
je 0x1402d70d2
test r12b, r12b
je 0x1402d703d
test ebp, ebp
je 0x1402d73d6
lea r11, [rdi + 0x510]
mov r12, 0xfffffffffffffae0
sub r12, rdi
nop dword [rax + rax]
lea r9, [rdi + 0x546]
mov r10d, 2
nop dword [rax]
movzx ecx, byte [r14 + rbx + 7]
shl rcx, 8
movzx eax, byte [r14 + rbx + 6]
or rcx, rax
shl rcx, 8
movzx eax, byte [r14 + rbx + 5]
or rcx, rax
shl rcx, 8
movzx eax, byte [r14 + rbx + 4]
or rcx, rax
shl rcx, 8
movzx eax, byte [r14 + rbx + 3]
or rcx, rax
shl rcx, 8
movzx eax, byte [r14 + rbx + 2]
or rcx, rax
shl rcx, 8
movzx eax, byte [r14 + rbx + 1]
or rcx, rax
shl rcx, 8
movzx eax, byte [r14 + rbx]
or rcx, rax
movzx r8d, byte [r9 + 1]
shl r8, 8
movzx eax, byte [r9]
or r8, rax
shl r8, 8
movzx eax, byte [r9 - 1]
or r8, rax
shl r8, 8
movzx eax, byte [r9 - 2]
or r8, rax
shl r8, 8
movzx eax, byte [r9 - 3]
or r8, rax
shl r8, 8
movzx eax, byte [r9 - 4]
or r8, rax
shl r8, 8
movzx eax, byte [r9 - 5]
or r8, rax
shl r8, 8
movzx eax, byte [r9 - 6]
or r8, rax
xor r8, rcx
mov rax, r8
shr rax, 0x38
mov byte [rsi + rbx + 7], al
mov rax, r8
shr rax, 0x30
mov byte [rsi + rbx + 6], al
mov rax, r8
shr rax, 0x28
mov byte [rsi + rbx + 5], al
mov rax, r8
shr rax, 0x20
mov byte [rsi + rbx + 4], al
mov rax, r8
shr rax, 0x18
mov byte [rsi + rbx + 3], al
mov rax, r8
shr rax, 0x10
mov byte [rsi + rbx + 2], al
mov rax, r8
shr rax, 8
mov byte [rsi + rbx + 1], al
mov byte [rsi + rbx], r8b
movzx ecx, byte [r9 - 0x2f]
shl rcx, 8
movzx eax, byte [r9 - 0x30]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 0x31]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 0x32]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 0x33]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 0x34]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 0x35]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 0x36]
or rcx, rax
xor rcx, r8
mov rax, rcx
shr rax, 0x38
mov byte [r9 - 0x2f], al
mov rax, rcx
shr rax, 0x30
mov byte [r9 - 0x30], al
mov rax, rcx
shr rax, 0x28
mov byte [r9 - 0x31], al
mov rax, rcx
shr rax, 0x20
mov byte [r9 - 0x32], al
mov rax, rcx
shr rax, 0x18
mov byte [r9 - 0x33], al
mov rax, rcx
shr rax, 0x10
mov byte [r9 - 0x34], al
mov rax, rcx
shr rax, 8
mov byte [r9 - 0x35], al
mov byte [r9 - 0x36], cl
add ebx, 8
lea r9, [r9 + 8]
sub r10, 1
jne 0x1402d6e10
sub qword [rdi + 0x568], 0xffffffffffffff80
lea r8, [rsp + 0x50]
mov rdx, r11
mov rcx, rdi
call fcn.1402d6900
lea rcx, [rdi + 0x52f]
nop dword [rax]
add byte [rcx], 1
jne 0x1402d7012
dec rcx
lea rax, [r12 + rcx]
cmp rax, 0xc
jge 0x1402d7000
mov rax, qword [r15]
lea r8, [rdi + 0x540]
lea rdx, [rdi + 0x520]
mov rcx, r15
call qword [rax + 0x20]
cmp ebx, ebp
lea r11, [rdi + 0x510]
jb 0x1402d6e00
jmp 0x1402d73d0
test ebp, ebp
je 0x1402d73d6
mov r12, 0xfffffffffffffae0
sub r12, rdi
nop
lea rdx, [rdi + 0x510]
mov r8d, 2
nop dword [rax]
mov rax, qword [rbx + r14]
xor rax, qword [rdx + 0x30]
mov qword [rsi + rbx], rax
xor qword [rdx], rax
add ebx, 8
lea rdx, [rdx + 8]
sub r8, 1
jne 0x1402d7060
sub qword [rdi + 0x568], 0xffffffffffffff80
lea r8, [rsp + 0x50]
lea rdx, [rdi + 0x510]
mov rcx, rdi
call fcn.1402d6900
lea rcx, [rdi + 0x52f]
nop
add byte [rcx], 1
jne 0x1402d70b2
dec rcx
lea rax, [r12 + rcx]
cmp rax, 0xc
jge 0x1402d70a0
mov rax, qword [r15]
lea r8, [rdi + 0x540]
lea rdx, [rdi + 0x520]
mov rcx, r15
call qword [rax + 0x20]
cmp ebx, ebp
jb 0x1402d7050
jmp 0x1402d73d0
test r12b, r12b
je 0x1402d7335
test ebp, ebp
je 0x1402d73d6
lea r11, [rdi + 0x510]
mov r12, 0xfffffffffffffae0
sub r12, rdi
nop dword [rax]
nop dword [rax + rax]
lea r9, [rdi + 0x516]
mov r10d, 2
nop dword [rax]
movzx r8d, byte [rbx + rsi + 7]
shl r8, 8
movzx eax, byte [rbx + rsi + 6]
or r8, rax
shl r8, 8
movzx eax, byte [rbx + rsi + 5]
or r8, rax
shl r8, 8
movzx eax, byte [rbx + rsi + 4]
or r8, rax
shl r8, 8
movzx eax, byte [rbx + rsi + 3]
or r8, rax
shl r8, 8
movzx eax, byte [rbx + rsi + 2]
or r8, rax
shl r8, 8
movzx eax, byte [rbx + rsi + 1]
or r8, rax
shl r8, 8
movzx eax, byte [rbx + rsi]
or r8, rax
movzx ecx, byte [r9 + 1]
shl rcx, 8
movzx eax, byte [r9]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 1]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 2]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 3]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 4]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 5]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 - 6]
or rcx, rax
xor rcx, r8
mov rax, rcx
shr rax, 0x38
mov byte [r9 + 1], al
mov rax, rcx
shr rax, 0x30
mov byte [r9], al
mov rax, rcx
shr rax, 0x28
mov byte [r9 - 1], al
mov rax, rcx
shr rax, 0x20
mov byte [r9 - 2], al
mov rax, rcx
shr rax, 0x18
mov byte [r9 - 3], al
mov rax, rcx
shr rax, 0x10
mov byte [r9 - 4], al
mov rax, rcx
shr rax, 8
mov byte [r9 - 5], al
mov byte [r9 - 6], cl
movzx ecx, byte [r9 + 0x31]
shl rcx, 8
movzx eax, byte [r9 + 0x30]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 + 0x2f]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 + 0x2e]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 + 0x2d]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 + 0x2c]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 + 0x2b]
or rcx, rax
shl rcx, 8
movzx eax, byte [r9 + 0x2a]
or rcx, rax
xor r8, rcx
mov rax, r8
shr rax, 0x38
mov byte [r14 + rbx + 7], al
mov rax, r8
shr rax, 0x30
mov byte [r14 + rbx + 6], al
mov rax, r8
shr rax, 0x28
mov byte [r14 + rbx + 5], al
mov rax, r8
shr rax, 0x20
mov byte [r14 + rbx + 4], al
mov rax, r8
shr rax, 0x18
mov byte [r14 + rbx + 3], al
mov rax, r8
shr rax, 0x10
mov byte [r14 + rbx + 2], al
mov rax, r8
shr rax, 8
mov byte [r14 + rbx + 1], al
mov byte [r14 + rbx], r8b
add ebx, 8
lea r9, [r9 + 8]
sub r10, 1
jne 0x1402d7110
sub qword [rdi + 0x568], 0xffffffffffffff80
lea r8, [rsp + 0x50]
mov rdx, r11
mov rcx, rdi
call fcn.1402d6900
lea rcx, [rdi + 0x52f]
add byte [rcx], 1
jne 0x1402d730a
dec rcx
lea rax, [r12 + rcx]
cmp rax, 0xc
jge 0x1402d72f8
mov rax, qword [r15]
lea r8, [rdi + 0x540]
lea rdx, [rdi + 0x520]
mov rcx, r15
call qword [rax + 0x20]
cmp ebx, ebp
lea r11, [rdi + 0x510]
jb 0x1402d7100
jmp 0x1402d73d0
test ebp, ebp
je 0x1402d73d6
mov r12, 0xfffffffffffffae0
sub r12, rdi
nop word [rax + rax]
lea rdx, [rdi + 0x510]
mov r8d, 2
nop dword [rax]
mov rax, qword [rbx + rsi]
xor qword [rdx], rax
mov rax, qword [rdx + 0x30]
xor rax, qword [rbx + rsi]
mov qword [r14 + rbx], rax
add ebx, 8
lea rdx, [rdx + 8]
sub r8, 1
jne 0x1402d7360
sub qword [rdi + 0x568], 0xffffffffffffff80
lea r8, [rsp + 0x50]
lea rdx, [rdi + 0x510]
mov rcx, rdi
call fcn.1402d6900
lea rcx, [rdi + 0x52f]
add byte [rcx], 1
jne 0x1402d73b5
dec rcx
lea rax, [r12 + rcx]
cmp rax, 0xc
jge 0x1402d73a3
mov rax, qword [r15]
lea r8, [rdi + 0x540]
lea rdx, [rdi + 0x520]
mov rcx, r15
call qword [rax + 0x20]
cmp ebx, ebp
jb 0x1402d7350
movzx r13d, byte [rsp + 0x20]
mov r12d, dword [rsp + 0x3d0]
cmp ebx, r12d
jae 0x1402d74af
mov ebp, ebx
add rbp, r14
sub rsi, r14
sub r12d, ebx
mov ebx, r12d
mov eax, dword [rdi + 0x558]
cmp eax, 0x10
jne 0x1402d7465
sub qword [rdi + 0x568], 0xffffffffffffff80
lea rdx, [rdi + 0x510]
lea r8, [rsp + 0x50]
mov rcx, rdi
call fcn.1402d6900
lea rcx, [rdi + 0x52f]
mov rdx, 0xfffffffffffffae0
sub rdx, rdi
nop dword [rax]
add byte [rcx], 1
jne 0x1402d7442
dec rcx
lea rax, [rdx + rcx]
cmp rax, 0xc
jge 0x1402d7430
mov rax, qword [r15]
lea r8, [rdi + 0x540]
lea rdx, [rdi + 0x520]
mov rcx, r15
call qword [rax + 0x20]
mov dword [rdi + 0x558], 0
xor eax, eax
movsxd rdx, eax
test r13b, r13b
je 0x1402d747d
movzx ecx, byte [rbp]
xor cl, byte [rdx + rdi + 0x540]
mov byte [rsi + rbp], cl
jmp 0x1402d748e
movzx ecx, byte [rsi + rbp]
movzx eax, cl
xor al, byte [rdx + rdi + 0x540]
mov byte [rbp], al
movsxd rax, dword [rdi + 0x558]
xor byte [rax + rdi + 0x510], cl
inc dword [rdi + 0x558]
inc rbp
sub rbx, 1
jne 0x1402d73f5
mov edx, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x28]
call fcn.14014d590
mov bl, 1
lea rcx, [rsp + 0x50]
call fcn.14015bfd0
jmp 0x1402d6c42