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

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov r8, qword [rcx + 0x78]
mov rbx, rdx
mov rdx, qword [rcx + 0xa0]
mov rdi, rcx
test r8, r8
je 0x140099ef0
dec r8
mov qword [rcx + 0x78], r8
mov rax, qword [rcx + 0x80]
movsx ecx, byte [rax + r8]
sub ecx, 0xf
je 0x140099f93
sub ecx, 1
je 0x140099fb8
cmp ecx, 1
je 0x140099fdd
jmp 0x140099f53
mov rax, rdx
sub rax, rbx
cmp rax, 5
jb 0x140099f50
cmp dword [rbx + 1], 0x65736c61
je 0x140099f1d
mov r8d, 1
mov rdx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1980
lea r8, [rcx + 0x58]
xor edx, edx
call fcn.1400a28f0
test al, al
jne 0x140099f41
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1970
lea rax, [rbx + 5]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
inc rbx
cmp rbx, rdx
jb 0x140099f70
mov r8b, 0xe
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x61
je 0x140099f90
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1980
inc rbx
cmp rbx, rdx
jb 0x140099fb0
mov r8b, 0xf
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x6c
jne 0x140099f75
inc rbx
cmp rbx, rdx
jb 0x140099fd5
mov r8b, 0x10
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x73
jne 0x140099f75
inc rbx
mov rcx, rdi
cmp rbx, rdx
jb 0x140099ffa
mov r8b, 0x11
mov rdx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x65
jne 0x140099f05
lea r8, [rdi + 0x58]
xor edx, edx
call fcn.1400a28f0
test al, al
je 0x140099f2c
lea rax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rbx, rdx
mov rcx, qword [rcx + 0xa0]
mov r8, qword [rdi + 0x78]
test r8, r8
je 0x14009a1e7
dec r8
mov qword [rdi + 0x78], r8
mov rax, qword [rdi + 0x80]
movsx edx, byte [rax + r8]
sub edx, 9
je 0x14009a2a2
cmp edx, 1
je 0x14009a2c7
jmp 0x14009a262
mov rax, rcx
sub rax, rbx
cmp rax, 4
jb 0x14009a25f
cmp dword [rdx], 0x6c6c756e
je 0x14009a213
mov r8d, 1
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1980
mov r8, qword [rdi + 0x18]
cmp r8, qword [rdi + 0x20]
jb 0x14009a229
mov rcx, rdi
call fcn.1400a1d60
mov r8, qword [rdi + 0x18]
mov rax, qword [rdi + 0x38]
test al, 1
je 0x14009a243
mov rcx, rax
mov edx, 1
and rcx, 0xfffffffffffffffc
lock xadd qword [rcx + 8], rdx
mov qword [r8], rax
lea rax, [rbx + 4]
mov byte [r8 + 8], 0
add qword [rdi + 0x18], 0x18
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
inc rbx
cmp rbx, rcx
jb 0x14009a27f
mov r8b, 8
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x75
je 0x14009a29f
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1980
inc rbx
cmp rbx, rcx
jb 0x14009a2bf
mov r8b, 9
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x6c
jne 0x14009a284
inc rbx
cmp rbx, rcx
mov rcx, rdi
jb 0x14009a2e4
mov r8b, 0xa
mov rdx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x6c
je 0x14009a301
mov r8d, 1
mov rdx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1980
lea rdx, [rdi + 0x58]
call fcn.1400a2af0
test al, al
jne 0x14009a323
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1970
lea rax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rbx, rdx
mov rcx, qword [rcx + 0xa0]
mov r8, qword [rdi + 0x78]
test r8, r8
je 0x14009d0c7
dec r8
mov qword [rdi + 0x78], r8
mov rax, qword [rdi + 0x80]
movsx edx, byte [rax + r8]
sub edx, 0xc
je 0x14009d169
cmp edx, 1
je 0x14009d18e
jmp 0x14009d129
mov rax, rcx
sub rax, rbx
cmp rax, 4
jb 0x14009d126
cmp dword [rdx], 0x65757274
mov rcx, rdi
je 0x14009d0f3
mov r8d, 1
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1980
lea r8, [rdi + 0x58]
mov dl, 1
call fcn.1400a28f0
test al, al
jne 0x14009d117
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1970
lea rax, [rbx + 4]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
inc rbx
cmp rbx, rcx
jb 0x14009d146
mov r8b, 0xb
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x72
je 0x14009d166
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1980
inc rbx
cmp rbx, rcx
jb 0x14009d186
mov r8b, 0xc
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x75
jne 0x14009d14b
inc rbx
cmp rbx, rcx
mov rcx, rdi
jb 0x14009d1ab
mov r8b, 0xd
mov rdx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a2120
cmp byte [rbx], 0x65
je 0x14009d1c8
mov r8d, 1
mov rdx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400a1980
lea r8, [rdi + 0x58]
mov dl, 1
call fcn.1400a28f0
test al, al
je 0x14009d102
lea rax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r12, qword [rcx + 0xa0]
mov rbp, rdx
mov rdx, qword [rcx + 0x78]
movzx ebx, r8b
mov rdi, rcx
test rdx, rdx
je 0x14009d9db
add rdx, 0xfffffffffffffff7
mov qword [rcx + 0x78], rdx
mov rax, qword [rcx + 0x80]
mov r15, qword [rdx + rax]
jmp 0x14009d9e1
inc rbp
xor r15d, r15d
movzx r13d, byte [rsp + 0x90]
mov rdx, r12
mov rcx, rbp
test r13b, r13b
je 0x14009d9fc
call fcn.140096300
jmp 0x14009da01
call fcn.1400963b0
mov rsi, rax
mov r14, rax
mov eax, 0x7ffffffe
sub rsi, rbp
sub rax, r15
cmp rsi, rax
jbe 0x14009da2d
mov r8d, 0xd
mov rdx, r14
mov rcx, rdi
call fcn.1400a1980
jmp 0x14009dbfd
add r15, rsi
cmp r14, r12
jb 0x14009da94
test rsi, rsi
je 0x14009da7e
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x20]
sub rcx, r8
lea rax, [rdx + 0x18]
add rax, rsi
cmp rax, rcx
jbe 0x14009da68
mov rdx, rsi
mov rcx, rdi
call fcn.1400a1bb0
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x18]
lea rcx, [r8 + 0x18]
mov r8, rsi
add rcx, rdx
mov rdx, rbp
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x28], rsi
mov r9, r15
mov r8b, 0x12
mov rdx, r14
mov rcx, rdi
call fcn.1400a2210
jmp 0x14009dbfd
movzx eax, byte [r14]
cmp al, 0x22
je 0x14009dbd7
test al, al
jns 0x14009db6c
test r13b, r13b
jne 0x14009daf7
and eax, 0x7f
lea rcx, [rdi + 0x88]
lea rdx, [0x1400a8240]
mov r8, r12
sub r8, r14
movzx eax, word [rdx + rax*2]
movzx edx, al
cmp r8, rdx
mov word [rcx + 4], ax
movzx eax, r8b
cmovb edx, eax
mov byte [rcx + 6], dl
movzx r8d, dl
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
movzx eax, byte [rdi + 0x8c]
cmp byte [rdi + 0x8e], al
jb 0x14009db0d
mov r8d, 1
mov rdx, r14
mov rcx, rdi
call fcn.1400a1980
jmp 0x14009dbfd
test rsi, rsi
je 0x14009db56
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x20]
sub rcx, r8
lea rax, [rdx + 0x18]
add rax, rsi
cmp rax, rcx
jbe 0x14009db40
mov rdx, rsi
mov rcx, rdi
call fcn.1400a1bb0
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x18]
lea rcx, [r8 + 0x18]
mov r8, rsi
add rcx, rdx
mov rdx, rbp
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x28], rsi
mov r9, r15
mov r8b, 0x19
mov rdx, r12
mov rcx, rdi
call fcn.1400a2210
jmp 0x14009dbfd
cmp al, 0x5c
jne 0x14009daf7
test rsi, rsi
je 0x14009dbb9
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x20]
sub rcx, r8
lea rax, [rdx + 0x18]
add rax, rsi
cmp rax, rcx
jbe 0x14009dba3
mov rdx, rsi
mov rcx, rdi
call fcn.1400a1bb0
mov rdx, qword [rdi + 0x28]
mov r8, qword [rdi + 0x18]
lea rcx, [r8 + 0x18]
mov r8, rsi
add rcx, rdx
mov rdx, rbp
call sub.VCRUNTIME140.dll_memcpy
add qword [rdi + 0x28], rsi
mov byte [rsp + 0x28], r13b
movzx r9d, bl
mov r8, r15
mov byte [rsp + 0x20], 0
mov rdx, r14
mov rcx, rdi
call fcn.140098cb0
jmp 0x14009dbfd
mov qword [rsp + 0x30], rbp
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x38], rsi
mov rcx, rdi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
call fcn.1400a2d10
lea rax, [r14 + 1]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
cmp qword [rcx + 0x78], 0
movzx ebx, r9b
movzx edi, r8b
mov rsi, rcx
je 0x14009e323
movzx eax, byte [rsp + 0x88]
mov byte [rsp + 0x88], al
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x80], al
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
jmp 0x14009eb40
movsx eax, byte [rdx]
mov qword [rsp + 0x60], rbp
sub eax, 9
mov qword [rsp + 0x68], r14
movaps xmmword [rsp + 0x40], xmm6
cmp eax, 0x72
ja case.0x14009e368.20
lea r14, sym.ZeruaS.exe_HqHpN8U:rF.N_o_Z8_Kq3OYFmO7.Ge
movabs rbp, 0x100002600
cdqe
movzx eax, byte [r14 + rax + 0x9e5c0]
mov ecx, dword [r14 + rax*4 + 0x9e590]
add rcx, r14
jmp rcx
xor r9d, r9d
movzx r8d, dil
mov rcx, rsi
call fcn.140097870
mov rdx, rax
cmp rax, rsi
je 0x14009e486
mov r8, qword [rsi + 0xa0]
mov rax, rdx
cmp rdx, r8
je 0x14009e42d
cmp byte [rdx], 0x20
ja 0x14009e44a
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 0x14009e413
nop dword [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 0x14009e43a
add rax, 0x10
sub rcx, 0x10
cmp rcx, 0x10
jge 0x14009e3d0
cmp rax, r8
je 0x14009e42a
movsx rcx, byte [rax]
cmp cl, 0x20
ja 0x14009e442
bt rbp, rcx
jae 0x14009e442
inc rax
cmp rax, r8
jne 0x14009e413
mov rdx, rax
mov r8b, 0x3c
mov rcx, rsi
call fcn.1400a2120
jmp 0x14009e467
bsf edx, edx
add rdx, rax
jmp 0x14009e445
mov rdx, rax
cmp rdx, r8
je 0x14009e42d
movsx eax, byte [rdx]
sub eax, 9
cmp eax, 0x72
jbe 0x14009e352
mov r8d, 1
mov rcx, rsi
call fcn.1400a1980
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
mov r8b, 0x3d
mov rcx, rsi
call fcn.1400a2120
jmp 0x14009e467
movzx r9d, byte [rsp + 0x30]
mov rcx, rsi
movzx r8d, byte [rsp + 0x30]
call fcn.14009af00
jmp 0x14009e467
movzx r9d, byte [rsp + 0x30]
mov rcx, rsi
movzx r8d, byte [rsp + 0x30]
call fcn.14009a8e0
jmp 0x14009e467
movzx r9d, byte [rsp + 0x30]
mov rcx, rsi
movzx r8d, byte [rsp + 0x30]
call fcn.14009a340
jmp 0x14009e467
movzx r8d, byte [rsp + 0x30]
mov rcx, rsi
call fcn.14009cf40
jmp 0x14009e467
movzx r8d, byte [rsp + 0x30]
mov rcx, rsi
call fcn.140099cf0
jmp 0x14009e467
movzx r8d, byte [rsp + 0x30]
mov rcx, rsi
call fcn.14009a030
jmp 0x14009e467
movzx eax, byte [rsp + 0x88]
mov rcx, rsi
movzx r9d, byte [rsp + 0x30]
movzx r8d, byte [rsp + 0x30]
mov byte [rsp + 0x20], al
call fcn.14009d470
jmp 0x14009e467
movzx eax, byte [rsp + 0x88]
movzx r9d, bl
movzx r8d, byte [rsp + 0x30]
mov rcx, rsi
mov byte [rsp + 0x28], al
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x20], al
call fcn.140096760
jmp 0x14009e467
movzx eax, byte [rsp + 0x88]
movzx r9d, bl
movzx r8d, byte [rsp + 0x30]
mov rcx, rsi
mov byte [rsp + 0x28], al
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x20], al
call fcn.14009ba20
jmp 0x14009e467
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 + 0x9ed68]
mov r9d, dword [rdx + rax*4 + 0x9ed3c]
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