Function at 0x41a520
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x5b706c]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
xor eax, eax
push esi
push edi
mov edi, ecx
mov word [ebp - 8], ax
mov ecx, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x30], edi
mov byte [ebp - 6], al
cmp ecx, edx
je 0x41a7ca
push ebx
mov eax, ecx
inc ecx
mov dword [ebp + 8], ecx
mov al, byte [eax]
mov byte [ebp + esi - 8], al
inc esi
mov bh, byte [ebp - 8]
cmp esi, 3
jne 0x41a6a6
mov ecx, dword [ebp + 0x10]
movzx eax, bh
shr eax, 2
mov edx, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
mov bl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp - 0x10], bl
cmp edx, esi
jae 0x41a59d
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp esi, 0x10
jb 0x41a593
mov ecx, dword [ecx]
mov byte [ecx + edx], bl
mov byte [ecx + edx + 1], 0
jmp 0x41a5ad
push dword [ebp - 0x10]
mov byte [ebp - 0x21], 0
push dword [ebp - 0x21]
push ecx
call fcn.00404750
movzx ecx, byte [ebp - 7]
movsx eax, bh
and eax, 3
shr ecx, 4
shl eax, 4
or ecx, eax
mov bl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov ecx, dword [ebp + 0x10]
mov byte [ebp - 0x18], bl
mov edx, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
cmp edx, esi
jae 0x41a5ec
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp esi, 0x10
jb 0x41a5e2
mov ecx, dword [ecx]
mov byte [ecx + edx], bl
mov byte [ecx + edx + 1], 0
jmp 0x41a5fc
push dword [ebp - 0x18]
mov byte [ebp - 0x25], 0
push dword [ebp - 0x25]
push ecx
call fcn.00404750
mov bh, byte [ebp - 6]
movsx eax, byte [ebp - 7]
and eax, 0xf
movzx ecx, bh
shr ecx, 6
shl eax, 2
or ecx, eax
mov bl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov ecx, dword [ebp + 0x10]
mov byte [ebp - 0x1c], bl
mov edx, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
cmp edx, esi
jae 0x41a63e
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp esi, 0x10
jb 0x41a634
mov ecx, dword [ecx]
mov byte [ecx + edx], bl
mov byte [ecx + edx + 1], 0
jmp 0x41a64e
push dword [ebp - 0x1c]
mov byte [ebp - 0x29], 0
push dword [ebp - 0x29]
push ecx
call fcn.00404750
mov ecx, dword [ebp + 0x10]
movsx eax, bh
and eax, 0x3f
mov edx, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
mov bl, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp - 0x14], bl
cmp edx, esi
jae 0x41a681
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp esi, 0x10
jb 0x41a677
mov ecx, dword [ecx]
mov byte [ecx + edx], bl
mov byte [ecx + edx + 1], 0
jmp 0x41a691
push dword [ebp - 0x14]
mov byte [ebp - 0xc], 0
push dword [ebp - 0xc]
push ecx
call fcn.00404750
mov edx, dword [ebp + 0xc]
xor esi, esi
mov ecx, dword [ebp + 8]
xor bh, bh
xor bl, bl
mov word [ebp - 8], si
mov byte [ebp - 6], bl
jmp 0x41a6a9
mov bl, byte [ebp - 7]
cmp ecx, edx
jne 0x41a551
test esi, esi
jle 0x41a7b2
mov ecx, dword [ebp + 0x10]
movzx eax, bh
shr eax, 2
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ebp - 0x10], al
cmp edx, edi
jae 0x41a6ef
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x41a6e2
mov ecx, dword [ecx]
mov al, byte [ebp - 0x10]
mov byte [ecx + edx], al
mov byte [ecx + edx + 1], 0
jmp 0x41a6ff
push dword [ebp - 0x10]
mov byte [ebp - 0xc], 0
push dword [ebp - 0xc]
push ecx
call fcn.00404750
movsx eax, bh
and eax, 3
movzx ecx, bl
shr ecx, 4
shl eax, 4
or ecx, eax
mov bh, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov ecx, dword [ebp + 0x10]
mov byte [ebp - 0xc], bh
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x41a73d
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 0x10
jb 0x41a733
mov ecx, dword [ecx]
mov byte [ecx + edx], bh
mov byte [ecx + edx + 1], 0
jmp 0x41a74d
push dword [ebp - 0xc]
mov byte [ebp - 0x14], 0
push dword [ebp - 0x14]
push ecx
call fcn.00404750
cmp esi, 1
jle 0x41a76c
movzx ecx, byte [ebp - 6]
movsx eax, bl
and eax, 0xf
shr ecx, 6
shl eax, 2
or ecx, eax
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
jmp 0x41a76e
mov al, 0x3d
mov byte [ebp - 0x1d], al
lea ecx, [ebp - 0xc]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1d]
push eax
call fcn.00404980
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x1d]
mov dword [ebp - 0xc], ecx
lea ecx, [ebp - 0xc]
push eax
mov byte [ebp - 0x1d], 0x3d
call fcn.00404980
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x10]
pop ebx
pop edi
mov dword [eax], ecx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov dword [edi], eax
mov eax, edi
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
mov dword [edi], eax
xor ecx, ebp
mov eax, edi
pop edi
pop esi
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret