Function at 0x409308
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x410594]
mov ecx, dword [str._6_01_]
mov edx, eax
push ebx
push esi
mov esi, dword [0x4105a0]
shl edx, cl
mov ecx, 0x37
push edi
mov edi, dword [0x410590]
sub ecx, esi
add eax, ecx
mov ecx, dword [ebp + 0x10]
add edi, edx
mov dword [0x410594], eax
mov eax, dword [ebp + 0x14]
xor edx, edx
xor ebx, ebx
mov dword [0x410590], edi
test ecx, ecx
mov dword [ebp - 4], eax
jle 0x409446
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp + 0x14], ecx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, ebx
mov ecx, ebx
sar eax, cl
mov ecx, eax
sar ebx, cl
cmp edx, 0x34
jle 0x40938d
lea ecx, [edx*8]
sub ecx, edx
lea eax, [edx + ecx*4]
shl eax, 1
or ebx, eax
xor ecx, ecx
cmp edx, ebx
sete cl
add ebx, ecx
mov eax, edx
xor eax, 0x3a
mov ecx, ebx
or eax, edx
sar ecx, 0x36
shl eax, cl
lea ecx, [eax + eax*2]
lea edx, [ecx + ecx*8]
mov ecx, ebx
shl edx, 1
sub edx, eax
xor eax, edx
mov edx, 0xffffffde
sar edx, cl
mov ecx, eax
and ebx, edx
mov edx, eax
shl edx, cl
mov ecx, edx
shl eax, cl
xor ecx, ecx
cmp ebx, 0x32
setl cl
add eax, ecx
mov edx, eax
xor eax, eax
cmp ebx, edx
sete al
sub edx, eax
not ebx
mov ecx, edx
and ecx, ebx
shl ebx, cl
mov ecx, edx
mov eax, ebx
shl eax, cl
xor ecx, ecx
add ebx, eax
cmp edx, 0xffffffd3
setne cl
sub edx, ecx
cmp ebx, 0x35
je 0x4093fb
xor ebx, ebx
xor ecx, ecx
cmp ebx, edx
sete cl
shl ebx, cl
lea eax, [ebx + 0x22]
xor ebx, eax
xor eax, eax
cmp ebx, edx
setne al
or eax, ebx
xor ecx, ecx
cmp edx, 0x3c
setl cl
shl eax, cl
mov ecx, edx
or ecx, 0x34
mov ebx, eax
je 0x40942c
mov ecx, ebx
or ecx, 0x28
sar edx, cl
cmp ebx, edx
je 0x409436
mov eax, edx
or eax, ebx
xor ebx, eax
mov eax, dword [ebp + 0x14]
dec eax
mov dword [ebp + 0x14], eax
jne 0x40936e
mov ecx, dword [ebp + 0x10]
xor edx, edx
cmp ebx, 0xffffffc5
setl dl
mov esi, edx
xor eax, eax
cmp esi, 0xffffffd4
sete al
and eax, 1
and ebx, eax
imul edx, ebx
xor ebx, edx
test ecx, ecx
je 0x4096b7
mov eax, dword [ebp + 8]
lea ecx, [eax + ecx - 1]
mov dword [ebp + 0xc], ecx
mov ecx, 1
sub ecx, eax
mov dword [ebp - 8], ecx
mov edx, esi
or edx, 0xffffffdf
add esi, edx
mov eax, esi
xor eax, ebx
je 0x409490
lea ecx, [ebx + 0x3d]
shl ebx, cl
mov ecx, esi
xor ecx, ebx
shl ebx, cl
cmp ebx, 0x21
jne 0x4094a3
mov ebx, esi
xor ebx, 0x1e
or ebx, 0x21
lea ecx, [ebx - 0x3b]
mov eax, dword [ebp - 4]
or ebx, ecx
xor ecx, ecx
mov edx, ebx
not edx
and esi, edx
xor edx, edx
div dword [ebp + 0x10]
cmp ebx, esi
setne cl
sar esi, cl
add ebx, esi
mov ecx, esi
mov eax, ebx
sar eax, cl
or esi, eax
mov ecx, esi
or ecx, ebx
add ebx, ecx
mov ecx, esi
xor ecx, ebx
sar esi, cl
mov ecx, ebx
mov edi, edx
mov edx, dword [ebp + 8]
mov al, byte [edi + edx]
mov edx, ebx
shl edx, cl
mov byte [ebp + 0x17], al
test edx, edx
je 0x4094eb
inc esi
xor ebx, 1
xor eax, eax
cmp ebx, 0xffffffd7
mov ecx, ebx
lea esi, [esi + ebx - 0x3b]
sete al
xor esi, eax
mov eax, esi
sar eax, cl
mov ecx, 0x3e
sub ecx, ebx
xor eax, esi
mov esi, 0x32
or eax, ecx
mov ecx, dword [ebp + 0xc]
lea edx, [eax - 0x2c]
or ebx, edx
mov dl, byte [ecx]
mov ecx, eax
sar esi, cl
cmp eax, ebx
je 0x40952a
mov esi, ebx
sar esi, cl
add ebx, esi
mov ecx, ebx
not ecx
and eax, ecx
mov ecx, dword [ebp + 8]
mov byte [edi + ecx], dl
mov edx, eax
or edx, 0xffffffdc
and ebx, edx
cmp eax, 0x2b
jne 0x40954b
xor ecx, ecx
cmp ebx, eax
sete cl
shl eax, cl
xor ecx, ecx
cmp ebx, eax
setne cl
shl ebx, cl
mov edi, dword [ebp + 0xc]
mov ecx, 0x33
xor edx, edx
sub ecx, ebx
sar eax, cl
mov cl, byte [ebp + 0x17]
mov byte [edi], cl
cmp eax, 0xffffffd9
mov esi, eax
mov ecx, eax
setg dl
shl esi, cl
and edx, ebx
or eax, 0xa6c
add edx, esi
mov ebx, edx
mov ecx, ebx
sub ecx, eax
je 0x40958a
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
mov ecx, dword [ebp - 4]
mov edx, ecx
shr edx, 0x19
shl ecx, 7
or edx, ecx
cmp ebx, 0x3f
mov esi, edx
jl 0x4095a7
xor ecx, ecx
cmp ebx, eax
setl cl
and ebx, ecx
cmp ebx, 0x39
je 0x4095b0
lea eax, [eax + eax - 0x2a]
lea edx, [eax*8]
sub edx, eax
shl edx, 1
sub edx, eax
neg edx
shl edx, 2
je 0x4095cb
mov ecx, ebx
and ecx, 0x3e
add ebx, ecx
mov edx, ebx
or edx, 0xffffffcb
je 0x4095da
mov edx, ebx
mov ecx, eax
shl edx, cl
and ebx, edx
mov ecx, eax
xor ecx, 0x2e
shl ebx, cl
lea ecx, [ebx + ebx]
test ecx, ecx
je 0x4095f2
xor edx, edx
cmp ebx, 0x3a
setg dl
sub eax, edx
mov ecx, dword [ebp + 0x10]
sub esi, ecx
mov ecx, ebx
or ecx, 0x30
add ebx, ecx
xor ecx, ecx
cmp ebx, 0x30
setge cl
sar eax, cl
lea edx, [ebx + 1]
xor eax, 1
imul edx, eax
xor eax, eax
lea ecx, [edx + edx]
sar ebx, cl
cmp ebx, edx
mov ecx, ebx
setge al
and eax, edx
and ecx, 0x31
xor eax, ecx
xor ecx, ecx
cmp ebx, 0xffffffc9
mov edx, ebx
setg cl
sar eax, cl
mov ecx, eax
imul eax, ebx
xor eax, ecx
mov ecx, ebx
sar edx, cl
xor ecx, ecx
sub eax, edx
mov edx, ebx
cmp eax, ebx
setl cl
sar edx, 0x2e
xor eax, ecx
sub ebx, edx
xor ecx, ecx
cmp eax, 0xffffffde
setl cl
or ebx, ecx
mov ecx, eax
xor ecx, 0xffffffe0
sub esi, 0x499602d2
sar eax, cl
xor edx, edx
mov dword [ebp - 4], esi
cmp eax, ebx
setl dl
and ebx, edx
mov ecx, ebx
or ecx, 0x29
je 0x409682
mov ecx, 0x29
sub ecx, eax
sar eax, cl
mov ecx, eax
and ecx, ebx
shl eax, cl
lea ecx, [eax + eax*2]
lea edx, [ecx + ecx*8]
shl edx, 1
je 0x409694
sar eax, 1
cmp eax, ebx
jle 0x40969a
or ebx, eax
mov ecx, dword [ebp - 8]
xor esi, esi
xor eax, eax
cmp ebx, 0x2e
setl al
add ebx, eax
dec edi
add ecx, edi
mov dword [ebp + 0xc], edi
test ecx, ecx
jne 0x40947e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret