Function at 0x10041b9b0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov rbx, rcx
mov edi, edx
mov r13, r8
mov rsi, r9
test rcx, rcx
je 0x10041bae3
mov qword [rcx + 0xc4], 0
mov ecx, edx
call fcn.10041cb00
mov ecx, edi
movsxd rbp, eax
mov dword [rbx + 8], ebp
mov r12, rbp
call fcn.10041cb10
mov dword [rbx], edi
mov dword [rbx + 4], eax
mov r15d, eax
cmp rbp, rsi
jb 0x10041bad0
test rsi, rsi
je 0x10041ba62
lea rdx, [rsi - 1]
cmp rdx, 6
jbe 0x10041bd68
mov rax, rbx
sub rax, r13
lea rcx, [rax + 0x83]
xor eax, eax
cmp rcx, 0xe
ja 0x10041bb20
lea r14, [rsp + 0x40]
nop dword [rax + rax]
movzx edx, byte [r13 + rax]
mov ecx, edx
xor edx, 0x5c
xor ecx, 0x36
mov byte [rbx + rax + 0x84], dl
mov byte [r14 + rax], cl
add rax, 1
cmp rsi, rax
jne 0x10041ba40
cmp rsi, rbp
jae 0x10041ba91
sub rbp, rsi
lea rcx, [rsp + rsi + 0x40]
mov edx, 0x36
mov r8, rbp
call sub.cygwin1.dll_memset
lea rcx, [rbx + rsi + 0x84]
mov r8, rbp
mov edx, 0x5c
call sub.cygwin1.dll_memset
lea rsi, [rbx + 0xc]
mov edx, edi
mov rcx, rsi
call fcn.10041c9d0
mov edx, eax
mov eax, 1
test edx, edx
je 0x10041bd48
mov dword [rbx + 0xc8], eax
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r14, [rsp + 0x40]
mov edx, edi
mov rcx, r14
call fcn.10041c9d0
test eax, eax
je 0x10041baf0
mov eax, 1
jmp 0x10041bab4
mov r8d, esi
mov rdx, r13
mov rcx, r14
call fcn.10041ca10
test eax, eax
jne 0x10041bae3
lea r13, [rsp + 0x20]
mov rcx, r14
mov rdx, r13
call fcn.10041cab0
test eax, eax
jne 0x10041bae3
movsxd rsi, r15d
jmp 0x10041ba0a
cmp rdx, 0xe
jbe 0x10041bd6f
movdqu xmm0, xmmword [r13]
movdqa xmm1, xmmword [str.6666666666666666_]
mov rax, rsi
movdqa xmm2, xmmword [0x10042b3a0]
shr rax, 4
pxor xmm0, xmm1
movaps xmmword [rsp + 0x40], xmm0
movdqu xmm0, xmmword [r13]
pxor xmm0, xmm2
movups xmmword [rbx + 0x84], xmm0
cmp rax, 1
je 0x10041bbd1
movdqu xmm0, xmmword [r13 + 0x10]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x50], xmm0
movdqu xmm0, xmmword [r13 + 0x10]
pxor xmm0, xmm2
movups xmmword [rbx + 0x94], xmm0
cmp rax, 2
je 0x10041bbd1
movdqu xmm0, xmmword [r13 + 0x20]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x60], xmm0
movdqu xmm0, xmmword [r13 + 0x20]
pxor xmm0, xmm2
movups xmmword [rbx + 0xa4], xmm0
cmp rax, 3
je 0x10041bbd1
movdqu xmm3, xmmword [r13 + 0x30]
movdqa xmm0, xmm3
pxor xmm1, xmm3
pxor xmm0, xmm2
movaps xmmword [rsp + 0x70], xmm1
movups xmmword [rbx + 0xb4], xmm0
mov rax, rsi
and rax, 0xfffffffffffffff0
test sil, 0xf
je 0x10041ba62
mov rdx, rsi
sub rdx, rax
lea rcx, [rdx - 1]
cmp rcx, 6
jbe 0x10041bc33
movq xmm0, qword [r13 + rax]
mov rcx, rdx
movq xmm1, qword [str.6666666666666666_]
and rcx, 0xfffffffffffffff8
pxor xmm1, xmm0
movq qword [rsp + rax + 0x40], xmm1
movq xmm1, qword [0x10042b3a0]
pxor xmm0, xmm1
movq qword [rbx + rax + 0x84], xmm0
add rax, rcx
and edx, 7
je 0x10041ba62
movzx edx, byte [r13 + rax]
mov ecx, edx
xor edx, 0x5c
xor ecx, 0x36
mov byte [rbx + rax + 0x84], dl
mov byte [rsp + rax + 0x40], cl
lea rcx, [rax + 1]
cmp rcx, rsi
jae 0x10041ba62
movzx edx, byte [r13 + rax + 1]
lea rcx, [rax + 2]
mov r8d, edx
xor edx, 0x5c
xor r8d, 0x36
mov byte [rbx + rax + 0x85], dl
mov byte [rsp + rax + 0x41], r8b
cmp rcx, rsi
jae 0x10041ba62
movzx edx, byte [r13 + rax + 2]
lea rcx, [rax + 3]
mov r8d, edx
xor edx, 0x5c
xor r8d, 0x36
mov byte [rbx + rax + 0x86], dl
mov byte [rsp + rax + 0x42], r8b
cmp rcx, rsi
jae 0x10041ba62
movzx edx, byte [r13 + rax + 3]
lea rcx, [rax + 4]
mov r8d, edx
xor edx, 0x5c
xor r8d, 0x36
mov byte [rbx + rax + 0x87], dl
mov byte [rsp + rax + 0x43], r8b
cmp rcx, rsi
jae 0x10041ba62
movzx edx, byte [r13 + rax + 4]
lea rcx, [rax + 5]
mov r8d, edx
xor edx, 0x5c
xor r8d, 0x36
mov byte [rbx + rax + 0x88], dl
mov byte [rsp + rax + 0x44], r8b
cmp rcx, rsi
jae 0x10041ba62
movzx edx, byte [r13 + rax + 5]
mov r8d, edx
xor edx, 0x5c
mov byte [rbx + rax + 0x89], dl
xor r8d, 0x36
lea rdx, [rax + 6]
mov byte [rsp + rax + 0x45], r8b
cmp rdx, rsi
jae 0x10041ba62
movzx eax, byte [r13 + rax + 6]
mov ecx, eax
xor eax, 0x5c
xor ecx, 0x36
mov byte [rbx + rdx + 0x84], al
mov byte [rsp + rdx + 0x40], cl
jmp 0x10041ba62
lea rdx, [rsp + 0x40]
mov r8d, r12d
mov rcx, rsi
call fcn.10041ca10
test eax, eax
setne al
movzx eax, al
jmp 0x10041baae
xor eax, eax
jmp 0x10041ba36
mov rdx, rsi
xor eax, eax
jmp 0x10041bbf2