Function at 0x43dda0
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
test ebp, ebp
je 0x43df99
mov eax, dword [esp + 0x24]
mov dword [esp], 4
inc eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax - 1]
mov esi, eax
mov edi, ecx
shl edi, 0x10
cmp ebp, 2
jbe 0x43dfa0
shr ecx, 2
mov dword [esp + 4], ebp
movzx ebp, byte [esi + 1]
mov dword [esp + 8], esi
mov eax, ecx
mov dh, cl
mov ebx, ecx
xor eax, 0x3e
add dh, 0xfc
add bl, 0x47
dec eax
sar eax, 0x1f
mov dl, al
and al, 0x2b
not dl
and dl, 0x2f
or dl, al
lea eax, [ecx - 0x3e]
sar eax, 0x1f
and dh, al
not al
and al, dl
or al, dh
lea edx, [ecx - 0x34]
sar edx, 0x1f
and bl, dl
not dl
and dl, al
mov eax, ecx
add cl, 0x41
add eax, 0xffffffe6
or dl, bl
mov ebx, edi
sar eax, 0x1f
and cl, al
not al
and al, dl
movzx edx, byte [esi]
mov esi, dword [esp]
or al, cl
mov ecx, dword [esp + 0x20]
shl edx, 8
or ebx, edx
mov byte [ecx + esi - 4], al
or edx, ebp
shr ebx, 0xc
shr edx, 6
mov ecx, ebx
and ebx, 0x3f
mov eax, ebx
and cl, 0x3f
mov edi, ebx
lea ebx, [ebx - 0x3e]
xor eax, 0x3e
sar ebx, 0x1f
dec eax
sar eax, 0x1f
mov ch, al
and al, 0x2b
not ch
and ch, 0x2f
or ch, al
mov eax, ecx
add al, 0xfc
and al, bl
not bl
and bl, ch
mov ch, cl
add cl, 0x41
or bl, al
lea eax, [edi - 0x34]
add ch, 0x47
sar eax, 0x1f
and ch, al
not al
and al, bl
mov ebx, edi
add ebx, 0xffffffe6
or al, ch
sar ebx, 0x1f
and cl, bl
not bl
and bl, al
mov eax, dword [esp + 0x20]
or bl, cl
mov byte [eax + esi - 3], bl
mov eax, edx
and edx, 0x3f
mov ecx, edx
and al, 0x3f
xor ecx, 0x3e
mov ebx, eax
dec ecx
add bl, 0xfc
sar ecx, 0x1f
mov ah, cl
and cl, 0x2b
not ah
and ah, 0x2f
or ah, cl
lea ecx, [edx - 0x3e]
sar ecx, 0x1f
and bl, cl
not cl
and cl, ah
mov ah, al
add al, 0x41
or cl, bl
lea ebx, [edx - 0x34]
add ah, 0x47
add edx, 0xffffffe6
sar ebx, 0x1f
sar edx, 0x1f
and ah, bl
not bl
and al, dl
not dl
and bl, cl
or bl, ah
and dl, bl
mov ebx, ebp
mov ebp, dword [esp + 4]
or dl, al
mov eax, dword [esp + 0x20]
and ebx, 0x3f
lea ecx, [ebx - 0x3e]
sar ecx, 0x1f
mov edi, eax
mov byte [eax + esi - 2], dl
mov eax, ebx
xor eax, 0x3e
dec eax
sar eax, 0x1f
mov edx, eax
and al, 0x2b
not dl
and dl, 0x2f
or dl, al
mov eax, ebx
add al, 0xfc
and al, cl
not cl
and cl, dl
mov edx, ebx
or cl, al
lea eax, [ebx - 0x34]
add dl, 0x47
sar eax, 0x1f
and dl, al
not al
and al, cl
mov ecx, ebx
add bl, 0x41
add ecx, 0xffffffe6
or al, dl
sar ecx, 0x1f
and bl, cl
not cl
and cl, al
mov eax, dword [esp + 8]
or cl, bl
mov byte [edi + esi - 1], cl
add esi, 4
mov dword [esp], esi
add eax, 3
add ebp, 0xfffffffd
jne 0x43ddd0
mov esi, dword [esp + 0x20]
mov eax, dword [esp]
lea esi, [esi + eax - 4]
add eax, 0xfffffffc
jmp 0x43e0de
xor eax, eax
jmp 0x43e0de
jne 0x43dfac
mov eax, esi
movzx eax, byte [esi]
shl eax, 8
or edi, eax
mov ecx, edi
mov esi, dword [esp + 0x20]
mov dword [esp + 4], edi
shr ecx, 0x12
mov eax, ecx
mov dh, cl
mov ebx, ecx
xor eax, 0x3e
add dh, 0xfc
add bl, 0x47
dec eax
sar eax, 0x1f
mov dl, al
and al, 0x2b
not dl
and dl, 0x2f
or dl, al
lea eax, [ecx - 0x3e]
sar eax, 0x1f
and dh, al
not al
and al, dl
or al, dh
lea edx, [ecx - 0x34]
sar edx, 0x1f
and bl, dl
not dl
and dl, al
mov eax, ecx
add cl, 0x41
add eax, 0xffffffe6
or dl, bl
sar eax, 0x1f
and cl, al
not al
and al, dl
or al, cl
mov ecx, dword [esp]
mov byte [esi + ecx - 4], al
mov ecx, edi
shr ecx, 0xc
mov edx, ecx
and ecx, 0x3f
mov eax, ecx
and dl, 0x3f
xor eax, 0x3e
mov ebx, edx
dec eax
add bl, 0xfc
sar eax, 0x1f
mov dh, al
and al, 0x2b
not dh
and dh, 0x2f
or dh, al
lea eax, [ecx - 0x3e]
sar eax, 0x1f
and bl, al
not al
and al, dh
mov dh, dl
add dl, 0x41
or al, bl
lea ebx, [ecx - 0x34]
add dh, 0x47
add ecx, 0xffffffe6
sar ebx, 0x1f
sar ecx, 0x1f
and dh, bl
not bl
and dl, cl
not cl
and bl, al
mov eax, dword [esp]
or bl, dh
and cl, bl
or cl, dl
cmp ebp, 1
mov byte [esi + eax - 3], cl
mov cl, 0x3d
je 0x43e0cf
mov ebx, dword [esp + 4]
shr ebx, 6
mov ecx, ebx
and ebx, 0x3f
mov eax, ebx
and cl, 0x3f
xor eax, 0x3e
mov ch, cl
dec eax
add ch, 0xfc
sar eax, 0x1f
mov edx, eax
and al, 0x2b
not dl
and dl, 0x2f
or dl, al
lea eax, [ebx - 0x3e]
sar eax, 0x1f
and ch, al
not al
and al, dl
lea edx, [ebx - 0x34]
add ebx, 0xffffffe6
or al, ch
mov ch, cl
sar edx, 0x1f
sar ebx, 0x1f
add cl, 0x41
add ch, 0x47
and cl, bl
not bl
and ch, dl
not dl
and dl, al
or dl, ch
and bl, dl
or bl, cl
mov ecx, ebx
mov eax, dword [esp]
mov byte [esi + eax - 2], cl
mov byte [esi + eax - 1], 0x3d
lea esi, [esi + eax]
mov byte [esi], 0
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret