Function at 0x14009e640
Capabilities:
Authenticate hmac
Encode data using base64

Disassembly:
sub rsp, 0x58
cmp qword [rcx + 0x78], 0
mov r10, rcx
je 0x14009e675
movzx eax, byte [rsp + 0x88]
mov byte [rsp + 0x88], al
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x80], al
add rsp, 0x58
jmp 0x14009edb0
movsx r11d, byte [rdx]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x50], rdi
movaps xmmword [rsp + 0x40], xmm6
lea eax, [r11 - 9]
cmp eax, 0x72
ja case.0x14009e6ba.12
lea rdi, sym.ZeruaS.exe_HqHpN8U:rF.N_o_Z8_Kq3OYFmO7.Ge
movabs rbx, 0x100002600
cdqe
movzx eax, byte [rdi + rax + 0x9e98c]
mov ecx, dword [rdi + rax*4 + 0x9e95c]
add rcx, rdi
jmp rcx
mov r8, qword [r10 + 0xa0]
mov rax, rdx
cmp rdx, r8
je 0x14009e76d
cmp r11b, 0x20
ja 0x14009e79b
movdqa xmm3, xmmword [str.________________________________FFFFFFFFFFFFFFFF_vvvvvvvvvvvvvvvvUnknown_exception]
mov rcx, r8
movdqa xmm4, xmmword [str._n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r]
sub rcx, rdx
movdqa xmm5, xmmword [0x1400a9ca0]
movdqa xmm6, xmmword [0x1400a9cc0]
cmp rcx, 0x10
jl 0x14009e753
nop word [rax + rax]
movdqu xmm1, xmmword [rax]
movdqa xmm2, xmm1
movdqa xmm0, xmm1
pcmpeqb xmm2, xmm4
pcmpeqb xmm0, xmm3
por xmm1, xmm5
por xmm2, xmm0
pcmpeqb xmm1, xmm6
por xmm2, xmm1
pmovmskb edx, xmm2
xor edx, 0xffff
jne 0x14009e78b
add rax, 0x10
sub rcx, 0x10
cmp rcx, 0x10
jge 0x14009e710
cmp rax, r8
je 0x14009e76a
movsx rcx, byte [rax]
cmp cl, 0x20
ja 0x14009e793
bt rbx, rcx
jae 0x14009e793
inc rax
cmp rax, r8
jne 0x14009e753
mov rdx, rax
mov r8b, 0x3c
mov rcx, r10
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.1400a2120
bsf edx, edx
add rdx, rax
jmp 0x14009e796
mov rdx, rax
cmp rdx, r8
je 0x14009e76d
movsx r11d, byte [rdx]
lea eax, [r11 - 9]
cmp eax, 0x72
jbe 0x14009e6a6
mov r8d, 1
mov rcx, r10
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.1400a1980
movzx r9d, byte [rsp + 0x30]
mov rcx, r10
movzx r8d, byte [rsp + 0x30]
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.14009af00
movzx r9d, byte [rsp + 0x30]
mov rcx, r10
movzx r8d, byte [rsp + 0x30]
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.14009a8e0
movzx r9d, byte [rsp + 0x30]
mov rcx, r10
movzx r8d, byte [rsp + 0x30]
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.14009a340
movzx r8d, byte [rsp + 0x30]
mov rcx, r10
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.14009cf40
movzx r8d, byte [rsp + 0x30]
mov rcx, r10
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.140099cf0
movzx r8d, byte [rsp + 0x30]
mov rcx, r10
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.14009a030
movzx eax, byte [rsp + 0x88]
mov rcx, r10
movzx r9d, byte [rsp + 0x30]
movzx r8d, byte [rsp + 0x30]
mov byte [rsp + 0x80], al
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp fcn.14009d470
movzx eax, byte [rsp + 0x88]
mov rcx, r10
movzx r8d, byte [rsp + 0x30]
mov byte [rsp + 0x88], al
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x80], al
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp 0x140096b30
movzx eax, byte [rsp + 0x88]
mov rcx, r10
movzx r8d, byte [rsp + 0x30]
mov byte [rsp + 0x88], al
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x80], al
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
jmp 0x14009bf20
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov rdi, rcx
movzx ebx, r9b
mov rcx, qword [rcx + 0x78]
mov r10, rdx
lea rdx, sym.ZeruaS.exe_HqHpN8U:rF.N_o_Z8_Kq3OYFmO7.Ge
mov rax, qword [rdi + 0x80]
movsx eax, byte [rax + rcx - 1]
sub eax, 4
cdqe
movzx eax, byte [rdx + rax + 0x9effc]
mov r9d, dword [rdx + rax*4 + 0x9efd0]
add r9, rdx
jmp r9
mov rdx, r10
mov rcx, rdi
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp 0x14009a1a0
mov rdx, r10
mov rcx, rdi
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp 0x14009d080
mov rdx, r10
mov rcx, rdi
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp 0x140099ea0
movzx eax, byte [rsp + 0x68]
mov rdx, r10
movzx r9d, byte [rsp + 0x40]
mov rcx, rdi
mov byte [rsp + 0x60], al
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp 0x14009d990
xor r9d, r9d
mov rdx, r10
mov rcx, rdi
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp fcn.140097870