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

Disassembly:
mov qword [rsp + 0x18], rbp
push rsi
mov dword [rsp - 0x24], ebp
push rdi
push r12
push r13
push r14
mov dword [rsp - 0x24], ebp
sub rsp, 0x30
movsd xmm0, qword [r8]
xor ebp, ebp
mov dword [rsp - 0x18], edi
movsd qword [rsp + 0x20], xmm0
mov r14, r8
mov eax, dword [rsp + 0x20]
mov rsi, rdx
mov dword [rsp - 0x20], 0x1dc0346c
mov rdi, rcx
cmp eax, 2
jne 0x14007bc71
mov dword [rsp - 0x10], 0x5edb395
xor r12d, r12d
jmp 0x14007bcd1
mov r8, qword [rsp + 0x20]
test eax, eax
jne 0x14007bc8d
mov rcx, r8
mov dword [rsp - 0x10], ebp
shr rcx, 0x20
shr ecx, 2
and ecx, 8
jmp 0x14007bcb3
mov rax, r8
shr rax, 0x20
mov dword [rsp - 0x28], esp
mov edx, eax
shr edx, 2
not edx
xchg rdx, rdx
and edx, 1
mov ecx, edx
test al, 8
jne 0x14007bcb3
mov rsi, rsi
or edx, 2
mov ecx, edx
mov r12d, ecx
mov dword [rsp - 0x40], 0x650ede51
shr r8, 0x20
or r12d, 4
test r8b, 0x10
mov rsi, rsi
cmovne r12d, ecx
test r12b, 8
pushf
mov eax, 0x7f64d4e7
xchg rbx, rbx
xor eax, 0x7665519
sub eax, 0x57759420
xor eax, 0x45eb2385
xor eax, 0x6bc29f8a
mov rbx, rbx
add eax, 0x250d5db6
sub eax, 0x33b2af7e
popf
pushf
xchg rsp, rsp
mov r13d, 0x348c49b7
xor r13d, 0x3d8efffe
add r13d, 0x6dfd5a03
sub r13d, 0x76f15f92
mov r15, r15
xor r13d, 0x442986bf
sub r13d, 0x442735e5
popf
cmovne r13d, eax
mov dword [rsp - 0x34], esi
test rsi, rsi
je 0x14007c79b
mov qword [rsp + 0x60], rbx
lea rdx, [0x140000000]
xchg r13, r13
mov qword [rsp + 0x68], r15
movabs r9, 0xcccccccc47d8f522
add r9, 0x2b8df9b3
xchg rdx, rdx
add r9, 0x7d0a50e
xor r9, 0x720d9946
xor r9, 0x22a1ae5
add r9, 0x1aada22d
mov r9, r9
add r9, 0x7fffffff
add r9, 0x270f1a61
movabs r10, 0x666666661706558b
mov rbx, rbx
add r10, 0x2b83707a
sub r10, 0x390fe183
add r10, 0x333f4d02
xor r10, 0x5adf57e3
mov r12, r12
nop dword [rax]
mov eax, dword [rsi + 8]
dec eax
mov dword [rsp - 0x24], 0x6f5fb234
cmp eax, 6
ja case.default.0x14007bdf0
cdqe
mov ecx, dword [rdx + rax*4 + 0x7c7bc]
mov dword [rsp - 0x40], edx
add rcx, rdx
jmp rcx
cmp qword [rsi + 0x38], 0
jne 0x14007beed
cmp qword [rsi + 0x10], 0
jne 0x14007be39
xchg r10, r10
mov word [rdi], 0x2b07
add word [rdi], 0x1611
xor word [rdi], 0xdca
sub word [rdi], 0x2057
xchg r9, r9
add word [rdi], 0x1109
xor word [rdi], 0x60df
add rdi, 2
mov dword [rsp - 0x14], 0x6508d0b9
jmp case.default.0x14007bdf0
mov byte [rdi], 0x30
add byte [rdi], 0x43
sub byte [rdi], 0x3d
mov dword [rsp - 0x24], ebp
add byte [rdi], 0x16
xor byte [rdi], 0x51
add byte [rdi], 0x3e
mov dword [rsp - 0x38], 0x4f9e5df
inc rdi
test r12b, 1
je 0x14007be83
mov byte [rdi], 6
mov dword [rsp - 0x34], esp
add byte [rdi], 0x4b
xor byte [rdi], 0x6a
add byte [rdi], 0x12
mov rbx, rbx
sub byte [rdi], 0x36
sub byte [rdi], 7
add byte [rdi], 0x10
inc rdi
mov dword [rsp - 0x10], edi
add ebp, dword [r14 + 8]
cmp dword [r14], 0
jne 0x14007beed
mov dword [rsp - 0x24], esi
test byte [r14 + 4], 2
je 0x14007beb0
mov byte [rdi], 0x4d
mov r14, r14
add byte [rdi], 0x10
xor byte [rdi], 0xa
add byte [rdi], 0x1a
mov r11, r11
sub byte [rdi], 0x64
inc rdi
mov byte [rdi], 0
xchg r14, r14
xor byte [rdi], 0x1b
add byte [rdi], 0x49
add byte [rdi], 9
xor byte [rdi], 0x6a
xchg r11, r11
add byte [rdi], 3
inc rdi
test ebp, ebp
jle 0x14007beed
xchg rbp, rbp
movsxd rbx, ebp
movzx edx, r13b
mov r8, rbx
xchg r13, r13
mov rcx, rdi
call fcn.140074120
add rdi, rbx
xchg r15, r15
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x10]
jne 0x14007c003
sub ebp, dword [r14 + 8]
mov dword [rsp - 0xc], 0x427ddda4
cmp dword [r14], 0
jne 0x14007bf74
test byte [r14 + 4], 2
je 0x14007bf34
xchg rdi, rdi
mov byte [rdi], 0xd
add byte [rdi], 0xc
xor byte [rdi], 0x33
xor byte [rdi], 0x2a
mov dword [rsp - 0x2c], 0x60d613f2
add byte [rdi], 0x3a
xor byte [rdi], 0x37
inc rdi
mov byte [rdi], 0x67
mov rsp, rsp
add byte [rdi], 9
add byte [rdi], 0xb
sub byte [rdi], 2
sub byte [rdi], 0x23
mov r9, r9
sub byte [rdi], 0x4c
inc rdi
test ebp, ebp
jle 0x14007bf74
mov dword [rsp - 0x1c], esi
movsxd rbx, ebp
movzx edx, r13b
mov r8, rbx
mov dword [rsp - 0x44], 0x196c87ff
mov rcx, rdi
call fcn.140074120
add rdi, rbx
test r12b, 1
xchg r13, r13
je 0x14007bfa5
mov byte [rdi], 0x4d
sub byte [rdi], 0x30
mov dword [rsp - 0x28], 0x570b9c8c
add byte [rdi], 0x5c
xor byte [rdi], 0x3f
xor byte [rdi], 0x44
add byte [rdi], 0x15
mov dword [rsp - 0x2c], 0x74441605
add byte [rdi], 9
inc rdi
mov byte [rdi], 0x47
mov dword [rsp - 0x2c], 0x7c94bcc0
add byte [rdi], 0x30
sub byte [rdi], 0xd
add byte [rdi], 3
mov dword [rsp - 0x38], 0x7acb399f
sub byte [rdi], 0x4c
xor byte [rdi], 0x7c
inc rdi
mov qword [rsi + 0x38], 0xab82cc5
mov dword [rsp - 0x10], ebx
add qword [rsi + 0x38], 0x1b2aafef
add qword [rsi + 0x38], 0x31d89118
xor qword [rsi + 0x38], 0x791845f5
xor qword [rsi + 0x38], 0x2ea32839
mov dword [rsp - 0x18], 0x7cac3d21
jmp case.default.0x14007bdf0
test rax, rax
je 0x14007c0bc
mov byte [rdi], 0x74
sub byte [rdi], 0x69
xchg rsi, rsi
add byte [rdi], 0x10
add byte [rdi], 0x3f
xor byte [rdi], 0x76
inc rdi
mov dword [rsp - 0x30], 0x75ea66ff
test r12b, 2
je 0x14007c04a
mov byte [rdi], 0x72
mov r9, r9
xor byte [rdi], 0x11
xor byte [rdi], 0x58
sub byte [rdi], 0x1a
add byte [rdi], 0x58
mov rsp, rsp
sub byte [rdi], 0x59
inc rdi
cmp dword [r14], 0
xchg r13, r13
jne 0x14007c0bc
test byte [r14 + 4], 2
je 0x14007c077
mov dword [rsp - 0x38], ebx
mov byte [rdi], 0x7d
xor byte [rdi], 0x50
add byte [rdi], 9
mov dword [rsp - 0x30], esp
add byte [rdi], 0x40
xor byte [rdi], 0x7b
inc rdi
xchg r8, r8
mov byte [rdi], 0x3c
add byte [rdi], 0x3a
sub byte [rdi], 0x57
xor byte [rdi], 0x67
xchg rdi, rdi
sub byte [rdi], 0x40
sub byte [rdi], 0x2e
inc rdi
test ebp, ebp
mov dword [rsp - 0x34], 0x6511155c
jle 0x14007c0bc
movsxd rbx, ebp
movzx edx, r13b
mov dword [rsp - 0x18], 0x395808a
mov r8, rbx
mov rcx, rdi
call fcn.140074120
mov dword [rsp - 0x44], ebp
add rdi, rbx
mov rcx, qword [rsi + 0x38]
mov rax, qword [rsi + 0x18]
inc rcx
mov dword [rsp - 0x44], 0x171afacb
mov qword [rsi + 0x38], rcx
mov rsi, qword [rax + rcx*8 - 8]
jmp 0x14007c6d2
cmp qword [rsi + 0x38], 0
jne 0x14007c1cd
mov dword [rsp - 0x30], esi
cmp qword [rsi + 0x10], 0
jne 0x14007c11b
mov word [rdi], 0x530c
xchg r13, r13
sub word [rdi], 0x3b4c
add word [rdi], 0x3003
xor word [rdi], 0x39a9
sub word [rdi], 0xef
mov r11, r11
add rdi, 2
jmp case.default.0x14007bdf0
mov byte [rdi], 0x56
add byte [rdi], 0xd
xchg r13, r13
xor byte [rdi], 0xa
xor byte [rdi], 0x1c
sub byte [rdi], 0x31
mov r12, r12
add byte [rdi], 0x37
inc rdi
test r12b, 1
mov dword [rsp - 0x1c], 0xbf8ced2
je 0x14007c15f
mov byte [rdi], 0x5c
add byte [rdi], 9
sub byte [rdi], 0x23
xchg rdx, rdx
xor byte [rdi], 0x79
xor byte [rdi], 0x5f
sub byte [rdi], 0x44
inc rdi
mov rbx, rbx
add ebp, dword [r14 + 8]
cmp dword [r14], 0
jne 0x14007c1cd
xchg rcx, rcx
test byte [r14 + 4], 2
je 0x14007c195
mov byte [rdi], 0x42
add byte [rdi], 0x1d
mov dword [rsp - 0x28], 0x5034b71c
sub byte [rdi], 0x19
sub byte [rdi], 0x27
xor byte [rdi], 0x12
mov dword [rsp - 0x40], 0x4e4fdf8c
inc rdi
mov byte [rdi], 0x33
sub byte [rdi], 0x21
add byte [rdi], 0x2e
mov dword [rsp - 0x1c], ebx
sub byte [rdi], 0x28
sub byte [rdi], 0xe
inc rdi
test ebp, ebp
xchg rbx, rbx
jle 0x14007c1cd
movsxd rbx, ebp
movzx edx, r13b
mov r15, r15
mov r8, rbx
mov rcx, rdi
call fcn.140074120
add rdi, rbx
xchg rsp, rsp
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x10]
jne 0x14007c2d3
sub ebp, dword [r14 + 8]
mov dword [rsp - 0x20], ecx
cmp dword [r14], 0
jne 0x14007c254
test byte [r14 + 4], 2
je 0x14007c213
mov dword [rsp - 0x34], 0x66b4d03d
mov byte [rdi], 0x14
add byte [rdi], 0x13
xor byte [rdi], 0x12
mov rbx, rbx
sub byte [rdi], 0x1d
xor byte [rdi], 0x65
sub byte [rdi], 0x70
mov r12, r12
inc rdi
mov byte [rdi], 0x7b
sub byte [rdi], 0x4a
xchg r10, r10
add byte [rdi], 0x1d
xor byte [rdi], 0x50
sub byte [rdi], 0x14
inc rdi
mov dword [rsp - 0x24], 0x475ba06c
test ebp, ebp
jle 0x14007c254
movsxd rbx, ebp
mov r11, r11
movzx edx, r13b
mov r8, rbx
mov rcx, rdi
mov dword [rsp - 0x38], 0x1a18f658
call fcn.140074120
add rdi, rbx
test r12b, 1
mov dword [rsp - 0x40], edi
je 0x14007c273
mov byte [rdi], 0x75
xor byte [rdi], 0x3c
sub byte [rdi], 3
xchg r14, r14
xor byte [rdi], 0x51
add byte [rdi], 9
inc rdi
mov byte [rdi], 0x18
xchg r15, r15
xor byte [rdi], 0x7e
sub byte [rdi], 0x39
add byte [rdi], 0x1d
mov dword [rsp - 0x14], ebx
sub byte [rdi], 0x1a
xor byte [rdi], 0x22
add byte [rdi], 0x6b
mov dword [rsp - 0x24], 0x6bf1afa9
inc rdi
mov qword [rsi + 0x38], 0x79c13f96
sub qword [rsi + 0x38], 0x65b47f38
mov dword [rsp - 0x14], ebx
sub qword [rsi + 0x38], 0x8c98f4
xor qword [rsi + 0x38], 0x6da8698a
sub qword [rsi + 0x38], 0x7e284ee0
mov dword [rsp - 0x28], 0x240c9a11
jmp case.default.0x14007bdf0
test rax, rax
je 0x14007c393
mov rsp, rsp
mov byte [rdi], 0x23
xor byte [rdi], 0x1b
sub byte [rdi], 0x1c
mov rcx, rcx
xor byte [rdi], 0x7d
add byte [rdi], 0x11
sub byte [rdi], 0x46
mov rcx, rcx
inc rdi
test r12b, 2
je 0x14007c319
mov rcx, rcx
mov byte [rdi], 0x68
sub byte [rdi], 0x5d
add byte [rdi], 0x66
sub byte [rdi], 0x71
mov dword [rsp - 0x28], edx
add byte [rdi], 0x20
inc rdi
cmp dword [r14], 0
jne 0x14007c393
xchg r14, r14
test byte [r14 + 4], 2
je 0x14007c34e
mov byte [rdi], 0x66
mov dword [rsp - 0x24], 0x75c7aa72
sub byte [rdi], 0x1c
add byte [rdi], 0x15
add byte [rdi], 0x13
mov dword [rsp - 0x28], esp
xor byte [rdi], 0x43
xor byte [rdi], 0x3c
inc rdi
mov dword [rsp - 0x14], esp
mov byte [rdi], 0x39
add byte [rdi], 0x1c
sub byte [rdi], 0x49
add byte [rdi], 7
mov rbx, rbx
add byte [rdi], 0x35
sub byte [rdi], 0x12
sub byte [rdi], 0x2c
mov rbx, rbx
inc rdi
test ebp, ebp
jle 0x14007c393
xchg r8, r8
movsxd rbx, ebp
movzx edx, r13b
mov r8, rbx
mov dword [rsp - 0x3c], 0x201ec24a
mov rcx, rdi
call fcn.140074120
add rdi, rbx
mov r13, r13
mov rax, qword [rsi + 0x38]
mov r15, qword [rsi + 0x18]
lea rbx, [rax + rax*2]
mov rcx, rcx
inc rax
mov qword [rsi + 0x38], rax
mov byte [rdi], 0x35
mov dword [rsp - 0x40], esp
xor byte [rdi], 0x50
sub byte [rdi], 0x5f
xor byte [rdi], 0x64
mov dword [rsp - 0x38], ebx
sub byte [rdi], 0x40
inc rdi
mov r8, qword [r15 + rbx*8]
mov dword [rsp - 0x28], 0x6d01ef96
mov rcx, rdi
mov rdx, qword [r15 + rbx*8 + 8]
call fcn.14007ca50
add rdi, rax
mov dword [rsp - 0x18], 0x3a35a374
mov word [rdi], 0x2a2b
sub word [rdi], 0x24a5
xor word [rdi], 0x1d52
xor word [rdi], 0xbc5
mov dword [rsp - 0x2c], esi
add word [rdi], 0x2711
add rdi, 2
test r12b, 4
mov dword [rsp - 0x30], 0x2e902523
je 0x14007c436
mov byte [rdi], 0x37
xor byte [rdi], 0x54
mov rbp, rbp
sub byte [rdi], 0x53
add byte [rdi], 0x16
add byte [rdi], 8
xor byte [rdi], 0xe
mov dword [rsp - 0x14], 0x75e43055
inc rdi
mov rsi, qword [r15 + rbx*8 + 0x10]
jmp 0x14007c6d2
mov byte [rdi], 0x75
sub byte [rdi], 0x4b
sub byte [rdi], 0x15
xchg r9, r9
add byte [rdi], 0x4c
sub byte [rdi], 2
sub byte [rdi], 0x3d
xchg r14, r14
inc rdi
mov r8, qword [rsi + 0x18]
mov rcx, rdi
mov rdx, qword [rsi + 0x10]
mov dword [rsp - 0x3c], ecx
call fcn.14007ca50
add rdi, rax
mov byte [rdi], 0x5e
xchg r13, r13
sub byte [rdi], 0x15
xor byte [rdi], 6
sub byte [rdi], 0xb
sub byte [rdi], 0x22
mov dword [rsp - 0x2c], 0x1e685529
inc rdi
jmp case.default.0x14007bdf0
mov rdx, qword [rsi + 0x10]
test rdx, rdx
jns 0x14007c4bb
mov byte [rdi], 0x45
mov rdx, rdx
add byte [rdi], 0x21
sub byte [rdi], 0x46
add byte [rdi], 0x2a
xor byte [rdi], 0x65
xchg rcx, rcx
sub byte [rdi], 2
inc rdi
neg rdx
inc rdi
xchg rbx, rbx
mov r8, rdx
cmp rdx, 0xa
jl 0x14007c4e9
mov dword [rsp - 0x10], ecx
nop dword [rax + rax]
mov rax, r9
inc rdi
mul rdx
mov rdx, rdx
shr rdx, 3
cmp rdx, 0xa
jge 0x14007c4d3
mov r9, rdi
mov dword [rsp - 0x34], esp
nop word [rax + rax]
mov rax, r10
lea r9, [r9 - 1]
xchg rdi, rdi
imul r8
sar rdx, 2
mov rax, rdx
mov dword [rsp - 0x28], 0x1e351aac
shr rax, 0x3f
add rdx, rax
movzx eax, dl
mov r11, r11
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
mov rbx, rbx
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov dword [rsp - 0x18], edi
mov r8, rdx
test rdx, rdx
jg 0x14007c4fa
mov rsp, rsp
jmp case.default.0x14007bdf0
movsd xmm2, qword [rsi + 0x10]
lea rdx, [0x140002a34]
mov dword [rsp - 0x3c], edi
movq r8, xmm2
mov rcx, rdi
mov rbx, rdi
call fcn.14007cb80
mov rsi, rsi
movsxd rcx, eax
mov edx, 0x71f49f3f
sub edx, 0x2d75a53d
mov dword [rsp - 0x38], esi
sub edx, 0x26fe3e44
xor edx, 0x260c71c7
sub edx, 0x335c5a71
sub edx, 0x8306fdc
xchg rbx, rbx
add rdi, rcx
mov rcx, rbx
call fcn.140074a80
mov dword [rsp - 0x2c], 0x8a83dec
test rax, rax
je 0x14007c5d5
mov byte [rax], 0xf
mov dword [rsp - 0x30], ebx
add byte [rax], 0x39
xor byte [rax], 0x69
add byte [rax], 0x55
sub byte [rax], 0x49
mov rdi, rdi
xor byte [rax], 0x42
sub byte [rax], 0x41
jmp case.default.0x14007bdf0
mov edx, 0x40f19d7a
sub edx, 0x3fa6bb52
xchg r10, r10
add edx, 0xae98e62
add edx, 0x2f367cb3
sub edx, 0x28d1af3d
mov dword [rsp - 0x44], 0x7cbea742
sub edx, 0xd05a58a
sub edx, 0x5939848
mov rcx, rbx
mov dword [rsp - 0x2c], ecx
call fcn.140074a80
test rax, rax
jne case.default.0x14007bdf0
mov dword [rsp - 0x2c], edx
mov word [rdi], 0x7d4c
sub word [rdi], 0x13f8
xor word [rdi], 0x59c3
add word [rdi], 0x929
mov r14, r14
xor word [rdi], 0x31dd
add word [rdi], 0x2811
add rdi, 2
mov dword [rsp - 0x34], 0x20928289
jmp case.default.0x14007bdf0
cmp dword [rsi + 0x10], 0
je 0x14007c67e
mov dword [rdi], 0x523f6c67
add dword [rdi], 0x19b8b018
mov dword [rsp - 0x18], ebp
xor dword [rdi], 0x5ae103e6
add dword [rdi], 0x7bb65aa
add dword [rdi], 0x2ca0ed31
mov rcx, rcx
jmp 0x14007c6cb
mov eax, dword [0x140002a38]
mov dword [rdi], eax
movzx eax, byte [0x140002a3c]
mov dword [rsp - 0x10], esp
mov byte [rdi + 4], al
add rdi, 5
jmp case.default.0x14007bdf0
mov dword [rdi], 0x6765a262
xor dword [rdi], 0x71692839
add dword [rdi], 0x5e316466
mov dword [rsp - 0x3c], edi
xor dword [rdi], 0x6093a8f7
xor dword [rdi], 0x1b8d8f76
add dword [rdi], 0x479e76b
add dword [rdi], 0x58cec4c3
mov r12, r12
add rdi, 4
mov rsi, qword [rsi]
lea rdx, [0x140000000]
movabs r9, 0xcccccccc6079ad05
mov dword [rsp - 0x20], edi
xor r9, 0x51d6301f
add r9, 0x1ebfff71
add r9, 0xc369f51
mov rbp, rbp
sub r9, 0x54aeab1b
add r9, 0x7fffffff
add r9, 0x44d53c0d
movabs r10, 0x666666662f81d297
mov dword [rsp - 0x44], esp
add r10, 0xc00e607
xor r10, 0xa22d37d
add r10, 0x300a3409
sub r10, 0x1e9bad13
mov r14, r14
sub r10, 0x2046f7f1
add r10, 0x439e6b7f
test rsi, rsi
mov dword [rsp - 0xc], ebx
jne 0x14007bdca
mov r15, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov byte [rdi], 0xb
mov r11, r11
add byte [rdi], 8
xor byte [rdi], 0x64
sub byte [rdi], 0xa
mov dword [rsp - 0x24], ebx
sub byte [rdi], 0x32
add byte [rdi], 0x1e
sub byte [rdi], 0x59
mov rbp, qword [rsp + 0x70]
mov dword [rsp - 0x24], esi
add rsp, 0x30
pop r14
pop r13
pop r12
xchg rdi, rdi
pop rdi
pop rsi
ret
mov byte [rdi], bpl
mov rbp, qword [rsp + 0x70]
add rsp, 0x30
mov dword [rsp - 0xc], 0x7dfcbaea
pop r14
pop r13
pop r12
xchg r9, r9
pop rdi
pop rsi
ret