Function at 0x5a9b214
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
movzx eax, byte [edx + 1]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 0x14]
shr edi, 0xb
and edi, 1
add edx, 2
mov dword [ebp - 4], edi
test edi, edi
je 0x5a9b275
cmp eax, 0xc0
jl 0x5a9b275
mov ecx, eax
and ecx, 0x3f
movzx esi, byte [ecx + 0x5b48ca0]
and eax, dword [esi*4 + 0x5b48c84]
mov ecx, esi
imul ecx, ecx, 6
shl eax, cl
test esi, esi
jle 0x5a9b275
movzx edi, byte [edx]
sub ecx, 6
and edi, 0x3f
shl edi, cl
dec esi
or eax, edi
inc edx
test esi, esi
jg 0x5a9b25f
mov edi, dword [ebp - 4]
dec edx
test eax, eax
jne 0x5a9b285
mov dword [ebx], 1
jmp 0x5a9b56c
lea ecx, [eax - 0x30]
cmp ecx, 0x4a
ja 0x5a9b56c
movsx esi, word [ecx*2 + 0x5b44a60]
mov dword [ebp - 4], esi
test esi, esi
je 0x5a9b2a7
mov eax, esi
jmp 0x5a9b56c
cmp eax, 0x63
jg 0x5a9b39f
je 0x5a9b379
cmp eax, 0x30
je 0x5a9b33a
jle 0x5a9b3bf
cmp eax, 0x39
jle 0x5a9b2e4
cmp eax, 0x4c
je 0x5a9b2d9
cmp eax, 0x4e
je 0x5a9b2d9
cmp eax, 0x55
jne 0x5a9b3bf
mov dword [ebx], 0x25
jmp 0x5a9b56c
cmp dword [ebp + 0x18], 0
jne 0x5a9b32a
mov esi, edx
mov eax, ecx
jmp 0x5a9b2fc
imul eax, eax, 0xa
mov edx, ecx
movzx ecx, byte [edx]
lea eax, [eax + ecx - 0x30]
lea ecx, [edx + 1]
movzx ebx, byte [ecx]
test byte [ebx + 0x5b455a0], 4
jne 0x5a9b2f0
test eax, eax
js 0x5a9b516
cmp eax, 0xa
jl 0x5a9b560
cmp eax, dword [ebp + 0x10]
jle 0x5a9b560
mov ebx, dword [ebp + 0xc]
mov edx, esi
movzx eax, byte [edx]
cmp eax, 0x38
jl 0x5a9b33a
dec edx
xor eax, eax
jmp 0x5a9b56c
sub eax, 0x30
mov cl, byte [edx + 1]
inc dword [ebp - 4]
cmp cl, 0x30
jb 0x5a9b35b
cmp cl, 0x37
ja 0x5a9b35b
inc edx
cmp dword [ebp - 4], 2
movzx ecx, byte [edx]
lea eax, [ecx + eax*8 - 0x30]
jl 0x5a9b33d
test edi, edi
jne 0x5a9b56c
cmp eax, 0xff
jle 0x5a9b56c
mov dword [ebx], 0x33
jmp 0x5a9b56c
inc edx
movzx eax, byte [edx]
test eax, eax
jne 0x5a9b38c
mov dword [ebx], 2
jmp 0x5a9b56c
lea ecx, [eax - 0x61]
cmp ecx, 0x19
ja 0x5a9b397
sub eax, 0x20
xor eax, 0x40
jmp 0x5a9b56c
cmp eax, 0x67
je 0x5a9b486
cmp eax, 0x6c
je 0x5a9b2d9
cmp eax, 0x75
je 0x5a9b2d9
cmp eax, 0x78
je 0x5a9b3d4
test byte [ebp + 0x14], 0x40
je 0x5a9b56c
mov dword [ebx], 3
jmp 0x5a9b56c
cmp byte [edx + 1], 0x7b
jne 0x5a9b443
xor eax, eax
lea esi, [edx + 2]
mov dword [ebp + 0x14], eax
jmp 0x5a9b412
inc esi
test eax, eax
jne 0x5a9b3ee
cmp ecx, 0x30
je 0x5a9b412
inc dword [ebp + 0x14]
cmp ecx, 0x61
jl 0x5a9b3f9
sub ecx, 0x20
xor ebx, ebx
cmp ecx, 0x41
setge bl
shl eax, 4
dec ebx
and ebx, 0xfffffff9
add ebx, 0x37
sub eax, ebx
mov ebx, dword [ebp + 0xc]
add eax, ecx
movzx ecx, byte [esi]
test byte [ecx + 0x5b455a0], 8
jne 0x5a9b3e4
cmp byte [esi], 0x7d
jne 0x5a9b443
test eax, eax
js 0x5a9b436
neg edi
sbb edi, edi
and edi, 6
add edi, 2
cmp dword [ebp + 0x14], edi
jle 0x5a9b43c
mov dword [ebx], 0x22
mov edx, esi
jmp 0x5a9b56c
xor eax, eax
movzx esi, byte [edx + 1]
inc dword [ebp - 4]
test byte [esi + 0x5b455a0], 8
je 0x5a9b56c
inc edx
movzx esi, byte [edx]
cmp esi, 0x61
jl 0x5a9b465
sub esi, 0x20
xor ecx, ecx
cmp esi, 0x41
setge cl
shl eax, 4
dec ecx
and ecx, 0xfffffff9
add ecx, 0x37
sub eax, ecx
add eax, esi
cmp dword [ebp - 4], 2
jl 0x5a9b445
jmp 0x5a9b56c
mov al, byte [edx + 1]
cmp al, 0x3c
je 0x5a9b569
cmp al, 0x27
je 0x5a9b569
cmp al, 0x7b
jne 0x5a9b4da
lea eax, [edx + 2]
mov cl, byte [eax]
test cl, cl
je 0x5a9b4d4
cmp cl, 0x7d
je 0x5a9b4c3
cmp cl, 0x2d
je 0x5a9b4bc
movzx ecx, cl
test byte [ecx + 0x5b455a0], 4
je 0x5a9b4c3
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x5a9b4a6
mov al, byte [eax]
test al, al
je 0x5a9b4d4
cmp al, 0x7d
je 0x5a9b4d4
push 0xffffffffffffffe4
jmp 0x5a9b56b
xor edi, edi
inc edi
inc edx
jmp 0x5a9b4dc
xor edi, edi
xor esi, esi
cmp byte [edx + 1], 0x2d
jne 0x5a9b4e6
inc esi
inc edx
lea ecx, [edx + 1]
movzx ebx, byte [ecx]
xor eax, eax
test byte [ebx + 0x5b455a0], 4
je 0x5a9b521
imul eax, eax, 0xa
mov edx, ecx
movzx ecx, byte [edx]
lea eax, [eax + ecx - 0x30]
lea ecx, [edx + 1]
movzx ebx, byte [ecx]
test byte [ebx + 0x5b455a0], 4
jne 0x5a9b4f7
test eax, eax
jns 0x5a9b521
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x3d
jmp 0x5a9b56c
test edi, edi
je 0x5a9b536
inc edx
cmp byte [edx], 0x7d
je 0x5a9b536
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x39
jmp 0x5a9b56c
test eax, eax
jne 0x5a9b545
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x3a
jmp 0x5a9b56c
test esi, esi
je 0x5a9b560
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
jle 0x5a9b55b
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0xf
jmp 0x5a9b56c
sub ecx, eax
lea eax, [ecx + 1]
push 0xffffffffffffffe3
pop ecx
sub ecx, eax
mov eax, ecx
jmp 0x5a9b56c
push 0xffffffffffffffe5
pop eax
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], edx
pop ebx
leave
ret