Function at 0x4509e0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0xc]
mov ebx, dword [eax + 4]
lea ecx, [ebx + 0x3f]
shr ecx, 6
mov eax, ebx
sub eax, ecx
mov ecx, dword [edi + 8]
lea esi, [eax + eax*2]
mov eax, dword [edi + 4]
push 0
shr esi, 2
add esi, 3
push esi
push eax
push ecx
push edi
mov dword [ebp - 8], ebx
call fcn.00418510
mov dword [edi + 4], esi
xor esi, esi
add esp, 0x14
mov dword [edi + 8], eax
mov dword [ebp - 0xc], esi
cmp ebx, 3
jbe 0x450c92
nop
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x450a4a
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
sub ecx, edx
cmp ecx, 1
jae 0x450b44
mov ebx, 0x410
mov dword [eax + 0x10], ebx
mov byte [ebp - 2], 0
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x450a70
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
sub ecx, edx
cmp ecx, 1
jae 0x450b5d
mov dword [eax + 0x10], ebx
mov byte [ebp - 1], 0
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x450a91
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
sub ecx, edx
cmp ecx, 1
jae 0x450b71
mov dword [eax + 0x10], ebx
xor bl, bl
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x450ab0
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
sub ecx, edx
cmp ecx, 1
jae 0x450b82
mov dword [eax + 0x10], 0x410
xor al, al
mov dl, byte [ebp - 2]
test dl, dl
je 0x450c92
mov byte [ebp - 2], 0
mov byte [ebp - 3], 0
cmp bl, 0x3d
jne 0x450ad5
mov byte [ebp - 2], 1
cmp al, 0x3d
jne 0x450add
mov byte [ebp - 3], 1
cmp dl, 0x2b
jb 0x450d12
mov cl, byte [ebp - 1]
cmp cl, 0x2b
jb 0x450d12
cmp bl, 0x2b
jb 0x450d12
cmp al, 0x2b
jb 0x450d12
cmp dl, 0x7a
ja 0x450d01
cmp cl, 0x7a
ja 0x450d01
cmp bl, 0x7a
ja 0x450d01
cmp al, 0x7a
ja 0x450d01
movzx ecx, cl
mov cl, byte [ecx + 0x4beea5]
movzx edx, dl
mov dl, byte [edx + 0x4beea5]
mov byte [ebp - 1], cl
cmp bl, 0x3d
jne 0x450b93
xor cl, cl
jmp 0x450b9c
lea ecx, [edx + 1]
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov cl, byte [edx + eax]
mov byte [ebp - 2], cl
mov ebx, 0x410
jmp 0x450a56
lea ecx, [edx + 1]
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov cl, byte [edx + eax]
mov byte [ebp - 1], cl
jmp 0x450a77
lea ecx, [edx + 1]
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov bl, byte [edx + eax]
jmp 0x450a96
lea ecx, [edx + 1]
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov al, byte [edx + eax]
jmp 0x450ab9
movzx ecx, bl
mov cl, byte [ecx + 0x4beea5]
cmp al, 0x3d
jne 0x450ba4
xor bl, bl
jmp 0x450bad
movzx eax, al
mov bl, byte [eax + 0x4beea5]
mov al, cl
shl al, 6
or al, bl
mov bl, byte [ebp - 1]
add dl, dl
add dl, dl
shr bl, 4
or bl, dl
mov edx, dword [edi + 8]
mov byte [esi + edx], bl
inc esi
cmp byte [ebp - 2], 0
jne 0x450bdf
mov dl, byte [ebp - 1]
shl dl, 4
shr cl, 2
or cl, dl
mov edx, dword [edi + 8]
mov byte [esi + edx], cl
inc esi
cmp byte [ebp - 3], 0
jne 0x450c92
mov ecx, dword [edi + 8]
mov ebx, dword [ebp - 8]
mov byte [esi + ecx], al
mov eax, dword [ebp - 0xc]
inc eax
sub ebx, 4
inc esi
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], eax
test al, 0xf
jne 0x450c89
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x450c22
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
sub ecx, edx
cmp ecx, 1
jae 0x450cc0
mov dword [eax + 0x10], 0x410
xor al, al
dec ebx
mov dword [ebp - 8], ebx
cmp al, 0x20
jne 0x450c5e
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x450c4d
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
sub ecx, edx
cmp ecx, 1
jae 0x450cd1
mov dword [eax + 0x10], 0x410
xor al, al
dec ebx
cmp al, 0x20
je 0x450c33
mov dword [ebp - 8], ebx
cmp al, 0xd
jne 0x450c85
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x450c78
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
sub ecx, edx
cmp ecx, 1
jae 0x450ce2
mov dword [eax + 0x10], 0x410
xor al, al
dec ebx
mov dword [ebp - 8], ebx
cmp al, 0xa
jne 0x450cf0
cmp ebx, 3
ja 0x450a30
mov eax, dword [edi + 4]
cmp esi, eax
je 0x450cb0
mov ecx, dword [edi + 8]
push 1
push esi
push eax
push ecx
push edi
call fcn.00418510
add esp, 0x14
mov dword [edi + 8], eax
mov dword [edi + 4], esi
mov ecx, dword [edi + 0xc]
push edi
call fcn.00464f20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [edx + 1]
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov al, byte [edx + eax]
jmp 0x450c2b
lea ecx, [edx + 1]
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov al, byte [edx + eax]
jmp 0x450c56
lea ecx, [edx + 1]
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov al, byte [edx + eax]
jmp 0x450c81
mov ecx, dword [edi + 0xc]
pop edi
pop esi
mov dword [ecx + 0x10], 0x411
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0xc]
pop edi
pop esi
mov dword [edx + 0x10], 0x411
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0xc]
pop edi
pop esi
mov dword [eax + 0x10], 0x411
pop ebx
mov esp, ebp
pop ebp
ret