Function at 0x10047ac0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 0x10]
sub esp, 0xc
push ebx
push esi
mov esi, ecx
push edi
mov byte [esi + 0xc], 0
mov dword [eax], 0
mov eax, dword [esi + 4]
cmp eax, 1
je 0x10047b4b
cmp eax, 2
je 0x10047b4b
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
test eax, eax
je 0x10047f37
mov ebx, dword [ebp + 8]
nop word [eax + eax]
mov ecx, esi
call fcn.10047800
test al, al
je 0x10047f37
cmp byte [esi + 0xc], 0
jne 0x10047f3b
test ebx, ebx
je 0x10047b27
mov eax, dword [esi + 0x18]
mov al, byte [esi + eax + 0x1c]
mov byte [ebx], al
inc ebx
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 0x10]
inc dword [esi + 0x18]
dec eax
mov dword [esp + 0x10], eax
inc dword [ecx]
test eax, eax
jne 0x10047b00
cmp byte [esi + 0xc], al
sete al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push eax
call fcn.100479b0
test al, al
jne 0x10047f37
cmp byte [esi + 0xd], al
je 0x10047b74
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esi + 4], 1
mov edi, dword [ebp + 0xc]
jne 0x10047dab
test edi, edi
je 0x10047dab
nop dword [eax]
cmp byte [esi + 0xc], 0
jne 0x10047dab
mov ecx, esi
call fcn.10047800
test al, al
je 0x10047da7
mov eax, dword [esi + 0x18]
mov bl, byte [eax + esi + 0x1c]
inc eax
movzx edi, bl
mov dword [esi + 0x18], eax
lea eax, [edi - 9]
cmp eax, 0x17
ja case.0x10047bca.11
movzx eax, byte [eax + 0x10047f58]
jmp dword [eax*4 + 0x10047f48]
mov eax, dword [esi]
cmp eax, 1
jne 0x10047bf1
mov dword [esi + 0x101c], eax
mov byte [esi + 0x1020], 0xd
mov dword [esi + 0x10], 0xffffffff
jmp 0x10047cc1
cmp eax, 3
jne 0x10047c2e
mov ecx, esi
call fcn.10047800
test al, al
je 0x10047c2e
mov eax, dword [esi + 0x18]
cmp byte [eax + esi + 0x1c], 0xa
jne 0x10047c2e
inc eax
mov dword [esi + 0x101c], 2
mov dword [esi + 0x18], eax
mov word [esi + 0x1020], 0xa0d
mov dword [esi + 0x10], 0xfffffffe
jmp 0x10047cc1
mov dword [esi + 0x101c], 3
mov word [esi + 0x1020], 0x303d
mov byte [esi + 0x1022], 0x44
jmp 0x10047cc1
cmp dword [esi], 2
jne 0x10047c69
mov dword [esi + 0x101c], 1
mov byte [esi + 0x1020], 0xa
mov dword [esi + 0x10], 0xffffffff
jmp 0x10047cc1
mov dword [esi + 0x101c], 3
mov word [esi + 0x1020], 0x303d
mov byte [esi + 0x1022], 0x41
jmp 0x10047cc1
mov ecx, esi
call fcn.100478a0
test al, al
je 0x10047d08
mov eax, edi
mov dword [esi + 0x101c], 3
shr eax, 4
and edi, 0xf
mov byte [esi + 0x1020], 0x3d
mov al, byte [eax + str.0123456789ABCDEFABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi + 0x1021], al
mov al, byte [edi + str.0123456789ABCDEFABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi + 0x1022], al
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x101c]
add eax, ecx
mov dword [esi + 0x10], eax
cmp eax, 0x4c
jg 0x10047cef
jne 0x10047d7f
mov ecx, esi
call fcn.100478a0
test al, al
jne 0x10047d7f
mov ecx, dword [esi + 0x101c]
mov eax, dword [esi]
cmp eax, 3
jne 0x10047d1a
lea ebx, [eax - 1]
jmp 0x10047d21
mov al, bl
sub al, 0x21
cmp al, 0x5d
ja 0x10047c90
cmp bl, 0x3d
je 0x10047c90
mov dword [esi + 0x101c], 1
mov byte [esi + 0x1020], bl
jmp 0x10047cc1
xor ebx, ebx
test eax, eax
setne bl
push ecx
lea eax, [esi + 0x1020]
push eax
lea eax, [esi + 0x1021]
add eax, ebx
push eax
call fcn.100c0760
mov eax, dword [esi + 0x101c]
add esp, 0xc
mov dword [esi + 0x10], eax
inc eax
add eax, ebx
mov dword [esi + 0x101c], eax
mov byte [esi + 0x1020], 0x3d
mov eax, dword [esi]
sub eax, 1
je 0x10047d78
sub eax, 1
je 0x10047d6f
sub eax, 1
jne 0x10047d7f
mov word [esi + 0x1021], 0xa0d
jmp 0x10047d7f
mov byte [esi + 0x1021], 0xa
jmp 0x10047d7f
mov byte [esi + 0x1021], 0xd
lea eax, [ebp + 0x10]
mov ecx, esi
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push eax
call fcn.100479b0
test al, al
jne 0x10047f37
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x10047b90
jmp 0x10047dab
mov byte [esi + 0xd], 1
cmp dword [esi + 4], 2
jne 0x10047f37
test edi, edi
je 0x10047f37
nop dword [eax]
cmp byte [esi + 0xd], 0
jne 0x10047f37
cmp byte [esi + 0xc], 0
jne 0x10047f3b
mov ecx, esi
call fcn.10047800
test al, al
je 0x10047eb0
mov eax, dword [esi + 0x18]
mov cl, byte [eax + esi + 0x1c]
inc eax
mov dword [esi + 0x18], eax
movzx edi, cl
mov ecx, esi
mov eax, edi
and edi, 3
shr eax, 2
mov al, byte [eax + 0x10103570]
mov byte [esi + 0x1020], al
call fcn.10047800
shl edi, 4
test al, al
je 0x10047e7a
mov eax, dword [esi + 0x18]
mov cl, byte [eax + esi + 0x1c]
inc eax
mov dword [esi + 0x18], eax
movzx ebx, cl
mov ecx, esi
mov eax, ebx
and ebx, 0xf
shr eax, 4
or eax, edi
mov al, byte [eax + 0x10103570]
mov byte [esi + 0x1021], al
call fcn.10047800
test al, al
je 0x10047e6f
mov eax, dword [esi + 0x18]
mov cl, byte [eax + esi + 0x1c]
inc eax
mov dword [esi + 0x18], eax
movzx ecx, cl
mov eax, ecx
shr ecx, 6
and eax, 0x3f
mov dl, byte [eax + 0x10103570]
lea eax, [ebx*4]
or ecx, eax
mov al, byte [ecx + 0x10103570]
jmp 0x10047e8a
mov al, byte [ebx*4 + 0x10103570]
mov dl, 0x3d
jmp 0x10047e8a
mov al, byte [edi + 0x10103570]
mov dl, 0x3d
mov byte [esi + 0x1021], al
mov al, dl
mov ecx, esi
mov dword [esp + 0x14], 0x1023
mov edi, 0x1022
mov ebx, esi
mov byte [edi + ecx], al
mov ecx, 4
mov eax, dword [esp + 0x14]
mov byte [ebx + eax], dl
add dword [esi + 0x10], 4
jmp 0x10047eb6
mov byte [esi + 0xd], 1
xor ecx, ecx
mov dword [esi + 0x101c], ecx
cmp dword [esi + 0x10], 0x4c
jge 0x10047ec8
cmp byte [esi + 0xd], 0
je 0x10047f16
mov eax, dword [esi]
sub eax, 1
je 0x10047f01
sub eax, 1
je 0x10047ef7
sub eax, 1
jne 0x10047f0f
mov byte [ecx + esi + 0x1020], 0xd
inc dword [esi + 0x101c]
mov eax, dword [esi + 0x101c]
mov byte [eax + esi + 0x1020], 0xa
jmp 0x10047f09
mov byte [ecx + esi + 0x1020], 0xa
jmp 0x10047f09
mov byte [ecx + esi + 0x1020], 0xd
inc dword [esi + 0x101c]
mov dword [esi + 0x10], 0
lea eax, [ebp + 0x10]
mov ecx, esi
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push eax
call fcn.100479b0
test al, al
jne 0x10047f37
cmp dword [ebp + 0xc], 0
ja 0x10047dc0
cmp byte [esi + 0xc], 0
pop edi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 0xc