Function at 0x62da0d60
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
test rcx, rcx
mov rbx, rcx
mov rsi, rdx
je 0x62da15fd
test r8d, r8d
je 0x62da0d89
test rdx, rdx
je 0x62da148f
cmp dword [rbx + 0x10fc], 0x10
jbe 0x62da0da4
mov eax, 0x10
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov ecx, dword [rbx + 0x10f0]
mov dword [rsp + 0x28], r8d
call fcn.62d9e130
test eax, eax
jne 0x62da0d97
mov edx, dword [rbx + 0x10f8]
mov r8d, dword [rsp + 0x28]
test edx, edx
jne 0x62da1440
movsxd rdi, dword [rbx + 0x10fc]
test edi, edi
je 0x62da1470
mov ebp, dword [rbx + 0x10f4]
test ebp, ebp
jne 0x62da0ded
cmp edi, 0xc
je 0x62da14b0
movzx r11d, byte [rbx + 0x10e0]
xor byte [rbx + 0x10b0], r11b
cmp edi, 1
je 0x62da0f42
movzx r13d, byte [rbx + 0x10e1]
xor byte [rbx + 0x10b1], r13b
cmp edi, 2
je 0x62da0f42
movzx edx, byte [rbx + 0x10e2]
xor byte [rbx + 0x10b2], dl
cmp edi, 3
je 0x62da0f42
movzx ecx, byte [rbx + 0x10e3]
xor byte [rbx + 0x10b3], cl
cmp edi, 4
je 0x62da0f42
movzx ebp, byte [rbx + 0x10e4]
xor byte [rbx + 0x10b4], bpl
cmp edi, 5
je 0x62da0f42
movzx r12d, byte [rbx + 0x10e5]
xor byte [rbx + 0x10b5], r12b
cmp edi, 6
je 0x62da0f42
movzx r9d, byte [rbx + 0x10e6]
xor byte [rbx + 0x10b6], r9b
cmp edi, 7
je 0x62da0f42
movzx r10d, byte [rbx + 0x10e7]
xor byte [rbx + 0x10b7], r10b
cmp edi, 8
je 0x62da0f42
movzx r11d, byte [rbx + 0x10e8]
xor byte [rbx + 0x10b8], r11b
cmp edi, 9
je 0x62da0f42
movzx r13d, byte [rbx + 0x10e9]
xor byte [rbx + 0x10b9], r13b
cmp edi, 0xa
je 0x62da0f42
movzx edx, byte [rbx + 0x10ea]
xor byte [rbx + 0x10ba], dl
cmp edi, 0xb
je 0x62da0f42
movzx ecx, byte [rbx + 0x10eb]
xor byte [rbx + 0x10bb], cl
cmp edi, 0xc
je 0x62da0f42
movzx ebp, byte [rbx + 0x10ec]
xor byte [rbx + 0x10bc], bpl
cmp edi, 0xd
je 0x62da0f42
movzx r12d, byte [rbx + 0x10ed]
xor byte [rbx + 0x10bd], r12b
cmp edi, 0xe
je 0x62da0f42
movzx r9d, byte [rbx + 0x10ee]
xor byte [rbx + 0x10be], r9b
cmp edi, 0xf
je 0x62da0f42
movzx r10d, byte [rbx + 0x10ef]
xor byte [rbx + 0x10bf], r10b
shl rdi, 3
add qword [rbx + 0x1100], rdi
lea rdi, [rbx + 0x10b0]
mov rcx, rbx
mov dword [rsp + 0x2c], r8d
mov dword [rsp + 0x28], eax
mov rdx, rdi
call fcn.62d98250
mov eax, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
lea r12, [rbx + 0x10e0]
mov edx, 8
mov dword [rsp + 0x2c], r8d
mov dword [rsp + 0x28], eax
mov rcx, r12
call fcn.62d9ec30
mov rax, qword [rbx + 0x1100]
mov rdx, rdi
mov rcx, rbx
movdqu xmm1, xmmword [rbx + 0x10b0]
bswap rax
mov qword [rbx + 0x10e8], rax
movdqu xmm0, xmmword [rbx + 0x10e0]
pxor xmm0, xmm1
movups xmmword [rbx + 0x10b0], xmm0
call fcn.62d98250
mov r8, qword [rbx + 0x10b0]
mov r11, qword [rbx + 0x10b8]
mov edx, 0x10
mov rcx, rdi
mov qword [rbx + 0x10c0], r8
mov qword [rbx + 0x10c8], r11
call fcn.62d9ec30
mov eax, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
mov rdx, qword [rbx + 0x10c8]
mov r13, qword [rbx + 0x10c0]
mov rcx, r12
mov dword [rsp + 0x2c], r8d
mov dword [rsp + 0x28], eax
mov qword [rbx + 0x10d8], rdx
mov qword [rbx + 0x10d0], r13
mov edx, 0x10
call fcn.62d9ec30
mov eax, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
mov dword [rbx + 0x10fc], 0
mov qword [rbx + 0x1100], 0
mov dword [rbx + 0x10f8], 1
mov r12d, r8d
and r12d, 0xfffffff0
je 0x62da1616
mov rcx, qword [rsi]
xor qword [rbx + 0x10b0], rcx
lea rdi, [rbx + 0x10b0]
mov r9, qword [rsi + 8]
xor qword [rbx + 0x10b8], r9
lea ebp, [r12 - 1]
mov rdx, rdi
mov rcx, rbx
mov r13d, 0x10
shr ebp, 4
mov dword [rsp + 0x2c], r8d
and ebp, 3
mov dword [rsp + 0x28], eax
call fcn.62d98250
sub qword [rbx + 0x1100], 0xffffffffffffff80
cmp r13d, r12d
mov eax, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
jae 0x62da1287
test ebp, ebp
je 0x62da11a5
cmp ebp, 1
je 0x62da1156
cmp ebp, 2
je 0x62da1110
mov r10, qword [rsi + 0x10]
xor qword [rbx + 0x10b0], r10
mov rdx, rdi
mov dword [rsp + 0x28], eax
mov rax, qword [rsi + 0x18]
mov rcx, rbx
xor qword [rbx + 0x10b8], rax
mov dword [rsp + 0x2c], r8d
mov r13d, 0x20
call fcn.62d98250
sub qword [rbx + 0x1100], 0xffffffffffffff80
mov r8d, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x28]
lea edx, [r13 + 8]
mov dword [rsp + 0x2c], r8d
mov r8d, r13d
mov r11, qword [rsi + r8]
mov rcx, rbx
add r13d, 0x10
xor qword [rbx + 0x10b0], r11
mov rbp, qword [rsi + rdx]
xor qword [rbx + 0x10b8], rbp
mov rdx, rdi
mov dword [rsp + 0x28], eax
call fcn.62d98250
sub qword [rbx + 0x1100], 0xffffffffffffff80
mov r8d, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x28]
mov ecx, r13d
lea r10d, [r13 + 8]
mov dword [rsp + 0x28], eax
mov r9, qword [rsi + rcx]
mov rdx, rdi
mov rcx, rbx
xor qword [rbx + 0x10b0], r9
add r13d, 0x10
mov rax, qword [rsi + r10]
xor qword [rbx + 0x10b8], rax
mov dword [rsp + 0x2c], r8d
call fcn.62d98250
sub qword [rbx + 0x1100], 0xffffffffffffff80
cmp r13d, r12d
mov eax, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
jae 0x62da1287
mov r11d, r13d
lea ebp, [r13 + 8]
mov dword [rsp + 0x2c], r8d
mov rdx, qword [rsi + r11]
xor qword [rbx + 0x10b0], rdx
mov rdx, rdi
mov rcx, qword [rsi + rbp]
xor qword [rbx + 0x10b8], rcx
mov rcx, rbx
mov dword [rsp + 0x28], eax
lea ebp, [r13 + 0x28]
call fcn.62d98250
lea r9d, [r13 + 0x10]
lea eax, [r13 + 0x18]
sub qword [rbx + 0x1100], 0xffffffffffffff80
mov rdx, rdi
mov rcx, rbx
mov r10, qword [rsi + r9]
xor qword [rbx + 0x10b0], r10
mov r8, qword [rsi + rax]
xor qword [rbx + 0x10b8], r8
call fcn.62d98250
lea r11d, [r13 + 0x20]
sub qword [rbx + 0x1100], 0xffffffffffffff80
mov rdx, qword [rsi + r11]
xor qword [rbx + 0x10b0], rdx
mov rdx, rdi
mov rcx, qword [rsi + rbp]
xor qword [rbx + 0x10b8], rcx
mov rcx, rbx
call fcn.62d98250
lea r9d, [r13 + 0x30]
sub qword [rbx + 0x1100], 0xffffffffffffff80
lea eax, [r13 + 0x38]
mov rdx, rdi
mov rcx, rbx
add r13d, 0x40
mov r10, qword [rsi + r9]
xor qword [rbx + 0x10b0], r10
mov r8, qword [rsi + rax]
xor qword [rbx + 0x10b8], r8
call fcn.62d98250
sub qword [rbx + 0x1100], 0xffffffffffffff80
cmp r13d, r12d
mov eax, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
jb 0x62da11a5
mov r12d, r13d
add rsi, r12
cmp r8d, r13d
jbe 0x62da0d97
movsxd r11, dword [rbx + 0x10fc]
lea r12d, [r8 - 1]
lea rdi, [rbx + 0x10b0]
sub r12d, r13d
lea r13, [rsi + r12 + 1]
add rsi, 1
movzx ebp, byte [rsi - 1]
lea edx, [r11 + 1]
and r12d, 3
mov dword [rbx + 0x10fc], edx
xor byte [rbx + r11 + 0x10b0], bpl
cmp edx, 0x10
je 0x62da15a5
cmp rsi, r13
je 0x62da0d97
test r12, r12
je 0x62da137a
cmp r12, 1
je 0x62da1349
cmp r12, 2
je 0x62da131d
lea ecx, [rdx + 1]
add rsi, 1
movzx r9d, byte [rsi - 1]
movsxd rdx, edx
mov dword [rbx + 0x10fc], ecx
xor byte [rbx + rdx + 0x10b0], r9b
cmp ecx, 0x10
mov edx, ecx
je 0x62da15d1
lea r8d, [rdx + 1]
add rsi, 1
movzx r10d, byte [rsi - 1]
movsxd r11, edx
mov dword [rbx + 0x10fc], r8d
mov edx, r8d
xor byte [rbx + r11 + 0x10b0], r10b
cmp r8d, 0x10
je 0x62da1579
lea ebp, [rdx + 1]
add rsi, 1
movzx r12d, byte [rsi - 1]
movsxd r9, edx
mov dword [rbx + 0x10fc], ebp
mov edx, ebp
xor byte [rbx + r9 + 0x10b0], r12b
cmp ebp, 0x10
je 0x62da140d
cmp rsi, r13
je 0x62da0d97
add rsi, 1
lea ecx, [rdx + 1]
movzx r10d, byte [rsi - 1]
movsxd r8, edx
mov dword [rbx + 0x10fc], ecx
xor byte [rbx + r8 + 0x10b0], r10b
cmp ecx, 0x10
je 0x62da154d
lea ebp, [rcx + 1]
movzx r11d, byte [rsi]
movsxd r12, ecx
mov dword [rbx + 0x10fc], ebp
xor byte [rbx + r12 + 0x10b0], r11b
cmp ebp, 0x10
je 0x62da1521
lea r10d, [rbp + 1]
movzx r9d, byte [rsi + 1]
movsxd rdx, ebp
mov dword [rbx + 0x10fc], r10d
xor byte [rbx + rdx + 0x10b0], r9b
cmp r10d, 0x10
je 0x62da14f4
add rsi, 3
lea edx, [r10 + 1]
movzx r8d, byte [rsi - 1]
movsxd rcx, r10d
mov dword [rbx + 0x10fc], edx
xor byte [rbx + rcx + 0x10b0], r8b
cmp edx, 0x10
jne 0x62da1371
mov rdx, rdi
mov rcx, rbx
mov dword [rsp + 0x28], eax
call fcn.62d98250
mov dword [rbx + 0x10fc], 0
xor edx, edx
sub qword [rbx + 0x1100], 0xffffffffffffff80
mov eax, dword [rsp + 0x28]
jmp 0x62da1371
cmp edx, 1
jne 0x62da0d92
mov ecx, dword [rbx + 0x10fc]
cmp ecx, 0xf
jg 0x62da0d92
xor r13d, r13d
test ecx, ecx
jne 0x62da128d
jmp 0x62da1051
cmp qword [rbx + 0x1100], 0
lea rdi, [rbx + 0x10b0]
jne 0x62da0f71
mov eax, 1
jmp 0x62da0d97
lea rdx, str.src_encauth_gcm_gcm_add_aad.c
lea rcx, str.adata___NULL
mov r8d, 0x24
call fcn.62d9e0f0
nop dword [rax + rax]
mov r9, qword [rbx + 0x10e0]
mov r10d, dword [rbx + 0x10e8]
lea r12, [rbx + 0x10e0]
mov byte [rbx + 0x10cc], 0
mov byte [rbx + 0x10cd], 0
mov byte [rbx + 0x10ce], 0
mov byte [rbx + 0x10cf], 1
mov qword [rbx + 0x10c0], r9
mov dword [rbx + 0x10c8], r10d
jmp 0x62da0ff7
mov rdx, rdi
mov rcx, rbx
mov dword [rsp + 0x28], eax
call fcn.62d98250
mov dword [rbx + 0x10fc], 0
sub qword [rbx + 0x1100], 0xffffffffffffff80
xor r10d, r10d
mov eax, dword [rsp + 0x28]
jmp 0x62da13e6
mov rdx, rdi
mov rcx, rbx
mov dword [rsp + 0x28], eax
xor ebp, ebp
call fcn.62d98250
mov dword [rbx + 0x10fc], 0
sub qword [rbx + 0x1100], 0xffffffffffffff80
mov eax, dword [rsp + 0x28]
jmp 0x62da13c1
mov rcx, rbx
mov rdx, rdi
mov dword [rsp + 0x28], eax
call fcn.62d98250
mov dword [rbx + 0x10fc], 0
sub qword [rbx + 0x1100], 0xffffffffffffff80
xor ecx, ecx
mov eax, dword [rsp + 0x28]
jmp 0x62da13a0
mov rdx, rdi
mov rcx, rbx
mov dword [rsp + 0x28], eax
call fcn.62d98250
mov dword [rbx + 0x10fc], 0
sub qword [rbx + 0x1100], 0xffffffffffffff80
xor edx, edx
mov eax, dword [rsp + 0x28]
jmp 0x62da1349
mov rdx, rdi
mov rcx, rbx
mov dword [rsp + 0x28], eax
call fcn.62d98250
mov dword [rbx + 0x10fc], 0
sub qword [rbx + 0x1100], 0xffffffffffffff80
xor edx, edx
mov eax, dword [rsp + 0x28]
jmp 0x62da12d7
mov rdx, rdi
mov rcx, rbx
mov dword [rsp + 0x28], eax
call fcn.62d98250
mov dword [rbx + 0x10fc], 0
sub qword [rbx + 0x1100], 0xffffffffffffff80
xor edx, edx
mov eax, dword [rsp + 0x28]
jmp 0x62da131d
lea rdx, str.src_encauth_gcm_gcm_add_aad.c
lea rcx, str.gcm___NULL
mov r8d, 0x22
call fcn.62d9e0f0
xor r13d, r13d
jmp 0x62da1287