Function at 0x46ce14
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x14
push 0
push 0
dec ecx
jne 0x46ce1c
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004045d8
xor eax, eax
push ebp
push 0x46d5eb
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x2c], 0xffffffff
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x30]
mov ecx, 1
mov eax, 0x46d604
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46ce8c
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x34]
mov ecx, 1
mov eax, 0x46d614
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46ceaf
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x38]
mov ecx, 1
mov eax, 0x46d628
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46ced2
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x3c]
mov ecx, 1
mov eax, 0x46d638
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46cef5
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x40]
mov ecx, 1
mov eax, 0x46d64c
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46cf18
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x44]
mov ecx, 1
mov eax, 0x46d65c
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46cf3b
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x48]
mov ecx, 1
mov eax, 0x46d66c
call fcn.00452440
mov ebx, eax
test ebx, ebx
jle 0x46d572
mov byte [ebp - 0x25], 1
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x4c]
lea ecx, [ebx + 5]
mov eax, 0x46d680
call fcn.00452440
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x46cf71
mov byte [ebp - 0x25], 0
jmp 0x46cf99
mov esi, ebx
mov edi, dword [ebp - 0x20]
dec edi
sub edi, esi
jl 0x46cf99
inc edi
mov ecx, 0x46d684
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.00452974
test al, al
je 0x46cf95
mov byte [ebp - 0x25], 0
jmp 0x46cf99
inc esi
dec edi
jne 0x46cf7c
cmp byte [ebp - 0x25], 0
je 0x46cff2
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x20]
inc ecx
mov eax, 0x46d680
call fcn.00452440
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x46cfca
mov byte [ebp - 0x25], 0
jmp 0x46cff2
mov esi, ebx
mov edi, dword [ebp - 0x20]
dec edi
sub edi, esi
jl 0x46cff2
inc edi
mov ecx, 0x46d684
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.00452974
test al, al
je 0x46cfee
mov byte [ebp - 0x25], 0
jmp 0x46cff2
inc esi
dec edi
jne 0x46cfd5
cmp byte [ebp - 0x25], 0
je 0x46d429
lea edx, [ebp - 0x54]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x20]
inc ecx
mov eax, 0x46d6ac
call fcn.00452440
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jle 0x46d429
mov esi, ebx
mov edi, dword [ebp - 0x20]
dec edi
sub edi, esi
jl 0x46d04d
inc edi
mov ecx, 0x46d684
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.00452974
test al, al
je 0x46d049
mov byte [ebp - 0x25], 0
jmp 0x46d04d
inc esi
dec edi
jne 0x46d030
cmp byte [ebp - 0x25], 0
je 0x46d115
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x20]
sub ecx, ebx
add ecx, 2
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00404648
mov esi, 1
mov edx, dword [ebp - 0x24]
mov eax, 0x46d680
call fcn.0040472c
mov edi, eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x24]
call fcn.004043e8
mov ecx, eax
sub ecx, edi
inc ecx
lea edx, [edi + 1]
mov eax, dword [ebp - 0x24]
call fcn.00404648
cmp esi, 1
jne 0x46d0c5
lea eax, [ebp - 0x10]
push eax
mov edx, dword [ebp - 0x24]
mov eax, 0x46d680
call fcn.0040472c
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.00404648
jmp 0x46d0e0
cmp esi, 2
jne 0x46d0e0
lea eax, [ebp - 0xc]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.00404648
inc esi
cmp esi, 4
jne 0x46d072
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x24]
call fcn.004043e8
mov edx, eax
dec edx
mov ecx, 2
mov eax, dword [ebp - 0x24]
call fcn.00404648
mov eax, dword [ebp - 0x58]
mov edx, 0x46d6ac
call fcn.00404534
je 0x46d115
mov byte [ebp - 0x25], 0
cmp dword [ebp - 0x2c], 0
setge al
and al, byte [ebp - 0x25]
je 0x46d16f
test ebx, ebx
jle 0x46d16f
mov byte [ebp - 0x26], 1
mov esi, dword [ebp - 0x2c]
mov edi, ebx
dec edi
sub edi, esi
jl 0x46d151
inc edi
mov ecx, 0x46d684
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.00452974
test al, al
jne 0x46d14d
mov byte [ebp - 0x26], 0
jmp 0x46d151
inc esi
dec edi
jne 0x46d134
cmp byte [ebp - 0x26], 0
je 0x46d16f
mov esi, ebx
sub esi, dword [ebp - 0x2c]
mov ecx, esi
lea eax, [ebp - 4]
mov edx, dword [ebp - 0x2c]
call fcn.00404688
sub dword [ebp - 0x20], esi
mov ebx, dword [ebp - 0x2c]
mov edx, 0x46d6b8
mov eax, dword [ebp - 0xc]
call fcn.0045295c
and al, byte [ebp - 0x25]
je 0x46d284
mov esi, 1
lea eax, [ebp - 0x14]
call fcn.00404128
mov eax, dword [ebp - 0x24]
cmp byte [eax + esi - 1], 0x5f
jne 0x46d1ae
lea eax, [ebp - 0x14]
mov edx, 0x46d6c4
call fcn.004043f0
jmp 0x46d263
mov eax, dword [ebp - 0x24]
cmp byte [eax + esi - 1], 0x3d
jne 0x46d249
mov eax, dword [ebp - 0x24]
call fcn.004043e8
lea edx, [esi + 4]
cmp eax, edx
jl 0x46d249
mov edx, 0x46d6c8
lea eax, [ebp - 0x64]
call fcn.00402bec
lea eax, [ebp - 0x68]
mov edx, dword [ebp - 0x24]
mov dl, byte [edx + esi]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x68]
lea eax, [ebp - 0x64]
mov cl, 2
call fcn.00402bbc
lea edx, [ebp - 0x64]
lea eax, [ebp - 0x6c]
call fcn.00402bec
lea eax, [ebp - 0x68]
mov edx, dword [ebp - 0x24]
mov dl, byte [edx + esi + 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x68]
lea eax, [ebp - 0x6c]
mov cl, 3
call fcn.00402bbc
lea edx, [ebp - 0x6c]
lea eax, [ebp - 0x60]
call fcn.0040438c
mov eax, dword [ebp - 0x60]
call fcn.00408740
mov edx, eax
lea eax, [ebp - 0x5c]
call fcn.00404310
mov edx, dword [ebp - 0x5c]
lea eax, [ebp - 0x14]
call fcn.004043f0
add esi, 2
jmp 0x46d263
lea eax, [ebp - 0x70]
mov edx, dword [ebp - 0x24]
mov dl, byte [edx + esi - 1]
call fcn.00404310
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 0x14]
call fcn.004043f0
inc esi
mov eax, dword [ebp - 0x24]
cmp byte [eax + esi - 1], 0x3f
jne 0x46d192
mov eax, dword [ebp - 0x24]
cmp byte [eax + esi], 0x3d
jne 0x46d192
jmp 0x46d368
cmp byte [ebp - 0x25], 0
je 0x46d368
jmp 0x46d357
mov eax, dword [ebp - 0x24]
mov al, byte [eax]
call fcn.0046cdfc
mov byte [ebp - 0x1b], al
mov eax, dword [ebp - 0x24]
mov al, byte [eax + 1]
call fcn.0046cdfc
mov byte [ebp - 0x1a], al
mov eax, dword [ebp - 0x24]
mov al, byte [eax + 2]
call fcn.0046cdfc
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 0x24]
mov al, byte [eax + 3]
call fcn.0046cdfc
mov byte [ebp - 0x18], al
mov dl, byte [ebp - 0x1b]
shl edx, 2
mov al, byte [ebp - 0x1a]
xor ecx, ecx
mov cl, al
shr ecx, 4
or dl, cl
mov byte [ebp - 0x17], dl
shl eax, 4
xor edx, edx
mov dl, byte [ebp - 0x19]
shr edx, 2
or al, dl
mov byte [ebp - 0x16], al
mov al, byte [ebp - 0x19]
shl eax, 6
xor edx, edx
mov dl, byte [ebp - 0x18]
shr edx, 0
or al, dl
mov byte [ebp - 0x15], al
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x24]
call fcn.004043e8
mov ecx, eax
mov edx, 5
mov eax, dword [ebp - 0x24]
call fcn.00404648
push dword [ebp - 0x14]
lea eax, [ebp - 0x74]
mov dl, byte [ebp - 0x17]
call fcn.00404310
push dword [ebp - 0x74]
lea eax, [ebp - 0x78]
mov dl, byte [ebp - 0x16]
call fcn.00404310
push dword [ebp - 0x78]
lea eax, [ebp - 0x7c]
mov dl, byte [ebp - 0x15]
call fcn.00404310
push dword [ebp - 0x7c]
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004044a8
mov eax, dword [ebp - 0x24]
call fcn.004043e8
cmp eax, 4
jge 0x46d293
cmp byte [ebp - 0x25], 0
je 0x46d429
mov edx, 0x46d6d4
mov eax, dword [ebp - 0x10]
call fcn.0045295c
test al, al
je 0x46d390
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call fcn.0046d6fc
jmp 0x46d3c4
mov edx, 0x46d6e8
mov eax, dword [ebp - 0x10]
call fcn.0045295c
test al, al
je 0x46d3b9
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 0x14]
call fcn.00405fe0
mov edx, dword [ebp - 0x80]
lea eax, [ebp - 0x24]
call fcn.004043b0
jmp 0x46d3c4
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0x14]
call fcn.004041c0
lea eax, [ebp - 0x84]
push eax
mov ecx, ebx
dec ecx
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00404648
push dword [ebp - 0x84]
push dword [ebp - 0x24]
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 4]
call fcn.004043e8
mov ecx, eax
mov edx, dword [ebp - 0x20]
add edx, 2
mov eax, dword [ebp - 4]
call fcn.00404648
push dword [ebp - 0x88]
lea eax, [ebp - 4]
mov edx, 3
call fcn.004044a8
mov eax, dword [ebp - 0x24]
call fcn.004043e8
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
call fcn.00404128
add dword [ebp - 0x20], ebx
mov esi, ebx
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x8c]
lea edi, [esi + 1]
mov ecx, edi
mov eax, 0x46d604
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46d479
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x90]
mov ecx, edi
mov eax, 0x46d614
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46d49f
lea edx, [ebp - 0x94]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x94]
mov ecx, edi
mov eax, 0x46d628
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46d4c5
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x98]
mov ecx, edi
mov eax, 0x46d638
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46d4eb
lea edx, [ebp - 0x9c]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0x9c]
mov ecx, edi
mov eax, 0x46d64c
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46d511
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0xa0]
mov ecx, edi
mov eax, 0x46d65c
call fcn.00452440
mov ebx, eax
test ebx, ebx
jne 0x46d537
lea edx, [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.0040812c
mov edx, dword [ebp - 0xa4]
mov ecx, edi
mov eax, 0x46d66c
call fcn.00452440
mov ebx, eax
cmp byte [ebp - 0x25], 0
je 0x46d545
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x46d54c
mov dword [ebp - 0x2c], 0xffffffff
test ebx, ebx
jg 0x46cf43
jmp 0x46d572
mov edx, dword [ebp - 4]
mov eax, 0x46d6f8
call fcn.0040472c
mov edx, eax
lea eax, [ebp - 4]
mov ecx, 1
call fcn.00404688
mov edx, dword [ebp - 4]
mov eax, 0x46d6f8
call fcn.0040472c
test eax, eax
jg 0x46d556
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.0040417c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46d5f2
lea eax, [ebp - 0xa4]
mov edx, 9
call fcn.0040414c
lea eax, [ebp - 0x80]
call fcn.00404834
lea eax, [ebp - 0x7c]
mov edx, 4
call fcn.0040414c
lea eax, [ebp - 0x60]
mov edx, 0xd
call fcn.0040414c
lea eax, [ebp - 0x24]
call fcn.00404128
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.0040414c
lea eax, [ebp - 4]
call fcn.00404128
ret