Function at 0x10041ab60
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 0x10041ac93
mov qword [rcx + 0xc4], 0
mov ecx, edx
call fcn.10041bcb0
mov ecx, edi
movsxd rbp, eax
mov dword [rbx + 8], ebp
mov r12, rbp
call fcn.10041bcc0
mov dword [rbx], edi
mov dword [rbx + 4], eax
mov r15d, eax
cmp rbp, rsi
jb 0x10041ac80
test rsi, rsi
je 0x10041ac12
lea rdx, [rsi - 1]
cmp rdx, 6
jbe 0x10041af18
mov rax, rbx
sub rax, r13
lea rcx, [rax + 0x83]
xor eax, eax
cmp rcx, 0xe
ja 0x10041acd0
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 0x10041abf0
cmp rsi, rbp
jae 0x10041ac41
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.10041bb80
mov edx, eax
mov eax, 1
test edx, edx
je 0x10041aef8
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.10041bb80
test eax, eax
je 0x10041aca0
mov eax, 1
jmp 0x10041ac64
mov r8d, esi
mov rdx, r13
mov rcx, r14
call fcn.10041bbc0
test eax, eax
jne 0x10041ac93
lea r13, [rsp + 0x20]
mov rcx, r14
mov rdx, r13
call fcn.10041bc60
test eax, eax
jne 0x10041ac93
movsxd rsi, r15d
jmp 0x10041abba
cmp rdx, 0xe
jbe 0x10041af1f
movdqu xmm0, xmmword [r13]
movdqa xmm1, xmmword [str.6666666666666666_]
mov rax, rsi
movdqa xmm2, xmmword [0x10042a160]
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 0x10041ad81
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 0x10041ad81
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 0x10041ad81
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 0x10041ac12
mov rdx, rsi
sub rdx, rax
lea rcx, [rdx - 1]
cmp rcx, 6
jbe 0x10041ade3
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 [0x10042a160]
pxor xmm0, xmm1
movq qword [rbx + rax + 0x84], xmm0
add rax, rcx
and edx, 7
je 0x10041ac12
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 0x10041ac12
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 0x10041ac12
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 0x10041ac12
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 0x10041ac12
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 0x10041ac12
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 0x10041ac12
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 0x10041ac12
lea rdx, [rsp + 0x40]
mov r8d, r12d
mov rcx, rsi
call fcn.10041bbc0
test eax, eax
setne al
movzx eax, al
jmp 0x10041ac5e
xor eax, eax
jmp 0x10041abe6
mov rdx, rsi
xor eax, eax
jmp 0x10041ada2