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

Disassembly:
rol ecx, 1
xor al, 0x20
rol edx, 0xb0
sbb ecx, 0xa5b09289
shl dword [esp], 0xe1
jg 0x8cf519
call fcn.00913115
xchg word [esp + ecx + 2], cx
xor bx, dx
sar dword [esp + ecx - 0xd52f], 0xe4
jp 0xd09c07
xchg byte [esp + 3], dl
rol ecx, 1
dec ax
ror dx, 0x88
xor ecx, 0xfa3d9439
dec eax
setne al
lea ecx, [ecx + eax - 0x52d194e1]
bts eax, 0xab
bt dx, dx
dec dl
xor ecx, 0xce13a0ab
push edx
ror ecx, 1
xchg dword [esp], edx
sub word [esp + 5], dx
inc edx
xor ebx, ecx
inc edx
rol eax, 0xaa
add edi, ecx
shl dl, 0x22
call fcn.00825061
bswap ecx
mul dx
pop eax
adc edx, edx
dec ecx
bswap ecx
not ecx
shr word [esp + 2], 0xa5
push edx
sub dl, 0xb0
xor ebx, ecx
add ebp, ecx
shr word [esp + 5], 0xf
shl byte [esp + 7], 0xa1
and dword [esp + 1], 0xac158fb6
pop edx
pop eax
jno fcn.0087275e
mov ecx, 0xb3a314b8
movzx edx, cl
movsx eax, cx
mov ecx, dword [edx + ebp - 0xb8]
push edx
neg eax
jb 0xd007fe
mov ecx, 0xbfab9e9d
add ecx, ecx
mov ecx, dword [ecx + esi - 0x7f573d3a]
mov eax, 0x1a1683b3
mov eax, dword ss:[ecx + eax*4 - 0x685a0ecc]
mov ecx, 0x84bf7ca6
inc cl
mov dword [esi], eax
movzx edx, cx
ror ecx, 0xe2
btr dx, cx
lea ebp, [ebp + edx*8 - 0x3e53c]
mov edx, dword [ebp + edx*2 - 0xf94e]
xor edx, ebx
movsx eax, cx
xor cx, cx
sbb edx, 0x8e1e6316
inc eax
ror edx, 2
not edx
xor cx, ax
rol edx, 3
btr ax, 0xf
setae cl
dec eax
xor ebx, edx
lea eax, [eax*4 - 0x7aeae4ee]
xor cl, ch
add ecx, eax
add edi, edx
movsx edx, cl
call fcn.00c82836
mov eax, 0x48ae94b6
movzx edx, al
btc edx, eax
mov edx, dword [edi + edx - 0x4000b6]
not eax
shr ax, 0xe3
and eax, eax
mov ecx, dword ss:[edx]
jp 0xc7e9b1
mov eax, 0x61ad69a1
mov ax, word [edi + eax - 0x61ad69a1]
mov ecx, 0xc8b094b2
and cx, cx
movzx edx, cl
mov cx, word [edi + edx*4 - 0x2c6]
btc dx, dx
and dx, dx
jno 0x8226c9
mov dword [esp], ecx
mov cl, byte [edi + 4]
rol byte [esp + 1], 0xa7
mov edx, dword [esp]
shr eax, cl
not dl
sub byte [esp + 2], 0xbd
jg 0xcded5a
sar eax, cl
rol dx, 1
neg cl
ror word [esp + ecx*8 - 0x471114da], 0xa5
shr eax, cl
inc dx
neg dx
sar ecx, 0x9e
sub byte [esp + ecx*8], ch
sbb dx, 0x5a14
sub al, al
jle 0x8044f2
shrd dx, ax, cl
pop eax
neg ax
movzx ecx, ax
mov word [esi + ecx*2 - 0x1f0ec], dx
inc eax
mov edx, dword [ebp + ecx - 0xf876]
sar eax, cl
ror al, 6
lea ebp, [ebp + eax*4 - 0x7e4]
btr ax, 0xbc
setae cl
btc ecx, ecx
xor edx, ebx
cbw
or ecx, 0xf815a711
not al
ror edx, 1
or ax, 0xfb30
call fcn.009454a6
mov esi, 0xc4393f15
jmp 0x970f37
bound edi, qword [ebx + 0x6a]
pop ecx
jmp 0x970f39
das
movsd dword es:[edi], dword [esi]
add al, 0x25
int1
mov ah, ch
or dword [edx + edi - 0x14a695e1], ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
outsb dx, byte [esi]
inc edi
push 0x59
jmp 0x970f00
mov ecx, dword [eax + esi - 0x459c]
btc ax, dx
sub al, 0xa8
lea esi, [esi + eax*4 - 0x137be]
sal dword [esp + eax - 0x4dee], 0xd6
push edx
or dx, dx
xor ecx, ebx
cwde
sar edx, 0xfa
jne 0x9040a8
push eax
movzx edx, byte [esi - 1]
inc ax
jb 0x7c02e6
not dword [esp]
xor dl, bl
sub eax, dword [esp]
ror eax, 0x2d
push eax
not dl
cbw
sar ax, 0x86
sub eax, 0x9db0b70f
rol dl, 1
not dl
xchg word [esp + eax*2 - 0x71e491dd], ax
cwde
or byte [esp + 5], al
neg dl
not dl
xor bl, dl
inc byte [esp + 7]
ror dword [esp + 2], 0x76
lea edx, [esp + edx + 8]
or al, 0x29
push eax
mov dword [edx], ecx
movzx ecx, ax
shr ecx, 0x1d
adc ecx, dword [esi + ecx - 5]
xor ecx, ebx
neg dword [esp + 6]
pop edx
jp 0x85267f
not ecx
push eax
call fcn.0093f794
mov dword [edi + 2], eax
lea ecx, [edx + 0x6233de88]
movzx edx, word [ecx + esi - 0x5d4651e5]
lea eax, [ecx*4 + 0x601a120a]
sal cx, 0x6a
cmovae cx, ax
xor dx, bx
xor cl, 0xa8
push eax
add ecx, 0xab9b95bc
inc dx
jmp 0x970e5c
lea ebp, [ebp + edx*4 - 0x2dc]
adc byte [esp + edx*4 - 0x2dd], dh
xor ecx, ebx
xor edx, eax
adc ecx, 0x6f183a09
sar edx, 0xb8
sar dl, 0x65
ror ecx, 3
rol byte [esp + 2], 0x41
lea ecx, [ecx + eax - 0x48ec760b]
jae 0xd0a7c2
xchg byte [esp + ecx*2 - 0x41fd], al
mov word [edi + ecx*2 - 0x4200], dx
xadd word [esp + ecx*8 - 0x107ff], ax
push ecx
mov dword [esp + ecx - 0x2100], esi
ret 4
bt ecx, ecx
mov word [edi + ecx*8 - 0x6a998], dx
lea ecx, [esp + ecx - 0xd4fb]
lea edx, [eax + eax*4 + 0x91518b0]
sbb byte [esp + eax + 1], 0x14
sal dx, 0xe3
add al, byte [eax + ecx]
movsx ecx, dl
neg cl
mov word [edi + edx - 0x915c582], ax
pop eax
xor edx, 0x23a7d09
or edx, dword [esp + edx*4 - 0x2cbee224]
lea edi, [eax + edi - 0x4598]
js 0xc722f8
inc ebp
jge 0xd09cc4
ret
add eax, 0x19be62a9
sub dword [ecx], 0xfffffffd
dec esi
mov esi, 0x90158319
iretd
test eax, 0x8907c4c7
insb byte es:[edi], dx
aad 0x7f
les eax, [edi]
mov dword [ecx + ebx*8 - 0x76f83b11], edi
je 0xd09c64
pop ss
les eax, [edi]
mov dword [ebp + esi - 0x76f83b01], esi
sub al, 0x39
iretd
not dl
jae 0x752d2e
shl eax, 0x32
bswap edx
sub eax, 0xb50f3b95
mov ecx, eax
xor cx, 0x3100
not edx
push eax
call fcn.007c57af