Function at 0x4a56de
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
push ebx
mov ebx, dword [ebp + 0x14]
shr ebx, 0xb
and ebx, 1
inc edx
push esi
movzx esi, byte [edx]
inc edx
test ebx, ebx
push edi
je 0x4a5737
cmp esi, 0xc0
jl 0x4a5737
mov eax, esi
and eax, 0x3f
movzx edi, byte [eax + 0x468680]
mov eax, dword [edi*4 + 0x468664]
mov ecx, edi
imul ecx, ecx, 6
and eax, esi
shl eax, cl
mov esi, eax
jmp 0x4a5733
movzx eax, byte [edx]
sub ecx, 6
and eax, 0x3f
shl eax, cl
dec edi
or esi, eax
inc edx
test edi, edi
jg 0x4a5724
xor edi, edi
dec edx
cmp esi, edi
jne 0x4a574c
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
jmp 0x4a5a25
lea eax, [esi - 0x30]
cmp eax, 0x4a
ja 0x4a5a25
movsx ecx, word [eax*2 + 0x467988]
cmp ecx, edi
mov dword [ebp - 4], ecx
je 0x4a576e
mov esi, ecx
jmp 0x4a5a25
cmp esi, 0x63
jg 0x4a5871
je 0x4a5848
cmp esi, 0x30
je 0x4a5807
jle 0x4a5891
cmp esi, 0x39
jle 0x4a57b2
cmp esi, 0x4c
je 0x4a57a4
cmp esi, 0x4e
je 0x4a57a4
cmp esi, 0x55
jne 0x4a5891
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x25
jmp 0x4a5a25
cmp dword [ebp + 0x18], edi
jne 0x4a57f4
mov edi, edx
mov esi, eax
jmp 0x4a57c9
imul esi, esi, 0xa
mov edx, eax
movzx eax, byte [edx]
lea esi, [esi + eax - 0x30]
lea eax, [edx + 1]
movzx ecx, byte [eax]
test byte [ecx + 0x468450], 4
jne 0x4a57bd
test esi, esi
jl 0x4a59e1
cmp esi, 0xa
jl 0x4a5a13
cmp esi, dword [ebp + 0x10]
jle 0x4a5a13
mov edx, edi
movzx esi, byte [edx]
cmp esi, 0x38
jl 0x4a5804
dec edx
xor esi, esi
jmp 0x4a5a25
mov ecx, dword [ebp - 4]
sub esi, 0x30
lea edi, [edx + 1]
mov al, byte [edi]
inc ecx
cmp al, 0x30
jb 0x4a5826
cmp al, 0x37
ja 0x4a5826
cmp ecx, 2
mov edx, edi
movzx eax, byte [edx]
lea esi, [eax + esi*8 - 0x30]
jl 0x4a580a
test ebx, ebx
jne 0x4a5a25
cmp esi, 0xff
jle 0x4a5a25
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x33
jmp 0x4a5a25
inc edx
movzx esi, byte [edx]
cmp esi, edi
jne 0x4a585e
mov eax, dword [ebp + 0xc]
mov dword [eax], 2
jmp 0x4a5a25
lea eax, [esi - 0x61]
cmp eax, 0x19
ja 0x4a5869
sub esi, 0x20
xor esi, 0x40
jmp 0x4a5a25
cmp esi, 0x67
je 0x4a595f
cmp esi, 0x6c
je 0x4a57a4
cmp esi, 0x75
je 0x4a57a4
cmp esi, 0x78
je 0x4a58a9
test byte [ebp + 0x14], 0x40
je 0x4a5a25
mov eax, dword [ebp + 0xc]
mov dword [eax], 3
jmp 0x4a5a25
cmp byte [edx + 1], 0x7b
jne 0x4a5919
xor esi, esi
lea ecx, [edx + 2]
mov dword [ebp + 0x14], esi
jmp 0x4a58e6
inc ecx
test esi, esi
mov edi, eax
jne 0x4a58c5
cmp edi, 0x30
je 0x4a58e6
inc dword [ebp + 0x14]
cmp edi, 0x61
jl 0x4a58d0
sub edi, 0x20
xor eax, eax
cmp edi, 0x41
setge al
shl esi, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub esi, eax
add esi, edi
movzx eax, byte [ecx]
test byte [eax + 0x468450], 8
jne 0x4a58b9
cmp byte [ecx], 0x7d
jne 0x4a5919
test esi, esi
jl 0x4a5909
neg ebx
sbb ebx, ebx
and ebx, 6
inc ebx
inc ebx
cmp dword [ebp + 0x14], ebx
jle 0x4a5912
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x22
mov edx, ecx
jmp 0x4a5a25
xor esi, esi
inc dword [ebp - 4]
lea eax, [edx + 1]
movzx ecx, byte [eax]
test byte [ecx + 0x468450], 8
je 0x4a5a25
mov edx, eax
movzx eax, byte [edx]
cmp eax, 0x61
jl 0x4a593e
sub eax, 0x20
xor ecx, ecx
cmp eax, 0x41
setge cl
shl esi, 4
dec ecx
and ecx, 0xfffffff9
add ecx, 0x37
sub esi, ecx
add esi, eax
cmp dword [ebp - 4], 2
jl 0x4a591b
jmp 0x4a5a25
lea esi, [edx + 1]
cmp byte [esi], 0x7b
jne 0x4a59a4
lea eax, [edx + 2]
mov cl, byte [eax]
test cl, cl
je 0x4a599f
cmp cl, 0x7d
je 0x4a598d
cmp cl, 0x2d
je 0x4a5986
movzx ecx, cl
test byte [ecx + 0x468450], 4
je 0x4a598d
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x4a5970
mov al, byte [eax]
test al, al
je 0x4a599f
cmp al, 0x7d
je 0x4a599f
push 0xffffffffffffffe6
pop esi
jmp 0x4a5a25
xor edi, edi
inc edi
mov edx, esi
lea eax, [edx + 1]
xor ecx, ecx
cmp byte [eax], 0x2d
jne 0x4a59b1
inc ecx
mov edx, eax
lea eax, [edx + 1]
movzx ebx, byte [eax]
xor esi, esi
test byte [ebx + 0x468450], 4
je 0x4a5a1c
imul esi, esi, 0xa
mov edx, eax
movzx eax, byte [edx]
lea esi, [esi + eax - 0x30]
lea eax, [edx + 1]
movzx ebx, byte [eax]
test byte [ebx + 0x468450], 4
jne 0x4a59c2
test esi, esi
jge 0x4a59ec
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x3d
jmp 0x4a5a25
je 0x4a5a1c
test edi, edi
je 0x4a59f8
inc edx
cmp byte [edx], 0x7d
jne 0x4a5a1c
test ecx, ecx
je 0x4a5a13
mov eax, dword [ebp + 0x10]
cmp esi, eax
jle 0x4a5a0e
mov eax, dword [ebp + 0xc]
mov dword [eax], 0xf
jmp 0x4a5a25
sub eax, esi
inc eax
mov esi, eax
push 0xffffffffffffffe5
pop eax
sub eax, esi
mov esi, eax
jmp 0x4a5a25
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x39
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], edx
mov eax, esi
pop esi
pop ebx
leave
ret