Function at 0x478360
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa14
mov eax, dword [0x5e6468]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, eax
mov eax, 0x40
xor ebx, ebx
mov esi, edx
mov dword [ebp - 0x60c], ecx
mov dword [ebp - 0xa14], eax
mov dword [ebp - 0xa10], eax
mov dword [ebp - 0xa0c], eax
mov dword [ebp - 0xa08], eax
mov dword [ebp - 0xa04], eax
mov dword [ebp - 0xa00], eax
mov dword [ebp - 0x9fc], eax
mov dword [ebp - 0x9f8], eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov dword [ebp - 0x9e8], eax
mov dword [ebp - 0x9e4], eax
mov dword [ebp - 0x9e0], eax
mov dword [ebp - 0x9dc], eax
mov dword [ebp - 0x9d8], eax
mov dword [ebp - 0x9d4], eax
mov dword [ebp - 0x9d0], eax
mov dword [ebp - 0x9cc], eax
mov dword [ebp - 0x9c8], eax
mov dword [ebp - 0x9c4], eax
mov dword [ebp - 0x9c0], eax
mov dword [ebp - 0x9bc], eax
mov dword [ebp - 0x9b8], eax
mov dword [ebp - 0x9b4], eax
mov dword [ebp - 0x9b0], eax
mov dword [ebp - 0x9ac], eax
mov dword [ebp - 0x9a8], eax
mov dword [ebp - 0x9a4], eax
mov dword [ebp - 0x9a0], eax
mov dword [ebp - 0x99c], eax
mov dword [ebp - 0x998], eax
mov dword [ebp - 0x994], eax
mov dword [ebp - 0x990], eax
mov dword [ebp - 0x98c], eax
mov dword [ebp - 0x988], eax
mov dword [ebp - 0x984], eax
mov dword [ebp - 0x980], eax
mov dword [ebp - 0x97c], eax
mov dword [ebp - 0x978], eax
mov dword [ebp - 0x974], eax
mov dword [ebp - 0x970], eax
mov dword [ebp - 0x96c], eax
mov dword [ebp - 0x968], 0x3e
mov dword [ebp - 0x964], eax
mov dword [ebp - 0x960], eax
mov dword [ebp - 0x95c], eax
mov dword [ebp - 0x958], 0x3f
mov dword [ebp - 0x954], 0x34
mov dword [ebp - 0x950], 0x35
mov dword [ebp - 0x94c], 0x36
mov dword [ebp - 0x948], 0x37
mov dword [ebp - 0x944], 0x38
mov dword [ebp - 0x940], 0x39
mov dword [ebp - 0x93c], 0x3a
mov dword [ebp - 0x938], 0x3b
mov dword [ebp - 0x934], 0x3c
mov dword [ebp - 0x930], 0x3d
mov dword [ebp - 0x92c], eax
mov dword [ebp - 0x928], eax
mov dword [ebp - 0x924], eax
mov dword [ebp - 0x920], eax
mov dword [ebp - 0x91c], eax
mov dword [ebp - 0x918], eax
mov dword [ebp - 0x914], eax
mov dword [ebp - 0x910], ebx
mov dword [ebp - 0x90c], 1
mov dword [ebp - 0x908], 2
mov dword [ebp - 0x904], 3
mov dword [ebp - 0x900], 4
mov dword [ebp - 0x8fc], 5
mov dword [ebp - 0x8f8], 6
mov dword [ebp - 0x8f4], 7
mov dword [ebp - 0x8f0], 8
mov dword [ebp - 0x8ec], 9
mov dword [ebp - 0x8e8], 0xa
mov dword [ebp - 0x8e4], 0xb
mov dword [ebp - 0x8e0], 0xc
mov dword [ebp - 0x8dc], 0xd
mov dword [ebp - 0x8d8], 0xe
mov dword [ebp - 0x8d4], 0xf
mov dword [ebp - 0x8d0], 0x10
mov dword [ebp - 0x8cc], 0x11
mov dword [ebp - 0x8c8], 0x12
mov dword [ebp - 0x8c4], 0x13
mov dword [ebp - 0x8c0], 0x14
mov dword [ebp - 0x8bc], 0x15
mov dword [ebp - 0x8b8], 0x16
mov dword [ebp - 0x8b4], 0x17
mov dword [ebp - 0x8b0], 0x18
mov dword [ebp - 0x8ac], 0x19
mov dword [ebp - 0x8a8], eax
mov dword [ebp - 0x8a4], eax
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], eax
mov dword [ebp - 0x898], eax
mov dword [ebp - 0x894], eax
mov dword [ebp - 0x890], 0x1a
mov dword [ebp - 0x88c], 0x1b
mov dword [ebp - 0x888], 0x1c
mov dword [ebp - 0x884], 0x1d
mov dword [ebp - 0x880], 0x1e
mov dword [ebp - 0x87c], 0x1f
mov dword [ebp - 0x878], 0x20
mov dword [ebp - 0x874], 0x21
mov dword [ebp - 0x870], 0x22
mov dword [ebp - 0x86c], 0x23
mov dword [ebp - 0x868], 0x24
mov dword [ebp - 0x864], 0x25
mov dword [ebp - 0x860], 0x26
mov dword [ebp - 0x85c], 0x27
mov dword [ebp - 0x858], 0x28
mov dword [ebp - 0x854], 0x29
mov dword [ebp - 0x850], 0x2a
mov dword [ebp - 0x84c], 0x2b
mov dword [ebp - 0x848], 0x2c
mov dword [ebp - 0x844], 0x2d
mov dword [ebp - 0x840], 0x2e
mov dword [ebp - 0x83c], 0x2f
mov dword [ebp - 0x838], 0x30
mov dword [ebp - 0x834], 0x31
mov dword [ebp - 0x830], 0x32
mov dword [ebp - 0x82c], 0x33
mov dword [ebp - 0x828], eax
mov dword [ebp - 0x824], eax
mov dword [ebp - 0x820], eax
mov dword [ebp - 0x81c], eax
mov dword [ebp - 0x818], eax
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x810], eax
mov dword [ebp - 0x80c], eax
mov dword [ebp - 0x808], eax
mov dword [ebp - 0x804], eax
mov dword [ebp - 0x800], eax
mov dword [ebp - 0x7fc], eax
mov dword [ebp - 0x7f8], eax
mov dword [ebp - 0x7f4], eax
mov dword [ebp - 0x7f0], eax
mov dword [ebp - 0x7ec], eax
mov dword [ebp - 0x7e8], eax
mov dword [ebp - 0x7e4], eax
mov dword [ebp - 0x7e0], eax
mov dword [ebp - 0x7dc], eax
mov dword [ebp - 0x7d8], eax
mov dword [ebp - 0x7d4], eax
mov dword [ebp - 0x7d0], eax
mov dword [ebp - 0x7cc], eax
mov dword [ebp - 0x7c8], eax
mov dword [ebp - 0x7c4], eax
mov dword [ebp - 0x7c0], eax
mov dword [ebp - 0x7bc], eax
mov dword [ebp - 0x7b8], eax
mov dword [ebp - 0x7b4], eax
mov dword [ebp - 0x7b0], eax
mov dword [ebp - 0x7ac], eax
mov dword [ebp - 0x7a8], eax
mov dword [ebp - 0x7a4], eax
mov dword [ebp - 0x7a0], eax
mov dword [ebp - 0x79c], eax
mov dword [ebp - 0x798], eax
mov dword [ebp - 0x794], eax
mov dword [ebp - 0x790], eax
mov dword [ebp - 0x78c], eax
mov dword [ebp - 0x788], eax
mov dword [ebp - 0x784], eax
mov dword [ebp - 0x780], eax
mov dword [ebp - 0x77c], eax
mov dword [ebp - 0x778], eax
mov dword [ebp - 0x774], eax
mov dword [ebp - 0x770], eax
mov dword [ebp - 0x76c], eax
mov dword [ebp - 0x768], eax
mov dword [ebp - 0x764], eax
mov dword [ebp - 0x760], eax
mov dword [ebp - 0x75c], eax
mov dword [ebp - 0x758], eax
mov dword [ebp - 0x754], eax
mov dword [ebp - 0x750], eax
mov dword [ebp - 0x74c], eax
mov dword [ebp - 0x748], eax
mov dword [ebp - 0x744], eax
mov dword [ebp - 0x740], eax
mov dword [ebp - 0x73c], eax
mov dword [ebp - 0x738], eax
mov dword [ebp - 0x734], eax
mov dword [ebp - 0x730], eax
mov dword [ebp - 0x72c], eax
mov dword [ebp - 0x728], eax
mov dword [ebp - 0x724], eax
mov dword [ebp - 0x720], eax
mov dword [ebp - 0x71c], eax
mov dword [ebp - 0x718], eax
mov dword [ebp - 0x714], eax
mov dword [ebp - 0x710], eax
mov dword [ebp - 0x70c], eax
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], eax
mov dword [ebp - 0x700], eax
mov dword [ebp - 0x6fc], eax
mov dword [ebp - 0x6f8], eax
mov dword [ebp - 0x6f4], eax
mov dword [ebp - 0x6f0], eax
mov dword [ebp - 0x6ec], eax
mov dword [ebp - 0x6e8], eax
mov dword [ebp - 0x6e4], eax
mov dword [ebp - 0x6e0], eax
mov dword [ebp - 0x6dc], eax
mov dword [ebp - 0x6d8], eax
mov dword [ebp - 0x6d4], eax
mov dword [ebp - 0x6d0], eax
mov dword [ebp - 0x6cc], eax
mov dword [ebp - 0x6c8], eax
mov dword [ebp - 0x6c4], eax
mov dword [ebp - 0x6c0], eax
mov dword [ebp - 0x6bc], eax
mov dword [ebp - 0x6b8], eax
mov dword [ebp - 0x6b4], eax
mov dword [ebp - 0x6b0], eax
mov dword [ebp - 0x6ac], eax
mov dword [ebp - 0x6a8], eax
mov dword [ebp - 0x6a4], eax
mov dword [ebp - 0x6a0], eax
mov dword [ebp - 0x69c], eax
mov dword [ebp - 0x698], eax
mov dword [ebp - 0x694], eax
mov dword [ebp - 0x690], eax
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x688], eax
mov dword [ebp - 0x684], eax
mov dword [ebp - 0x680], eax
mov dword [ebp - 0x67c], eax
mov dword [ebp - 0x678], eax
mov dword [ebp - 0x674], eax
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x66c], eax
mov dword [ebp - 0x668], eax
mov dword [ebp - 0x664], eax
mov dword [ebp - 0x660], eax
mov dword [ebp - 0x65c], eax
mov dword [ebp - 0x658], eax
mov dword [ebp - 0x654], eax
mov dword [ebp - 0x650], eax
mov dword [ebp - 0x64c], eax
mov dword [ebp - 0x648], eax
mov dword [ebp - 0x644], eax
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x63c], eax
mov dword [ebp - 0x638], eax
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x628], eax
mov dword [ebp - 0x624], eax
mov dword [ebp - 0x620], eax
mov dword [ebp - 0x61c], eax
mov dword [ebp - 0x618], eax
cmp esi, ebx
jbe 0x478aa6
lea ebx, [ebx]
movsx edx, byte [edi]
push edx
call fcn.00563868
add esp, 4
test eax, eax
je 0x478aa6
inc edi
sub esi, 1
jne 0x478a90
cmp esi, 0x3fc
jbe 0x478ac4
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0055e289
mov esp, ebp
pop ebp
ret
cmp esi, 0x7ffffffe
jbe 0x478ad4
mov byte [ebp - 0x404], bl
jmp 0x478ae7
push edi
mov eax, esi
mov edx, 0x400
lea ecx, [ebp - 0x404]
call fcn.00478140
mov byte [ebp + esi - 0x401], bl
mov byte [ebp + esi - 0x402], bl
mov byte [ebp + esi - 0x403], bl
mov byte [ebp + esi - 0x404], bl
lea eax, [ebp - 0x404]
mov ecx, 0x3f
mov edi, edi
movsx edx, byte [eax]
inc eax
cmp dword [ebp + edx*4 - 0xa14], ecx
jle 0x478b10
lea ecx, [ebp - 0x404]
sub eax, ecx
dec eax
mov ecx, eax
lea eax, [ecx + 3]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edi, [eax + eax*2]
cmp edi, 0x1000
mov dword [ebp - 0x614], edi
jle 0x478b5b
pop edi
pop esi
mov eax, 2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0055e289
mov esp, ebp
pop ebp
ret
cmp ecx, ebx
lea eax, [ebp - 0x604]
lea esi, [ebp - 0x404]
jle 0x478c09
lea edx, [ecx - 1]
shr edx, 2
inc edx
mov dword [ebp - 0x608], edx
neg edx
lea edx, [ecx + edx*4]
mov dword [ebp - 0x610], edx
jmp 0x478b90
movsx ecx, byte [esi]
mov dl, byte [ebp + ecx*4 - 0xa14]
movsx edi, byte [esi + 1]
mov ecx, dword [ebp + edi*4 - 0xa14]
mov bl, byte [ebp + edi*4 - 0xa14]
add dl, dl
sar ecx, 4
lea edi, [ebp + edi*4 - 0xa14]
add dl, dl
or dl, cl
movsx ecx, byte [esi + 2]
mov byte [eax], dl
mov edx, dword [ebp + ecx*4 - 0xa14]
lea ecx, [ebp + ecx*4 - 0xa14]
mov cl, byte [ecx]
sar edx, 2
inc eax
shl bl, 4
or dl, bl
mov byte [eax], dl
movsx edx, byte [esi + 3]
shl cl, 6
or cl, byte [ebp + edx*4 - 0xa14]
inc eax
mov byte [eax], cl
inc eax
add esi, 4
sub dword [ebp - 0x608], 1
jne 0x478b90
mov ecx, dword [ebp - 0x610]
mov edi, dword [ebp - 0x614]
xor ebx, ebx
test cl, 3
je 0x478c22
movsx edx, byte [esi - 2]
cmp dword [ebp + edx*4 - 0xa14], 0x3f
jle 0x478c21
sub edi, 2
jmp 0x478c22
dec edi
mov ecx, dword [ebp - 0x60c]
push edi
lea eax, [ebp - 0x604]
push eax
push ecx
mov byte [ebp + edi - 0x604], bl
call fcn.00562ba0
mov ecx, dword [ebp - 4]
add esp, 0xc
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0055e289
mov esp, ebp
pop ebp
ret