Function at 0x416fc0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50c7bc
mov eax, dword fs:[0]
push eax
sub esp, 0x90
mov eax, dword [0x55c640]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x7c], edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x78], 0
cmp byte [edx], 0
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x5c], 0
jne 0x41701f
xor ecx, ecx
jmp 0x41702d
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417024
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x5c]
call fcn.004511b0
lea eax, [ebp - 0x5c]
mov dword [ebp - 4], 1
push eax
sub esp, 0x18
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.00451080
lea ecx, [ebp - 0x98]
call fcn.00409440
add esp, 0x18
mov edx, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
call fcn.00457540
add esp, 4
mov byte [ebp - 4], 4
cmp dword [ebp - 0x84], 0x10
jb 0x41709c
push dword [ebp - 0x98]
call fcn.00485250
add esp, 4
cmp dword [ebp - 0x30], 0x10
lea edx, [ebp - 0x44]
mov dword [ebp - 0x84], 0xf
cmovae edx, dword [ebp - 0x44]
mov ebx, edx
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x98], 0
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4170c7
mov eax, 0
mov dword [edi + 0x14], 7
mov dword [edi + 0x10], 0
sub ebx, ecx
mov word [edi], ax
mov dword [ebp - 0x78], 1
mov ecx, eax
je 0x41735c
mov al, byte [edx]
dec ebx
mov byte [ebp + ecx - 0x68], al
inc edx
mov al, byte [ebp - 0x66]
inc ecx
mov ah, byte [ebp - 0x67]
mov byte [ebp - 0x5e], al
mov al, byte [ebp - 0x68]
mov dword [ebp - 0x70], edx
mov byte [ebp - 0x69], ah
mov byte [ebp - 0x5d], al
cmp ecx, 3
jne 0x417185
mov cl, byte [ebp - 0x5d]
shr al, 2
and cl, 3
mov byte [ebp - 0x64], al
mov al, ah
shl cl, 4
shr al, 4
add cl, al
mov al, byte [ebp - 0x5e]
mov byte [ebp - 0x63], cl
mov cl, ah
and cl, 0xf
shr al, 6
shl cl, 2
add cl, al
mov al, byte [ebp - 0x5e]
and al, 0x3f
mov byte [ebp - 0x62], cl
mov byte [ebp - 0x61], al
xor esi, esi
mov edi, edi
cmp dword [0x55dbd4], 0x10
mov ecx, 0x55dbc0
movzx eax, byte [ebp + esi - 0x64]
cmovae ecx, dword [0x55dbc0]
movsx ax, byte [eax + ecx]
mov ecx, edi
movzx eax, ax
push eax
push 1
call fcn.00451b00
inc esi
cmp esi, 4
jl 0x417150
mov edx, dword [ebp - 0x70]
xor ecx, ecx
test ebx, ebx
jne 0x4170f5
mov dword [ebp - 0x70], ecx
test ecx, ecx
je 0x41735c
mov eax, ecx
cmp ecx, 3
jge 0x4171bf
cmp eax, 3
jae 0x4171ba
mov byte [ebp + eax - 0x68], 0
inc eax
cmp eax, 3
jl 0x4171a2
mov ah, byte [ebp - 0x66]
mov dl, byte [ebp - 0x67]
mov bl, byte [ebp - 0x68]
jmp 0x4171c8
call fcn.00488218
mov dl, byte [ebp - 0x69]
mov bl, byte [ebp - 0x5d]
mov ah, byte [ebp - 0x5e]
mov al, bl
and bl, 3
shr al, 2
mov byte [ebp - 0x64], al
mov al, dl
shr al, 4
and dl, 0xf
shl bl, 4
add bl, al
shl dl, 2
mov al, ah
mov byte [ebp - 0x63], bl
shr al, 6
and ah, 0x3f
add dl, al
mov byte [ebp - 0x61], ah
lea eax, [ecx + 1]
mov byte [ebp - 0x62], dl
xor ebx, ebx
mov dword [ebp - 0x74], eax
test eax, eax
jle 0x4172bd
jmp 0x417210
cmp dword [0x55dbd4], 0x10
mov ecx, 0x55dbc0
movzx eax, byte [ebp + ebx - 0x64]
cmovae ecx, dword [0x55dbc0]
movsx ax, byte [eax + ecx]
mov ecx, dword [edi + 0x10]
movzx edx, ax
or eax, 0xffffffff
sub eax, ecx
mov dword [ebp - 0x68], edx
cmp eax, 1
jbe 0x417301
lea esi, [ecx + 1]
cmp esi, 0x7ffffffe
ja 0x417301
mov eax, dword [edi + 0x14]
cmp eax, esi
jae 0x417268
push ecx
push esi
mov ecx, edi
call fcn.00456390
mov edx, dword [ebp - 0x68]
jmp 0x41727f
test esi, esi
jne 0x417281
mov dword [edi + 0x10], esi
cmp eax, 8
jb 0x417278
mov eax, dword [edi]
jmp 0x41727a
mov eax, edi
xor ecx, ecx
mov word [eax], cx
test esi, esi
setne al
test al, al
je 0x4172b0
cmp dword [edi + 0x14], 8
mov ecx, dword [edi + 0x10]
jb 0x417295
mov eax, dword [edi]
jmp 0x417297
mov eax, edi
mov word [eax + ecx*2], dx
cmp dword [edi + 0x14], 8
mov dword [edi + 0x10], esi
jb 0x4172a8
mov eax, dword [edi]
jmp 0x4172aa
mov eax, edi
xor ecx, ecx
mov word [eax + esi*2], cx
inc ebx
cmp ebx, dword [ebp - 0x74]
jl 0x417210
mov ecx, dword [ebp - 0x70]
cmp ecx, 3
jge 0x41735c
mov ebx, 0x3d
jmp 0x4172d0
mov edx, dword [edi + 0x10]
or eax, 0xffffffff
inc ecx
sub eax, edx
mov dword [ebp - 0x70], ecx
cmp eax, 1
jbe 0x417301
lea esi, [edx + 1]
cmp esi, 0x7ffffffe
ja 0x417301
mov eax, dword [edi + 0x14]
cmp eax, esi
jae 0x41730b
push edx
push esi
mov ecx, edi
call fcn.00456390
mov ecx, dword [ebp - 0x70]
jmp 0x417322
push str.string_too_long
call fcn.0046c935
test esi, esi
jne 0x417324
mov dword [edi + 0x10], esi
cmp eax, 8
jb 0x41731b
mov eax, dword [edi]
jmp 0x41731d
mov eax, edi
xor edx, edx
mov word [eax], dx
test esi, esi
setne al
test al, al
je 0x417353
cmp dword [edi + 0x14], 8
mov edx, dword [edi + 0x10]
jb 0x417338
mov eax, dword [edi]
jmp 0x41733a
mov eax, edi
mov word [eax + edx*2], bx
cmp dword [edi + 0x14], 8
mov dword [edi + 0x10], esi
jb 0x41734b
mov eax, dword [edi]
jmp 0x41734d
mov eax, edi
xor edx, edx
mov word [eax + esi*2], dx
cmp ecx, 3
jl 0x4172d0
xor eax, eax
mov dword [ebp - 0x18], 7
push 0xffffffffffffffff
push eax
push edi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x1c], 0
mov word [ebp - 0x2c], ax
call fcn.00451bc0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1c]
dec eax
je 0x4173d9
xor edi, edi
jmp 0x417390
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x2c]
cmp esi, 8
cmovae eax, edx
cmovae ecx, edx
mov bl, byte [eax + edi*2]
lea eax, [ebp - 0x2c]
cmovae eax, edx
mov ax, word [eax + edi*2 + 2]
mov word [ecx + edi*2], ax
lea ecx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 8
movsx ax, bl
cmovae ecx, dword [ebp - 0x2c]
mov word [ecx + edi*2 + 2], ax
add edi, 3
mov eax, dword [ebp - 0x1c]
dec eax
cmp edi, eax
jb 0x417390
mov edi, dword [ebp - 0x7c]
lea eax, [ebp - 0x2c]
cmp edi, eax
je 0x4173ec
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00451bc0
cmp dword [ebp - 0x18], 8
jb 0x4173fd
push dword [ebp - 0x2c]
call fcn.00485250
add esp, 4
xor eax, eax
mov dword [ebp - 0x18], 7
cmp dword [ebp - 0x30], 0x10
mov dword [ebp - 0x1c], 0
mov word [ebp - 0x2c], ax
jb 0x417422
push dword [ebp - 0x44]
call fcn.00485250
add esp, 4
cmp dword [ebp - 0x48], 0x10
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x44], 0
jb 0x417445
push dword [ebp - 0x5c]
call fcn.00485250
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00484516
mov esp, ebp
pop ebp
ret