Function at 0x402d10
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x2c
mov eax, dword [esp + 0x30]
push ebx
push ebp
push esi
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, ecx
mov esi, edx
shr eax, 4
and eax, 0xf0f0f0f
and esi, 0xf0f0f0f
xor eax, esi
push edi
xor edx, eax
mov dword [esp + 0x10], 0x421338
shl eax, 4
mov edi, eax
mov esi, edx
xor edi, ecx
mov ebp, edx
shr esi, 4
mov eax, edi
and esi, 0x1010101
and eax, 0x1010101
xor esi, eax
mov ecx, esi
mov ebx, esi
shl ecx, 4
mov eax, ecx
xor ecx, edx
xor eax, edx
xor esi, edi
and eax, 0xffaaffaa
shl ebp, 9
shl ebx, 0xd
xor eax, ebp
xor eax, ebx
shr ecx, 9
and eax, 0x55ff55ff
and ecx, 0x550055
xor eax, ecx
mov ecx, esi
shl edx, 9
xor eax, edx
mov edx, esi
shr ecx, 9
and edx, 0xffd50055
and ecx, 0x550055
shl edx, 9
xor ecx, edx
and esi, 0x55aa55aa
xor eax, ebx
xor ecx, esi
mov esi, eax
mov edi, ecx
and esi, 0xffff
and edi, 0xffff
mov edx, esi
and esi, 0xfffff333
and edx, 0x3333
xor edx, eax
shr eax, 0x12
and edx, 0x3333ffff
and eax, 0x3333
xor edx, eax
shl esi, 0x12
xor edx, esi
mov esi, ecx
shr esi, 0x12
mov eax, esi
xor esi, edi
xor eax, edi
and esi, 0x3333
and eax, 0xfffff333
shl eax, 0x12
xor eax, esi
xor eax, ecx
mov dword [esp + 0x1c], eax
mov esi, eax
mov edi, dword [esp + 0x1e]
and esi, 0xff
and edi, 0xff
mov dword [esp + 0x14], 0
mov ecx, edi
mov dword [esp + 0x18], 0x10
xor ecx, esi
shl ecx, 0x10
xor ecx, edi
xor ecx, esi
xor ecx, eax
jmp 0x402e3f
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov eax, edx
and ecx, 0xfffffff
and eax, 0xfffffff
cmp byte [esi], 0
mov ebx, ecx
je 0x402e67
shr eax, 2
shl edx, 0x1a
or eax, edx
shl ebx, 0x1a
shr ecx, 2
jmp 0x402e73
shr eax, 1
shl edx, 0x1b
or eax, edx
shl ebx, 0x1b
shr ecx, 1
mov esi, dword [esp + 0x10]
mov edi, ecx
mov dword [esp + 0x1c], eax
or edi, ebx
mov eax, dword [esp + 0x1e]
mov ebp, dword [esp + 0x1d]
inc esi
mov dword [esp + 0x40], ecx
mov cl, byte [esp + 0x1c]
mov dword [esp + 0x10], esi
mov esi, eax
and ebp, 0xff
shr ecx, 2
mov al, ah
and ecx, 0x30
and eax, 0xe
mov edx, ebp
and esi, 0xff
or ecx, eax
shr edx, 7
mov eax, esi
or ecx, edx
shr eax, 5
mov edx, esi
and eax, 4
and edx, 0x40
and esi, 0x1d
or eax, edx
push 0
shr eax, 1
or eax, esi
mov esi, dword [ecx*4 + 0x421648]
shr ebp, 1
mov ecx, dword [eax*4 + 0x421548]
and ebp, 0x3f
or esi, ecx
push 2
mov eax, dword [ebp*4 + 0x421448]
mov dword [esp + 0x34], edi
or esi, eax
mov eax, dword [esp + 0x24]
and eax, 0x3f
mov ecx, dword [eax*4 + 0x421348]
or esi, ecx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
inc ecx
cdq
push edx
push eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x24], ecx
call fcn.0040e090
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], edx
mov ecx, eax
mov edx, ebx
shr ecx, 0x10
shr edx, 0x10
or ecx, edx
mov dl, byte [esp + 0x2c]
shr edx, 4
and ecx, 0xc0
and edx, 8
or ecx, edx
mov dl, byte [esp + 0x2f]
shr ecx, 2
and edx, 0xd
or ecx, edx
xor edx, edx
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov dl, bh
mov cl, ah
or edx, ecx
or ebx, eax
shr edx, 6
shr ebx, 8
and edx, 2
and ebx, 0x3d
mov ecx, dword [esp + 0x40]
or edx, ebx
shr edi, 0x10
mov ecx, dword [ecx*4 + 0x421a48]
mov eax, dword [edx*4 + 0x421848]
and edi, 0x3f
or ecx, eax
mov eax, dword [esp + 0x34]
and esi, 0xffff
mov edx, dword [edi*4 + 0x421948]
or ecx, edx
mov edx, dword [esp + 0x2c]
and edx, 0x3f
mov ebp, dword [edx*4 + 0x421748]
mov edx, dword [esp + 0x44]
or ecx, ebp
mov edi, ecx
and ecx, 0xffff0000
shl edi, 0x10
or edi, esi
mov esi, dword [esp + 0x26]
and esi, 0xffff
mov dword [edx + eax*4], edi
or ecx, esi
mov dword [edx + eax*4 + 4], ecx
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x18], eax
jne 0x402e37
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
xor edx, edx
pop ebx
add esp, 0x2c
ret