Function at 0x417ad0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43c44d
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x44f008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 4], 0
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x40], esi
test esi, esi
jne 0x417b60
mov ecx, dword [ebp + 0x1c]
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], esi
mov dword [edi], esi
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
cmp ecx, 0x10
jb 0x417fe6
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417b59
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418008
push ecx
push edx
jmp 0x417fde
test dl, dl
je 0x417ca4
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x28]
call fcn.004067f0
mov byte [ebp - 4], 1
lea eax, [ebp - 0x28]
mov esi, dword [ebp - 0x14]
cmp esi, 0x10
mov edx, dword [ebp - 0x28]
cmovae eax, edx
add eax, dword [ebp - 0x18]
cmp esi, 0x10
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x28]
cmovae eax, edx
add eax, dword [ebp - 0x18]
cmp esi, 0x10
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x28]
mov esi, dword [ebp - 0x40]
cmovae eax, edx
push 0xa
push esi
push eax
call fcn.0041a710
mov edi, eax
cmp eax, esi
je 0x417bcf
inc eax
cmp eax, esi
je 0x417bcf
nop dword [eax]
mov cl, byte [eax]
cmp cl, 0xa
je 0x417bca
mov byte [edi], cl
inc edi
inc eax
cmp eax, esi
jne 0x417bc0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
mov esi, edi
lea ecx, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
sub dword [ebp - 0x38], edi
sub esi, eax
mov edi, dword [ebp - 0x18]
mov eax, edi
mov edx, dword [ebp - 0x38]
sub eax, esi
cmp eax, edx
cmovb edx, eax
cmp dword [ebp - 0x14], 0x10
mov dword [ebp - 0x38], edx
cmovae ecx, dword [ebp - 0x28]
sub edi, edx
add ecx, esi
mov eax, edi
sub eax, esi
inc eax
push eax
lea eax, [ecx + edx]
push eax
push ecx
call fcn.0041b920
mov dword [ebp - 0x18], edi
lea edx, [ebp - 0x28]
mov edi, dword [ebp - 0x48]
mov ecx, edi
push 0
call fcn.00417a30
mov ecx, dword [ebp - 0x14]
add esp, 0x10
cmp ecx, 0x10
jb 0x417c5b
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417c51
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418003
push ecx
push edx
call fcn.00418523
add esp, 8
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
cmp ecx, 0x10
jb 0x417fe6
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x417b59
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418003
jmp 0x417b59
mov eax, esi
mov dword [ebp - 0x14], 0xf
shr eax, 2
xor edi, edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x18], edi
mov byte [ebp - 0x28], 0
lea eax, [eax + eax*2]
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.00411e70
mov ecx, dword [ebp + 8]
test esi, esi
mov esi, dword [ebp + 0x1c]
je 0x417f94
nop word [eax + eax]
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
mov dl, byte [eax + edi + 1]
lea eax, [edx - 0x41]
cmp al, 0x19
ja 0x417cfc
movzx edx, dl
sub edx, 0x41
jmp 0x417d3e
lea eax, [edx - 0x61]
cmp al, 0x19
ja 0x417d0b
movzx edx, dl
sub edx, 0x47
jmp 0x417d3e
lea eax, [edx - 0x30]
cmp al, 9
ja 0x417d1a
movzx edx, dl
add edx, 4
jmp 0x417d3e
cmp dl, 0x2b
je 0x417d39
cmp dl, 0x2d
je 0x417d39
cmp dl, 0x2f
je 0x417d32
cmp dl, 0x5f
jne 0x41800d
mov edx, 0x3f
jmp 0x417d3e
mov edx, 0x3e
cmp esi, 0x10
mov dword [ebp - 0x38], edx
lea eax, [ebp + 8]
cmovae eax, ecx
mov al, byte [eax + edi]
lea ecx, [eax - 0x41]
cmp cl, 0x19
ja 0x417d59
sub al, 0x41
jmp 0x417d8b
lea ecx, [eax - 0x61]
cmp cl, 0x19
ja 0x417d65
sub al, 0x47
jmp 0x417d8b
lea ecx, [eax - 0x30]
cmp cl, 9
ja 0x417d71
add al, 4
jmp 0x417d8b
cmp al, 0x2b
je 0x417d89
cmp al, 0x2d
je 0x417d89
cmp al, 0x2f
je 0x417d85
cmp al, 0x5f
jne 0x41800d
mov al, 0x3f
jmp 0x417d8b
mov al, 0x3e
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
shr edx, 4
and dl, 3
shl al, 2
add dl, al
mov byte [ebp - 0x2c], dl
cmp ecx, esi
jae 0x417dbd
lea eax, [ecx + 1]
cmp esi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x417dd1
push dword [ebp - 0x2c]
mov byte [ebp - 0x4c], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x4c]
push 1
call fcn.00408e00
lea eax, [edi + 2]
cmp eax, dword [ebp - 0x40]
jae 0x417f82
mov esi, dword [ebp + 0x1c]
lea eax, [ebp + 8]
mov ecx, dword [ebp + 8]
cmp esi, 0x10
cmovae eax, ecx
cmp byte [eax + edi + 2], 0x3d
je 0x417f88
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
cmp byte [eax + edi + 2], 0x2e
je 0x417f88
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
mov cl, byte [eax + edi + 2]
lea eax, [ecx - 0x41]
cmp al, 0x19
ja 0x417e27
movzx edx, cl
sub edx, 0x41
jmp 0x417e69
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x417e36
movzx edx, cl
sub edx, 0x47
jmp 0x417e69
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x417e45
movzx edx, cl
add edx, 4
jmp 0x417e69
cmp cl, 0x2b
je 0x417e64
cmp cl, 0x2d
je 0x417e64
cmp cl, 0x2f
je 0x417e5d
cmp cl, 0x5f
jne 0x41800d
mov edx, 0x3f
jmp 0x417e69
mov edx, 0x3e
mov eax, dword [ebp - 0x38]
mov ecx, edx
mov esi, dword [ebp - 0x18]
shr ecx, 2
and cl, 0xf
shl al, 4
xor cl, al
mov dword [ebp - 0x3c], edx
mov byte [ebp - 0x30], cl
cmp esi, dword [ebp - 0x14]
jae 0x417ea2
cmp dword [ebp - 0x14], 0x10
lea eax, [esi + 1]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov byte [eax + esi], cl
mov byte [eax + esi + 1], 0
jmp 0x417eb9
push dword [ebp - 0x30]
mov byte [ebp - 0x50], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x50]
push 1
call fcn.00408e00
mov edx, dword [ebp - 0x3c]
lea eax, [edi + 3]
cmp eax, dword [ebp - 0x40]
jae 0x417f82
mov esi, dword [ebp + 0x1c]
lea eax, [ebp + 8]
mov ecx, dword [ebp + 8]
cmp esi, 0x10
cmovae eax, ecx
cmp byte [eax + edi + 3], 0x3d
je 0x417f88
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
cmp byte [eax + edi + 3], 0x2e
je 0x417f88
cmp esi, 0x10
lea eax, [ebp + 8]
cmovae eax, ecx
mov cl, byte [eax + edi + 3]
lea eax, [ecx - 0x41]
cmp al, 0x19
ja 0x417f0c
sub cl, 0x41
jmp 0x417f42
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x417f18
sub cl, 0x47
jmp 0x417f42
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x417f24
add cl, 4
jmp 0x417f42
cmp cl, 0x2b
je 0x417f40
cmp cl, 0x2d
je 0x417f40
cmp cl, 0x2f
je 0x417f3c
cmp cl, 0x5f
jne 0x418028
mov cl, 0x3f
jmp 0x417f42
mov cl, 0x3e
mov esi, dword [ebp - 0x14]
shl dl, 6
add dl, cl
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0x34], dl
cmp ecx, esi
jae 0x417f6e
lea eax, [ecx + 1]
cmp esi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x417f82
push dword [ebp - 0x34]
mov byte [ebp - 0x44], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x44]
push 1
call fcn.00408e00
mov esi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
add edi, 4
cmp edi, dword [ebp - 0x40]
jb 0x417ce0
mov edi, dword [ebp - 0x48]
movups xmm0, xmmword [ebp - 0x28]
mov dword [edi], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [edi + 0x10], xmm0
cmp esi, 0x10
jb 0x417fe6
inc esi
mov eax, ecx
cmp esi, 0x1000
jb 0x417fdc
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x418008
push esi
push ecx
call fcn.00418523
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00418044
mov esp, ebp
pop ebp
ret
call fcn.00421336
call fcn.00421336
push str.Input_is_not_valid_base64_encoded_data.
lea ecx, [ebp - 0x5c]
call fcn.004176a0
push 0x44d66c
lea eax, [ebp - 0x5c]
push eax
call fcn.0041b8aa
push str.Input_is_not_valid_base64_encoded_data.
lea ecx, [ebp - 0x6c]
call fcn.004176a0
push 0x44d66c
lea eax, [ebp - 0x6c]
push eax
call fcn.0041b8aa
int3