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

Disassembly:
mov ebx, dword [rdi + rax - 0x46851e15]
xor ebx, r11d
neg ebx
mov r8d, eax
inc ebx
rol ebx, 1
mov ebp, r8d
sub r8, rax
dec ebx
movsx ecx, bp
neg ebx
lea rdx, [rcx*2 - 0x13ddc900]
push r11
xor dword [rsp + r8], ebx
xor cl, r8b
or rdx, rbp
movzx r11d, bpl
pop r11
or rbp, rax
movsxd rbx, ebx
adc r9, rbx
mov si, word [rax + r10 - 0x46851e15]
sar rdx, cl
xor dx, ax
push rax
lea r10, [r8 + r10 + 2]
ror bpl, 0xe4
lea rdi, [rdi + r8*2 - 2]
cwd
mul r8b
add r8w, word [rdi + r8*4]
lea rbx, [rax - 0x5ae43052]
xor r8w, r11w
pop rbx
mul ebx
bts dx, bp
adc r8w, ax
call fcn.1402b906c
lea rcx, [rax + rdx*4 + 0x520a00a4]
mov edx, dword [r11 + rax - 0x7652]
mov esi, 0x7f96d500
lea r11, [r11 + rbp*2 - 0x60601326]
xor edx, r10d
xor edx, 0xf330d791
movzx ebx, si
jmp 0x140287d3c
lea r9, [r9 + rax - 0x391a]
xor edx, ebx
neg edx
lea rcx, [rax + rdi + 0x8087596]
xchg di, ax
movzx esi, al
not edx
bswap edx
xchg ecx, eax
jmp 0x1401609fc
mov word [rsi + r9 - 0x68830e5d], ax
mov qword [rsp + r9 - 0x68830e5d], rdi
ret
dec edx
movsx ebp, dil
rol edx, 3
dec edx
sar ebp, cl
rol edx, 2
push rbx
shl rsi, cl
movsx r11d, cl
inc rcx
xor dword [rsp + rbp], edx
shr rcx, 0xa9
pop rbx
movsxd rdx, edx
adc r8, rdx
mov rax, qword [rcx + r10]
lea rsi, [rcx*4 - 0xe46e6c1]
rol sil, 7
mov rdx, qword [r10 + rcx + 8]
lea rcx, [rbp + rdi*4 - 0x364c747c]
bts rcx, 0xa0
lea r10, [rsi + r10 + 0xe46e669]
or rax, rdx
not rax
inc rbp
jnp 0x14016d804
mov edi, 0xef9d952e
movzx r11w, byte [r9]
lea rsi, [rdi + rdi*4 + 0x70185f0b]
lea rbx, [rdi*8 + 0x4b211236]
movzx eax, dil
mov sil, byte [rax + r9 - 0x2c]
lea rcx, [rbx + rdi + 0x4613a218]
cwde
lea r9, [r9 + rax - 0x2c]
add r11b, sil
mov edx, eax
mul bl
rol eax, cl
mov word [rax + r9 - 0x1dd4000], r11w
cwde
mul ecx
push rbx
mov edx, dword [rbp + rdx*8 - 0x1fb78]
movzx esi, ax
sar qword [rsp + rsi], 0xd6
lea rbp, [rsi + rbp + 4]
xor edx, r8d
inc edx
and byte [rsp + rsi*4 + 3], sil
ror edx, 2
sub ebx, ecx
neg edx
xor word [rsp + rsi*2 + 5], ax
dec edx
mov qword [rsp + rsi], r8
sar cx, 0x46
ror rcx, cl
xor esi, eax
xor dword [rsp], edx
pop r8
movsxd rdx, edx
lea r11, [rcx + rax*8 + 0x292eca0c]
call fcn.1402f3abf
mov ecx, 0x1883f11b
movsx edi, cx
movsx edx, di
mov rdx, qword [r8 + rcx*4 - 0x620fc46c]
mov r9, qword [r8 + rcx*4 - 0x620fc464]
movzx r11d, dil
movsx eax, r11b
jmp 0x14023be88
mov rcx, qword [r10 + rdx]
neg edi
btc r11, 0x3f
lea r10, [r10 + rdx + 8]
idiv bp
add ax, word [rdx + r9]
lea r9, [r9 + rdx + 2]
xor ax, bx
rol ax, 1
not ax
xor ax, 0x2e1d
xchg rdi, r11
mov qword [rsp + rdx + 8], rbp
neg ax
xor ax, 0x43b0
or dword [rsp + rdx], edx
dec ax
xchg r11d, edx
shl dword [rsp + rdx + 4], 0x1f
movsx esi, dil
rol ax, 1
sar qword [rsp + rdx + 2], 0x95
and esi, 0x183d683a
xor bx, ax
lea rax, [rsp + rax + 0x10]
call fcn.1401a0639
mov ebx, 0x6eab9811
add ebx, ebx
mov ecx, ebx
mov rbx, qword [r8]
lea rcx, [rcx - 0x636d0f7b]
lea rbp, [rcx - 0x16fb94ff]
mov rax, qword [r8 + rbp - 0x62ee8ba0]
mov cl, byte [r8 + rbp - 0x62ee8b98]
movzx edx, bpl
lea r8, [r8 + rbp - 0x62ee8b9e]
add ebp, ebp
jp 0x1402084ef
mov eax, 0xeb091b3c
movzx r9d, al
mov r8, rsi
movzx edx, ax
lea rsi, [rsi + r9*2 - 0x7c]
lea rcx, [rax + r9*2 + 0x19901393]
movsx r10d, cl
shr cl, cl
mov dword [rsi + r9 - 0x3c], r8d
setbe dl
movsx r8d, r10w
lea rbx, [rbx + r9 - 0x40]
and r9w, 0x763f
mov r10d, dword [rbx + r9*4 - 0xf0]
xor r10d, ebp
or r8b, dl
ror r10d, 1
movsx r11d, cl
push rdx
dec r10d
call fcn.140199111
mov edi, 0x863d5714
movzx r8w, byte [r10]
movzx ebx, di
jmp 0x14026c30b
call fcn.1401aabaf
add r8, rsi
rol r8, cl
mov ebx, dword [rdi + rax - 0x483cd70f]
add esi, ecx
movsx edx, sil
lea rdi, [rdi + rsi - 0x422712eb]
not ebp
jns 0x1401ec250
mov ebx, 0xdab48fa7
mov edx, dword [rdi]
movsx ecx, bl
mov r10d, 0x55905e97
mov ebp, ebx
lea rdi, [rdi + r10 - 0x55905e93]
jmp 0x1402a0141
call fcn.140203b69
mov ecx, 0x1d0fc593
call fcn.14028f9c0
xor dword [rsp + rdx + 8], esi
cqo
mov rbx, qword [rsp + rdx + 8]
cdq
mov qword [rsp + rdx], rax
bt bp, 0x85
movsxd rsi, esi
adc r8, rsi
ror dl, 0xe6
jae 0x14016934b
bt r8d, edx
xor edi, 0x9fa6ab0e
dec edi
push r11
movzx ecx, r8w
xor dword [rsp + rcx], edi
and rcx, rax
movzx r11d, al
pop r11
movsxd rdi, edi
lea rax, [rcx + rax*8 - 0x33c410f0]
shl r8d, 8
adc rbp, rdi
add ecx, ebx
neg r8b
lea r9, [r8 + r9 - 1]
btc rdx, rax
movsx edi, bl
jb fcn.14024cf82
movzx ebx, byte [r8 + r9]
xchg r8w, cx
xor bl, r11b
mov esi, edi
rol bl, 1
shl eax, 0x21
sbb bl, 0xa0
jmp 0x1401cd70e
mov edi, dword [r8]
mov r11d, 0x3708ae1d
lea r8, [r8 + r11*2 - 0x6e115c36]
mov esi, 0x942c3c86
xor r11b, 0x1a
xor edi, r9d
inc edi
rol rsi, 0x6a
neg edi
movsx edx, si
movsx eax, dl
lea edi, [rdi + r11 + 0x2f936fa0]
lea rax, [r11*8 + 0x1285f3b4]
not edi
movzx ebp, si
movzx ecx, bpl
ror edi, 3
push r9
xor dword [rsp + r11*2 - 0x6e115c0e], edi
pop r9
call fcn.1401df1e2
neg ebx
lea rcx, [rsi + 0x1c9f84a4]
not ebx
push r8
shr r11d, cl
movsx edx, cx
lea r8, [r11*4 + 0x2235b5b7]
xor dword [rsp + r11*2 - 8], ebx
pop r8
add esi, 0x73bfdc97
call fcn.140297f0d
mov r8d, 0x45b933ab
movzx ebp, byte [r11 + r8 - 0x45b933ab]
neg r8d
movzx esi, r8w
movsx ecx, r8w
lea r11, [r11 + rsi - 0xcc54]
sar r8d, cl
movzx eax, cx
xor bpl, r10b
movsx ebx, r8w
xor al, r8b
neg bpl
lea rax, [r8*8 + 0xb8e4300]
push rax
shr qword [rsp + rsi*4 - 0x33154], cl
not bpl
rol bpl, 1
neg bpl
rol bpl, 1
pop r8
inc r8
sub bpl, 0x11
sal ebx, cl
xor r10b, bpl
shr rsi, cl
sar bx, 0x42
adc rbp, rsp
lea rcx, [rbx*4 - 0x5750f159]
add sil, bl
and sil, sil
movzx cx, byte [rbp + r8 - 0x405d]
add r8w, ax
add sil, 0xb3
lea rdi, [r8 + rdi - 0x71ef]
lea rbp, [rbx + rbx*8 + 0x70b97e0d]
mov word [rdi + r8*8 - 0x38f68], cx
bswap r8
xchg ebp, eax
or r8d, dword [r11 + rsi - 0xb3]
and bpl, al
lea r11, [r11 + rsi*2 - 0x162]
xor r8d, r10d
call fcn.14014f655
shld dx, bx, cl
pop rax
sar bpl, 0x66
mov word [r8], dx
sal r10, 0xd
ror word [rsp + 5], 0x2e
pop rdx
jmp r11
mov r8d, esi
xor edx, r11d
bt r8, 0x3c
adc bpl, 0x3c
dec edx
call fcn.14030a611
push rax
not bpl
movzx esi, word [rsp + rbx - 0x24018004]
imul dword [rsp + rbx*2 - 0x48030004]
rol bpl, 1
sal qword [rsp + rsi - 0x6242], 0x7e
xor bpl, dl
cbw
neg bpl
jmp 0x1401d4976
mov word [rdi + r10 - 1], r8w
lea r9, [r9 + rdi*2 - 6]
shr word [rsp + rdi + 5], 0x69
xor di, 0xc52b
lea rbx, [rbx - 0xef32774]
mov eax, dword [r9 + rdi*2 - 0x18a54]
lea rdx, [rsi + rdi*2 - 0x3be3cdf3]
jnp 0x14027423c
mov edx, 0x3eabc62b
movzx esi, dl
movsx r11d, si
mov esi, dword [rbp + rsi*8 - 0x158]
movsx eax, r11w
movzx edi, r11w
lea rbp, [rbp + r11*4 - 0xa8]
lea rdx, [rax + rdi*4 - 0xef55df9]
not ax
xor esi, r8d
push rax
inc r11
rol esi, 3
add dword [rsp + rdx + 0xef55d22], edi
movsx ebx, al
dec esi
btr ax, bx
add eax, ebx
neg esi
cdq
lea rcx, [rdi*4 + 0x60a8668b]
not esi
mov qword [rsp + rdx], r8
xadd rcx, rdi
cdq
xor dword [rsp + rdx], esi
pop r8
xadd rax, rcx
lea rbx, [rbx + r11*4 + 0x62974e83]
xor r11, rdx
movsxd rsi, esi
div r11w
dec rbx
lea rax, [rcx*8 - 0x6763bdf3]
add r10, rsi
call fcn.1402e8de9
lea r10, [r8 + r10 - 0xff94]
mov qword [r10 + r8 - 0xff8c], rdi
sub sil, sil
cbw
jae 0x140266230
pop r11
shr al, 0x86
imul ebx, ebx
cdq
movsxd r8, r8d
inc rcx
rol rdx, 0x6e
adc r9, r8
bt ax, 0xb5
cwd
setb al
mov ecx, dword [rcx + r10 - 0x172d6003]
dec ax
lea r10, [r10 + rbx*2 - 0x48030004]
lea rdi, [rdi + rbx - 0x24018005]
movzx ebp, byte [rdi + rbx - 0x24018004]
jp 0x14024548b
mov r8d, 0xc09aed80
movsx edi, r8w
mov di, word [rbp + riz]
jmp 0x1401f02f0
inc edx
and cx, cx
bswap edx
push rax
push rcx
sbb edx, 0xcd2b708a
push rax
lea r8, [rcx*8 - 0x384e21c8]
not edx
and byte [rsp + rcx - 0x173c0aa7], cl
mov qword [rsp + rcx*2 - 0x2e781548], r11
not rax
xor dword [rsp + rcx - 0x173c0a9c], edx
ror eax, 0x61
jae 0x140241631
xchg ecx, edx
rol bl, 1
xchg sil, dl
rol dil, 7
rol rdi, 0x85
sbb bl, 2
bt esi, r8d
xor r11b, bl
add rbx, rsp
shl rsi, cl
mov rdi, qword [rbx + r8 - 0xff8c]
movsx ebx, al
jp 0x1401b1536
mov ecx, 0x6265138
mov esi, 0xed134086
bswap edi
dec edi
bt r11d, 0xb2
neg sil
not edi
jp 0x140176888
call fcn.140270dc6
add rdi, r8
movzx ax, byte [rsi + r9 - 0x68830e5d]
movsx r8d, r9w
mov r10b, byte [rsi + r9 - 0x68830e5b]
lea rsi, [rsi + r11 + 0xf1a6]
sub word [rsp + r8*2 - 0x1cba], r9w
adc al, r10b
and dword [rsp + r11*4 + 0x3c692], r8d
jns 0x14015e30e
mov eax, 0x46851e15
lea rdi, [rdi + rax - 0x46851e19]
jmp 0x140157852
xor r11b, bpl
cwde
lea rbp, [rsp + rbp + 8]
movsx r8d, bl
call fcn.140254e21
mov edi, 0xd298391e
mov edx, dword [r9]
movsx eax, di
jmp 0x1402db241
ror esi, cl
not r8b
not ebx
sbb cl, 0x92
and ebp, ebx
btc rsi, rdx
mul dl
mov dword [rdi + rax - 0x483c11bd], ebp
call fcn.1401c267f
not edx
rol edx, 1
rol sil, 0x86
call fcn.14022a8af
rol edx, 1
call fcn.140206312
call fcn.1401f05ca
lea rsi, [r8*8 - 0x6b6594fe]
shr esi, 0xcf
xor edx, r11d
xchg r8d, ecx
dec rsi
dec edx
neg cx
lea rcx, [rbx + rbx - 0x716fbe72]
imul bx, si
xor edx, 0xdeacbfa8
not r8
dec bl
ror edx, 1
jmp 0x14021348a
add rbp, 2
movzx edx, r8w
lea r11, [r11 + rdx*4 - 0x3b602]
movzx r8d, word [r11 + rdx - 0xed80]
movzx r10d, dl
xor r8w, si
movsx ecx, dx
dec rcx
call fcn.140150c16
dec ebx
lea rcx, [rcx + rsi*2 - 0x5e4978e9]
jmp 0x140180a48
or bpl, dl
shrd rbx, rax, cl
mov ecx, ebp
mov qword [r8 + rdx - 0xa8], rbx
jmp 0x1402cc6e9
and esi, ebx
lea edx, [rdx + rsi*2 - 0x779cd957]
add r8d, 0xedad27ba
push r11
jl 0x140265860
movzx ecx, r11w
lea rbp, [rbp + rcx*2 - 0x1802e]
xor ebx, r8d
rol ebx, 3
jmp 0x1402014c8
lea r8, [r8 + rcx - 0x1883f10b]
rol di, 0x85
mov r10d, 0x322c45b7
or r11d, 0x3733a339
mov qword ss:[rcx + rdx - 0x1883f11b], r9
neg r10
lea rdx, [r10 - 0x624042fb]
lea rbx, [rbx + rcx - 0x1883f11f]
call fcn.14019201f
add r10, rcx
call fcn.14018ff6d
add r11, 4
xor ebx, r10d
call fcn.140150027
push rbp
xor dword [rsp + rax - 0x12fd97ee], ecx
pop rbp
sal rdx, 0xc9
movsxd rcx, ecx
call fcn.140279f49
mov edx, 0x25b51b22
lea rdi, [rdi + rdx - 0x25b51b26]
movsx ebp, dx
mov esi, edx
mov edx, dword [rdi + rdx - 0x25b51b22]
ror esi, 0x7f
jae 0x1401a08a0
mov r11d, edi
mov qword [rsp + rbp*8 - 0x1c010], r8
ret 0x28
mov r11, qword [rsp + rcx*2 - 0x2e781548]
movsxd rdx, edx
call fcn.1402c2af0
ja 0x14026cc3d
xor dword [rsp + rsi*2 - 0x1030], edx
pop r11
movsxd rdx, edx
sub cx, r8w
adc rbp, rdx
lea rcx, [rcx + rsi*2 - 0x23758762]
bt rbx, r8
jmp rbp
je fcn.1402d1c66
neg edx
movsx r9d, al
movsx r11d, di
xchg rcx, rdi
not edx
neg r9b
ror edx, 2
lea edx, [rdx + rax*2 - 0x7ecac9cd]
push rbp
jmp 0x1402999cb
push rdi
mov dl, byte [r10 + rbx - 0x5712]
shr bl, 0x67
inc qword [rsp + rbx - 0x5700]
lea r10, [r10 + rbx*2 - 0xadfe]
mov esi, ebx
mov ecx, 0xf01f3d20
not r8b
jnp 0x1402ff1ba
xor bpl, r11b
lea rax, [rbx*8 + 0x69366222]
rol bpl, 1
jmp 0x1401a2823
call fcn.14015d2f0
ror edx, 2
jmp 0x1401ef370
movzx r10d, r11w
ror rax, 0xf7
xor dword [rsp + rdi - 0x79cbffd2], edx
lea rbp, [rdi + rdi - 0x70d017c6]
pop rbp
xadd dil, r11b
movsxd rdx, edx
btc rdi, r9
xor dil, r10b
adc rsi, rdx
lea rbx, [rbx + rcx*2 - 0x5a8437d8]
jmp 0x1401a7db3
btc bx, cx
xor edx, esi
and r10d, 0xd6844ab6
lea rax, [rcx + rbp*8 - 0x54778b69]
sar ebx, cl
neg edx
sub edx, 0x92b81318
dec ecx
movzx r9d, cx
not edx
bts r9, 0xb3
inc edx
shl r10d, 0xeb
sbb rax, 0xffffffffb12b6b0f
lea rbx, [rbp + rcx - 0x77d73fd0]
ror edx, 1
lea rbp, [rbp + rcx*4 - 0x48f5d270]
xadd bx, r10w
push rsi
lea rsi, [rbx + rax + 0x6a2ec23d]
sub bl, 0x3f
xor dword [rsp + r10 - 0x2544f7d], edx
pop rsi
btr bp, 0xa3
xchg r10w, r9w
movsxd rdx, edx
shl r10b, 0x21
sbb bpl, cl
not r10d
adc r11, rdx
push rax
mov dx, word [r8]
push rbp
mov bx, word [r8 + 2]
mov cl, byte [r8 + 4]
add r8, 4
rol ax, 0xa
jb 0x1401933ac
mov edx, dword [rbp + riz]
mov ecx, 0xba2ee4a6
push rcx
add rbp, 4
or byte [rsp + 2], ch
xor edx, r8d
ror edx, 3
mov esi, ecx
add edx, 0x130beb04
and dword [rsp + 1], esi
movzx r11d, cx
not edx
and dword [rsp + r11*4 - 0x39297], 0x688f5a11
dec edx
xor edx, 0x86a7012e
xchg r11w, si
mov qword [rsp + r11 - 0xe4a6], r8
movzx edi, cx
movzx eax, cl
xor dword [rsp + r11*4 - 0x39298], edx
lea rcx, [r11 + rdi*4 - 0x3e6f7d6b]
pop r8
movsx ebx, dil
movsxd rdx, edx
add r10, rdx
movzx edx, sil
cwde
mov r9d, dword [rcx + r9 + 0x3e6b062d]
cdq
and si, si
js fcn.1402d8610
mov ecx, 0x173c0aac
lea rbx, [rcx + rcx - 0x31f10470]
mov ebp, ebx
lea rdi, [rdi + rcx - 0x173c0ab0]
movzx edx, cl
mov edx, dword [rdi + rcx - 0x173c0aac]
movzx r8d, cl
add r8w, bp
xor edx, r11d
mov eax, 0x3ebed2a9
sal rbx, 0xc4
ror edx, 1
btc ebx, ebx
jae 0x1402ffe9e
mov eax, 0x9314cc16
lea rbp, [rax + rax*4 - 0x75ef7df4]
mov r8d, dword [r11]
lea rbx, [rax*2 - 0x13e8d8dc]
shl bpl, 0x25
adc r11, 3
xor r8d, r10d
movsx ecx, bpl
rol bp, 0xe3
sub bpl, al
neg r8d
movsx esi, al
rol ax, 0x4e
dec r8d
not esi
call fcn.14026e19c
lea r10, [rax + r10 + 2]
shr r8b, 0x41
sal esi, cl
mov dword [rax + r10], esi
bt r8, rdx
adc qword [rsp + r8*2], r9
ret
xor rdx, rcx
lea r9, [rcx*2 + 0x1710ff10]
mov ebx, dword [rdi]
adc rdi, 4
movzx eax, r9w
xor ebx, esi
lea rax, [r9*2 - 0x7a77be54]
not ebx
dec ecx
inc ebx
jmp 0x14016f415
jmp 0x14015c05d
sar bx, 0xef
xadd cl, ch
not dl
inc bx
and r8b, dl
rol byte [rsp + rbx*4 - 3], 0xa1
xadd ebx, edi
js 0x1401ab2cb
jae 0x1401bc895