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

Disassembly:
lea esi, [esi + eax - 0x7a123e31]
add dword [esp + eax - 0x7a123e35], ecx
jle 0x46bdc3
mov ebp, 0x3504d817
mov esp, esi
lea edx, [ebp*2 + 0x20175423]
pop edi
lea ecx, [edx + ebp + 0x220cb419]
mov eax, 0x8238bc26
btc bp, ax
pop eax
bswap ecx
call fcn.0046e63a
ror eax, 0x37
xor edx, 0x46b3249e
inc edx
btc eax, eax
push eax
inc al
bswap edx
cbw
movzx ecx, byte [esp + eax - 0x1ff0002]
setne byte [esp + ecx*8 - 7]
xor edx, 0xc239be84
not edx
jmp 0x464cd7
xor bl, al
shr dl, 0xa3
add eax, esp
movzx dx, byte [eax + edx - 0x7dff8613]
sub edi, 2
mov word [edi], dx
sal cx, 1
movsx eax, cl
jge fcn.004c48aa
bts cx, 0xb5
adc ebp, edx
mov eax, dword [edi + ecx - 0x5c9eab61]
mov dx, word [edi + ecx - 0x5c9eab5d]
rol ecx, 0x88
xchg dword [esp + 8], ecx
adc edi, 6
dec dword [esp + 8]
dec dword [esp + 5]
mov word [eax], dx
pop eax
pop ecx
pop edx
jmp ebp
lea edi, [edi + eax - 4]
mov edx, dword [edi + eax*8]
sar cx, 0x6d
call fcn.004e5a3e
mov edx, 0x33119219
movzx ecx, dl
lea ebp, [ebp + edx - 0x3311921d]
and cl, ch
or ecx, dword [ebp + edx*2 - 0x66232432]
imul edx, edx
sub edx, 0x8a3b9634
jbe 0x4ad300
xor ecx, ebx
movsx eax, dl
lea eax, [edx*8 + 0x5a945024]
bswap ecx
btr ax, ax
bts dx, dx
imul eax
dec ecx
inc edx
imul dx, dx
seto dl
bswap ecx
inc edx
rol ecx, 1
xadd edx, eax
sal dl, 0x21
sal dx, 0xc4
not ecx
btc ax, ax
shr edx, 0x78
shr dl, 0xe2
xor ebx, ecx
ror eax, 0x19
neg dx
shr eax, 0x74
adc esi, ecx
mov ax, word [edx + edi - 0xffce]
call fcn.00487ed6
adc dl, dl
mov dword [ebp + edx*4 - 0x3e438], eax
lea eax, [edx + ecx*2 - 0x5aecaa49]
rol eax, 0x51
jae 0x440afa
mov edx, 0xdf35532e
jmp 0x4b9731
adc edi, 4
add ax, ax
push edx
popfd
and cl, al
movzx edx, ax
mov ecx, dword [esi + edx - 0xf426]
cwde
add dx, 0x1805
lea esi, [esi + edx*4 - 0x30a8]
ror ax, 0x8e
lea edx, [eax + 0x7d825d3a]
xor ecx, ebx
not ecx
neg ecx
sub ecx, 0x2c332299
rol dl, 0x47
lea eax, [edx + edx*2 + 0x46140730]
bswap ecx
rol edx, 0x98
imul ax
dec edx
xor ebx, ecx
imul ax, ax
jno 0x472a21
add ebp, ecx
movsx ecx, al
shr cl, 0xc6
sal eax, 0x43
xor ecx, ebp
jmp ecx
imul eax, ecx
jae 0x4d1cd6
xor eax, eax
xor edx, ebx
push ecx
or cl, al
xor edx, 0xbca354bc
not dword [esp + eax*8 + 1]
sub cl, 0x1b
sbb eax, ecx
bswap edx
inc edx
neg edx
not ax
div cl
inc eax
rol edx, 2
dec ecx
push ecx
xor ebx, edx
sub ecx, 0xd78f5891
jge 0x4468b1
bt eax, eax
xor cl, 0x82
lea eax, [eax*8 - 0x3d369dd]
shl eax, 0x61
jge 0x4a2ae9
mov eax, 0xb703f980
lea ecx, [eax + eax*8 - 0x77cf1ecc]
movsx edx, ax
mov ecx, dword [esi]
add esi, 4
call fcn.00443a10
push ecx
xor ebx, eax
sub dx, dx
adc ebp, eax
add edx, ecx
jne 0x48b82b
mov edx, dword [esi]
mov eax, 0xc3a1ee90
sal eax, 0xff
not ax
lea esi, [esi + eax*8 - 0x7fff4]
js 0x417d40
xor edx, ebx
and al, ah
ja 0x437179
pop edx
jmp ebp
adc esi, 1
btr edx, edx
bts edx, 0xb9
xor al, bl
not edx
inc dx
dec al
add dl, 0xba
lea ecx, [edx*8 - 0x1d5a2f6d]
sal dx, cl
not al
adc ecx, 0x603a383d
bts dx, dx
ror al, cl
bts cx, dx
ror dl, 0xa7
sbb al, 0x21
bt edx, 0x3a
sbb ecx, edx
imul dx, cx
not al
sbb cl, 0x26
sar cl, 0xe2
jae 0x43f6eb
xor bl, cl
add eax, eax
call fcn.00481e05
xor cl, bl
mov edx, eax
sar dl, 0x81
adc cl, 1
or edx, 0xd3a0681
xor cl, 0xbc
shl eax, 0xab
adc eax, edx
push edx
inc cl
add eax, edx
rol cl, 1
neg word [esp + eax*4 - 0x6c19b527]
sbb dword [esp + eax*2 - 0x360cda94], 0xbb0d6209
xor bl, cl
xchg dword [esp + edx - 0xd3a16a5], edx
or edx, edx
mul eax
lea ecx, [esp + ecx + 4]
shl al, 0x84
xor al, ah
neg byte [esp + edx - 0x2da5b34]
mov edx, dword [ecx + edx*2 - 0x5b4b66c]
ror ax, 7
shr byte [esp], 0x61
sbb edi, 3
movzx ecx, al
shl dword [esp + ecx - 0x32], 0x3e
inc ecx
mov dword [ecx + edi - 0x33], edx
pop ecx
jns fcn.0048a480
rol cx, cl
ror eax, 3
push ecx
bswap eax
add byte [esp + ecx*2 - 0x6c5403fa], 7
inc eax
not eax
sar ecx, 0x6c
mov dword [esp + ecx - 0x362a0], ecx
shl ecx, 0xfa
inc eax
xchg word [esp + ecx - 0x7ffffff6], cx
not eax
or cx, 0xe194
sub dx, word [esp + 8]
ror eax, 1
lea eax, [eax + ecx - 0x4149c9f4]
xor cx, cx
js 0x42a4b9
rol eax, 1
xadd dword [esp + ecx - 0x7ffffffd], ecx
dec dx
xor ebx, eax
shl byte [esp + ecx - 0x1df5], 0x41
adc ebp, eax
mov dx, word [edi + ecx - 0x1e00]
not cx
xchg byte [esp + ecx - 0xe1fe], cl
movsx eax, word [esp + ecx*2 - 0x1c2c4]
mov ax, word [edi + ecx*8 - 0x70b0e]
mov dword [esp + ecx - 0xe15d], ecx
lea edi, [edi + ecx - 0xe160]
pop ecx
add dx, ax
movsx eax, cl
neg eax
mov word [edi + eax - 0x60], dx
movsx edx, word [esp + eax - 0x5f]
sal al, 0x21
mov dword [esp + eax - 0xc0], ebp
ret 4
or ax, ax
sal dl, cl
lea ecx, [eax*4 - 0x65f6dd61]
dec cl
lea ecx, [ecx + ecx*8 + 0x42d3323]
mov word [eax + edi - 0x624c5a4d], dx
movsx edx, ax
imul edx, eax
lea ebp, [ebp + edx - 0x68b63b2d]
mov ecx, dword [ebp + eax - 0x624c5a4d]
xor ecx, ebx
shl eax, 0x77
call fcn.00461e79
mov eax, 0xbc24fa13
lea edx, [eax*4 - 0x7468b200]
mov edx, dword [edx + edi - 0x7c2b364c]
lea ecx, [eax + eax*4 + 0x4b55f85]
or ecx, eax
jle 0x461837
ror ecx, 1
btc ax, ax
sal eax, 0x1f
neg ecx
dec ecx
sal edx, 0x3f
not ecx
xchg edx, eax
cwde
xor ebx, ecx
add ebp, ecx
btr edx, edx
add al, byte [esi + eax]
xor dl, 8
btc edx, edx
jae 0x496afe
lea eax, [edx + edx*8 - 0x56582b44]
movzx dx, byte [edi]
mov cl, byte [edi + 2]
btc eax, eax
btc ax, 0x30
and al, 0x96
adc edi, 2
lea eax, [eax + eax*2 - 0x314ae8e9]
jmp 0x4a61e0