Function at 0x680530
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
test eax, eax
je 0x6807db
mov esi, dword [ebp + 0xc]
add esi, 1
mov ecx, 4
nop word cs:[eax + eax]
nop dword [eax]
mov dword [ebp - 0x10], ecx
movzx ecx, byte [esi - 1]
mov edx, ecx
shl edx, 0x10
cmp eax, 2
mov dword [ebp - 0x18], eax
jbe 0x6807e2
movzx ebx, byte [esi]
shl ebx, 8
or edx, ebx
mov dword [ebp - 0x14], edx
movzx edi, byte [esi + 1]
mov dword [ebp - 0x20], edi
or ebx, edi
mov dword [ebp - 0x1c], ebx
mov ebx, ecx
shr ebx, 2
cmp bl, 0x3e
mov edi, 0
mov edx, ecx
mov ecx, 0xff
cmove edi, ecx
mov dword [ebp - 0x24], esi
mov esi, edi
and esi, 0x2b
not edi
and edi, 0x2f
or edi, esi
mov eax, ebx
add al, 0xfc
cmp dl, 0xf8
mov ecx, edx
mov esi, 0
mov edx, 0xff
cmovb esi, edx
movzx edx, al
mov eax, esi
and eax, edx
not esi
and esi, edi
or esi, eax
mov eax, ebx
add eax, 0x47
cmp cl, 0xd0
mov edi, 0
mov edx, 0xff
cmovb edi, edx
mov edx, edi
and edx, eax
not edi
and edi, esi
or edi, edx
add bl, 0x41
cmp cl, 0x68
movzx eax, bl
mov esi, dword [ebp + 8]
mov ecx, 0
mov edx, 0xff
cmovb ecx, edx
mov edx, ecx
and edx, eax
not ecx
and ecx, edi
or ecx, edx
mov ebx, dword [ebp - 0x14]
shr ebx, 0xc
and bl, 0x3f
cmp bl, 0x3e
mov edi, 0
mov edx, 0xff
cmove edi, edx
mov eax, dword [ebp - 0x10]
mov byte [esi + eax - 4], cl
mov ecx, 0
cmovb ecx, edx
mov esi, edi
not esi
and edi, 0x2b
and esi, 0x2f
or esi, edi
mov eax, ebx
add al, 0xfc
mov edx, ecx
movzx eax, al
and edx, eax
not ecx
and ecx, esi
or ecx, edx
mov eax, ebx
add al, 0x47
cmp bl, 0x34
mov edi, 0
mov esi, 0xff
cmovb edi, esi
mov edx, edi
movzx eax, al
and edx, eax
not edi
and edi, ecx
or edi, edx
mov ecx, ebx
add cl, 0x41
cmp bl, 0x1a
mov eax, 0
cmovb eax, esi
mov edx, eax
movzx ecx, cl
and edx, ecx
not eax
and eax, edi
or eax, edx
mov ebx, dword [ebp - 0x1c]
shr ebx, 6
and bl, 0x3f
cmp bl, 0x3e
mov esi, 0
mov edx, 0xff
cmove esi, edx
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
mov byte [ecx + edi - 3], al
mov ecx, esi
mov eax, 0
cmovb eax, edx
not ecx
and esi, 0x2b
and ecx, 0x2f
or ecx, esi
mov edx, ebx
add dl, 0xfc
mov esi, eax
movzx edx, dl
and esi, edx
not eax
and eax, ecx
or eax, esi
mov edx, ebx
add dl, 0x47
cmp bl, 0x34
mov ecx, 0
mov esi, 0xff
cmovb ecx, esi
mov esi, ecx
movzx edx, dl
and esi, edx
not ecx
and ecx, eax
or ecx, esi
mov eax, ebx
add al, 0x41
cmp bl, 0x1a
movzx edx, al
mov eax, 0
mov esi, 0xff
cmovb eax, esi
mov esi, eax
and esi, edx
not eax
and eax, ecx
or eax, esi
mov ecx, dword [ebp + 8]
mov byte [ecx + edi - 2], al
mov ebx, dword [ebp - 0x20]
and ebx, 0x3f
cmp bl, 0x3e
mov edx, 0
mov esi, 0xff
cmove edx, esi
mov ecx, edx
not ecx
mov eax, 0
cmovb eax, esi
and edx, 0x2b
and ecx, 0x2f
or ecx, edx
mov edx, ebx
add dl, 0xfc
movzx edx, dl
mov esi, eax
and esi, edx
not eax
and eax, ecx
or eax, esi
mov edx, ebx
add edx, 0x47
cmp bl, 0x34
mov ecx, 0
mov esi, 0xff
cmovb ecx, esi
mov edi, 0xff
mov esi, ecx
and esi, edx
not ecx
and ecx, eax
or ecx, esi
mov eax, ebx
add al, 0x41
cmp bl, 0x1a
movzx edx, al
mov eax, 0
cmovb eax, edi
mov esi, eax
and esi, edx
not eax
and eax, ecx
mov ecx, dword [ebp - 0x10]
or eax, esi
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp + 8]
mov byte [edx + ecx - 1], al
mov eax, dword [ebp - 0x18]
add ecx, 4
add esi, 3
add eax, 0xfffffffd
jne 0x680560
mov edi, edx
lea edi, [edx + ecx]
add edi, 0xfffffffc
add ecx, 0xfffffffc
jmp 0x680994
xor ecx, ecx
jmp 0x680994
jne 0x6807ec
movzx ecx, byte [esi]
shl ecx, 8
or edx, ecx
mov dword [ebp - 0x14], edx
mov ebx, edx
shr ebx, 0x12
cmp bl, 0x3e
mov eax, 0xff
mov edi, 0
cmove edi, eax
mov edx, edi
not edx
mov esi, 0
cmovb esi, eax
and edi, 0x2b
and edx, 0x2f
or edx, edi
mov ecx, ebx
add cl, 0xfc
mov edi, esi
movzx ecx, cl
and edi, ecx
not esi
and esi, edx
or esi, edi
mov ecx, ebx
add cl, 0x47
cmp bl, 0x34
mov edi, 0
cmovb edi, eax
mov edx, edi
movzx ecx, cl
and edx, ecx
not edi
and edi, esi
or edi, edx
mov ecx, ebx
add cl, 0x41
cmp bl, 0x1a
mov ebx, 0
cmovb ebx, eax
mov edx, ebx
movzx ecx, cl
and edx, ecx
not ebx
and ebx, edi
or ebx, edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov byte [eax + ecx - 4], bl
mov ebx, dword [ebp - 0x14]
shr ebx, 0xc
and bl, 0x3f
cmp bl, 0x3e
mov edx, 0
mov ecx, 0xff
cmove edx, ecx
mov edi, edx
not edi
mov esi, 0
cmovb esi, ecx
and edx, 0x2b
and edi, 0x2f
or edi, edx
mov ecx, ebx
add cl, 0xfc
mov edx, esi
movzx ecx, cl
and edx, ecx
not esi
and esi, edi
or esi, edx
mov ecx, ebx
add cl, 0x47
cmp bl, 0x34
mov edi, 0
mov edx, 0xff
cmovb edi, edx
mov edx, edi
movzx ecx, cl
and edx, ecx
not edi
and edi, esi
or edi, edx
mov ecx, ebx
add cl, 0x41
cmp bl, 0x1a
mov ebx, 0
mov edx, 0xff
cmovb ebx, edx
mov edx, ebx
movzx ecx, cl
and edx, ecx
mov ecx, dword [ebp - 0x10]
not ebx
and ebx, edi
or ebx, edx
mov byte [eax + ecx - 3], bl
mov ebx, eax
mov dl, 0x3d
cmp dword [ebp - 0x18], 1
je 0x680988
mov eax, dword [ebp - 0x14]
shr eax, 6
and al, 0x3f
cmp al, 0x3e
mov edx, 0
mov ecx, 0xff
cmove edx, ecx
mov edi, edx
not edi
mov esi, 0
cmovb esi, ecx
and edx, 0x2b
and edi, 0x2f
or edi, edx
mov ecx, eax
add cl, 0xfc
mov edx, esi
movzx ecx, cl
and edx, ecx
not esi
and esi, edi
or esi, edx
mov ecx, eax
add cl, 0x47
cmp al, 0x34
mov edi, 0
mov edx, 0xff
cmovb edi, edx
mov edx, edi
movzx ecx, cl
and edx, ecx
not edi
and edi, esi
or edi, edx
mov ecx, eax
add cl, 0x41
cmp al, 0x1a
movzx eax, cl
mov edx, 0
mov ecx, 0xff
cmovb edx, ecx
mov ecx, edx
and ecx, eax
not edx
and edx, edi
or edx, ecx
mov ecx, dword [ebp - 0x10]
mov byte [ebx + ecx - 2], dl
mov byte [ebx + ecx - 1], 0x3d
lea edi, [ebx + ecx]
mov byte [edi], 0
mov eax, ecx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret