Function at 0x62d97f30
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
test rcx, rcx
mov rsi, rcx
mov edi, edx
mov rbp, r8
mov r12d, r9d
je 0x62d98229
test r8, r8
je 0x62d98210
mov ecx, edx
call fcn.62d9e130
test eax, eax
jne 0x62d97f81
movsxd rax, edi
lea rbx, [rax + rax*2]
mov eax, 0xa
shl rbx, 6
add rbx, qword [0x62e12c20]
cmp dword [rbx + 0x14], 0x10
je 0x62d97f8e
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
xor r8d, r8d
mov r9, rsi
mov edx, r12d
mov rcx, rbp
call qword [rbx + 0x20]
test eax, eax
jne 0x62d97f81
lea rbp, [rsp + 0x30]
lea r12, [rsi + 0x10a0]
mov edx, 0x10
mov rcx, rbp
call fcn.62d9ec30
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call qword [rbx + 0x28]
test eax, eax
jne 0x62d97f81
lea rcx, [rsi + 0x10e0]
mov edx, 0x10
mov dword [rsp + 0x2c], eax
lea rbx, [rsi + 0x1110]
call fcn.62d9ec30
lea rcx, [rsi + 0x10b0]
mov edx, 0x10
mov r13, rbx
call fcn.62d9ec30
mov dword [rsi + 0x10f0], edi
mov dword [rsi + 0x10f8], 0
mov edx, 0x10
mov dword [rsi + 0x10f4], 0
mov dword [rsi + 0x10fc], 0
mov rcx, rbp
mov qword [rsi + 0x1100], 0
mov qword [rsi + 0x1108], 0
xor edi, edi
call fcn.62d9ec30
mov eax, dword [rsp + 0x2c]
mov r8, r13
mov rdx, rbp
mov rcx, r12
mov dword [rsp + 0x2c], eax
mov byte [rsp + 0x30], dil
call fcn.62da1620
lea edx, [rdi + 1]
lea r8, [r13 + 0x10]
mov rcx, r12
mov byte [rsp + 0x30], dl
mov rdx, rbp
call fcn.62da1620
lea ecx, [rdi + 2]
lea r8, [r13 + 0x20]
mov rdx, rbp
mov byte [rsp + 0x30], cl
mov rcx, r12
call fcn.62da1620
lea r8d, [rdi + 3]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r8b
lea r8, [r13 + 0x30]
call fcn.62da1620
lea r9d, [rdi + 4]
lea r8, [r13 + 0x40]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r9b
call fcn.62da1620
lea r10d, [rdi + 5]
lea r8, [r13 + 0x50]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r10b
call fcn.62da1620
lea r11d, [rdi + 6]
lea r8, [r13 + 0x60]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r11b
call fcn.62da1620
lea eax, [rdi + 7]
lea r8, [r13 + 0x70]
mov rdx, rbp
mov rcx, r12
add edi, 8
sub r13, 0xffffffffffffff80
mov byte [rsp + 0x30], al
call fcn.62da1620
cmp edi, 0x100
mov eax, dword [rsp + 0x2c]
jne 0x62d98047
mov rdi, qword [0x62e12c50]
lea r13, [rsi + 0x10110]
lea rsi, [rbx + 0x1000]
lea rbp, [rbx + 0x2000]
mov r12, rsi
nop word cs:[rax + rax]
movzx ecx, byte [rbx + 0xe]
movzx edx, byte [rbx + 0xf]
add r12, 0x10
add rbx, 0x10
mov byte [r12 - 1], cl
movzx r8d, byte [rbx - 3]
add edx, edx
mov byte [r12 - 2], r8b
movzx r9d, byte [rbx - 4]
mov byte [r12 - 3], r9b
movzx r10d, byte [rbx - 5]
mov byte [r12 - 4], r10b
movzx r11d, byte [rbx - 6]
mov byte [r12 - 5], r11b
movzx ecx, byte [rbx - 7]
mov byte [r12 - 6], cl
movzx r8d, byte [rbx - 8]
mov byte [r12 - 7], r8b
movzx r9d, byte [rbx - 9]
mov byte [r12 - 8], r9b
movzx r10d, byte [rbx - 0xa]
mov byte [r12 - 9], r10b
movzx r11d, byte [rbx - 0xb]
mov byte [r12 - 0xa], r11b
movzx ecx, byte [rbx - 0xc]
movsxd r11, edx
add edx, 1
movsxd rdx, edx
mov byte [r12 - 0xb], cl
movzx r8d, byte [rbx - 0xd]
mov byte [r12 - 0xc], r8b
movzx r9d, byte [rbx - 0xe]
movzx r8d, byte [rdi + r11]
mov byte [r12 - 0xd], r9b
movzx r10d, byte [rbx - 0xf]
mov byte [r12 - 0xe], r10b
movzx ecx, byte [rbx - 0x10]
mov byte [r12 - 0x10], r8b
xor cl, byte [rdi + rdx]
mov byte [r12 - 0xf], cl
cmp r12, rbp
jne 0x62d98140
cmp r13, rsi
mov rbx, rsi
jne 0x62d98125
jmp 0x62d97f81
lea rdx, str.src_encauth_gcm_gcm_init.c
lea rcx, [0x62e0e287]
mov r8d, 0x24
call fcn.62d9e0f0
lea rdx, str.src_encauth_gcm_gcm_init.c
lea rcx, [0x62e0e27b]
mov r8d, 0x23
call fcn.62d9e0f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop