Function at 0x406fa0
Capabilities:
Encode data using base64

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [0x41ff0c]
xor ebx, ebx
xor eax, eax
xor edx, edx
xor ecx, ecx
cmp esi, ebx
push edi
mov dword [0x41fe88], eax
mov dword [0x41feb8], ebx
mov byte [0x41fedc], bl
mov dword [0x41f64c], edx
mov dword [0x41fee8], ecx
jge 0x406fdb
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret
mov dword [0x41f648], ebx
mov ebp, 2
mov edi, dword [0x41fd98]
cmp dword [0x420040], ebx
jne 0x407452
mov esi, dword [0x41f65c]
cmp esi, 7
ja case.0x407007.3
jmp dword [esi*4 + 0x407770]
mov esi, dword [0x41fe84]
cmp esi, 0x2e
jne 0x407067
cmp edx, 1
je case.0x407007.3
call fcn.00406ce0
mov dword [0x41fd90], ebx
mov dword [0x41fd9c], 1
call fcn.00406e80
mov ecx, eax
cmp ecx, ebx
mov dword [0x41fee8], ecx
jl 0x407756
mov eax, dword [0x41fd98]
mov edx, dword [0x41f64c]
lea edi, [eax + ecx*4]
mov eax, dword [0x41fe88]
mov dword [0x41fd98], edi
jmp 0x406fec
cmp esi, 0x3f
jne 0x40707d
mov dword [0x41fee8], ebx
mov dword [0x41f64c], ebx
jmp 0x40739c
cmp esi, 0x28
jne 0x4070da
cmp dword [0x41feb8], ebp
je 0x407742
mov ecx, dword [0x41f648]
cmp ecx, 8
je 0x407742
mov dl, byte [0x41fedc]
mov dword [ecx*4 + 0x41fe98], eax
mov byte [ecx + 0x41fef8], dl
inc ecx
mov dword [0x41f648], ecx
mov dword [0x41fe88], ebx
mov dword [0x41feb8], ebx
mov byte [0x41fedc], bl
mov dword [0x41f64c], ebx
mov dword [0x41fee8], ebx
jmp 0x40739c
cmp esi, 0x29
jne 0x407380
cmp edx, 0xffffffff
je 0x407742
cmp edx, 4
jne 0x407104
mov edx, 1
mov dword [0x41f64c], edx
mov ecx, dword [edi]
mov dword [0x41fee8], ecx
mov esi, dword [0x41feb8]
cmp esi, ebx
jne 0x407117
cmp edx, ebp
je 0x40711f
jmp 0x407279
cmp esi, ebp
jne 0x40725f
cmp edx, 1
jne 0x40714a
push 0xa
push 0x420168
push ecx
call fcn.00410af8
mov eax, dword [0x41fe88]
mov edi, 0x420168
add esp, 0xc
mov dword [0x41f64c], ebp
mov dword [0x41fd98], edi
movsx ecx, byte [0x41fedc]
cmp ecx, 0x3d
ja case.0x407291.17
xor edx, edx
mov dl, byte [ecx + 0x4077a4]
jmp dword [edx*4 + 0x407790]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [0x41ff1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x4071ab
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [0x41ff1c]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x41f64c]
mov eax, dword [0x41fe88]
mov dword [0x41feb8], ecx
mov dword [0x41f64c], 0xffffffff
xor ecx, ecx
jmp 0x407329
mov eax, dword [0x41ff1c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x407202
cmp cl, bl
je 0x4071f5
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x407202
add eax, ebp
add edi, ebp
cmp cl, bl
jne 0x4071d7
xor eax, eax
xor ecx, ecx
cmp eax, ebx
sete cl
mov eax, ecx
jmp 0x40723e
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ebx
sete cl
mov eax, ecx
jmp 0x40723e
mov eax, dword [0x41ff1c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x407239
cmp cl, bl
je 0x407235
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x407239
add eax, ebp
add edi, ebp
cmp cl, bl
jne 0x407217
xor eax, eax
jmp 0x40723e
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, 1
mov dword [0x41fe88], eax
mov dword [0x41feb8], ecx
mov dword [0x41f64c], 0xffffffff
xor ecx, ecx
jmp 0x407329
cmp edx, ebp
jne 0x407279
push edi
call fcn.00410aed
mov ecx, eax
mov eax, dword [0x41fe88]
add esp, 4
mov dword [0x41fee8], ecx
movsx esi, byte [0x41fedc]
cmp esi, 0x7c
ja case.0x407291.17
xor edx, edx
mov dl, byte [esi + 0x40782c]
jmp dword [edx*4 + 0x4077e4]
add eax, ecx
jmp 0x407307
sub eax, ecx
jmp 0x407307
imul ecx, eax
mov eax, ecx
jmp 0x407307
cdq
idiv ecx
jmp 0x407307
or eax, ecx
jmp 0x407307
xor edx, edx
cmp eax, ecx
sete dl
mov eax, edx
jmp 0x407307
xor edx, edx
cmp eax, ecx
setne dl
mov eax, edx
jmp 0x407307
xor edx, edx
cmp eax, ecx
setl dl
mov eax, edx
jmp 0x407307
xor edx, edx
cmp eax, ecx
setg dl
mov eax, edx
jmp 0x407307
and eax, ecx
jmp 0x407307
xor eax, ecx
jmp 0x407307
cdq
idiv ecx
mov eax, edx
jmp 0x407307
xor edx, edx
cmp eax, ecx
setle dl
mov eax, edx
jmp 0x407307
xor edx, edx
cmp eax, ecx
setge dl
mov eax, edx
jmp 0x407307
shl eax, cl
jmp 0x407307
sar eax, cl
mov dword [0x41fe88], eax
mov dword [0x41feb8], 1
mov dword [0x41f64c], 0xffffffff
xor ecx, ecx
jmp 0x407329
mov ecx, 4
cmp ecx, ebx
mov dword [0x41fc64], ecx
jne 0x40775f
cmp dword [0x41feb8], ebp
je 0x407742
mov dword [0x41fee8], eax
mov eax, dword [0x41f648]
cmp eax, ebx
mov dword [0x41f64c], 1
je 0x407742
mov ecx, dword [eax*4 + 0x41fe94]
mov dl, byte [eax + 0x41fef7]
dec eax
mov dword [0x41fe88], ecx
mov dword [0x41f648], eax
mov byte [0x41fedc], dl
jmp 0x40739c
call fcn.004079d0
cmp eax, ebx
mov dword [0x41fc64], eax
jne 0x407768
mov al, byte [0x41fe84]
mov byte [0x41fedc], al
call fcn.00406ce0
mov eax, dword [0x41fe88]
mov edx, dword [0x41f64c]
mov ecx, dword [0x41fee8]
jmp 0x406fe6
mov ecx, dword [0x41fe84]
mov dword [0x41f64c], 1
mov dword [0x41fee8], ecx
jmp 0x40739c
mov edx, dword [0x41fe84]
mov eax, dword [0x42004c]
add eax, edx
mov dword [0x41f64c], ebp
mov dword [0x41fd98], eax
jmp 0x40739c
mov eax, dword [0x41fe84]
mov ecx, dword [0x41f654]
shl eax, 5
add eax, ecx
mov dword [0x41ff14], eax
movsx ecx, word [eax]
mov dword [0x41f64c], ecx
mov edx, dword [eax + 0x1c]
mov dword [0x41fd98], edx
jmp 0x40739c
mov eax, dword [0x41fe84]
mov dword [0x41f64c], 1
cmp eax, 0x60
jl 0x40743f
push eax
mov dword [0x41f64c], ebp
call fcn.00406d60
add esp, 4
mov dword [0x41fd98], eax
jmp 0x40739c
push eax
call fcn.00406d60
add esp, 4
mov dword [0x41fee8], eax
jmp 0x40739c
cmp edx, ebx
je 0x40770d
cmp edx, 4
jne 0x407472
mov edx, 1
mov dword [0x41f64c], edx
mov ecx, dword [edi]
mov dword [0x41fee8], ecx
mov esi, dword [0x41feb8]
cmp esi, ebx
jne 0x407485
cmp edx, ebp
je 0x40748d
jmp 0x40762b
cmp esi, ebp
jne 0x407611
cmp edx, 1
jne 0x4074b3
push 0xa
push 0x420168
push ecx
call fcn.00410af8
mov edi, 0x420168
add esp, 0xc
mov dword [0x41f64c], ebp
mov dword [0x41fd98], edi
movsx eax, byte [0x41fedc]
cmp eax, 0x3d
ja case.0x407643.17
xor ecx, ecx
mov cl, byte [eax + 0x4078c0]
jmp dword [ecx*4 + 0x4078ac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [0x41ff1c]
mov edx, ecx
jmp 0x407506
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [0x41ff1c]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x41f64c]
mov dword [0x41f64c], 0xffffffff
mov dword [0x41feb8], eax
xor eax, eax
jmp 0x407704
mov eax, dword [0x41ff1c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x40757a
cmp cl, bl
je 0x407550
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x40757a
add eax, ebp
add edi, ebp
cmp cl, bl
jne 0x407532
xor eax, eax
xor ecx, ecx
cmp eax, ebx
mov eax, 1
sete cl
mov dword [0x41feb8], eax
mov dword [0x41fe88], ecx
mov dword [0x41f64c], 0xffffffff
xor eax, eax
jmp 0x407704
sbb eax, eax
mov dword [0x41f64c], 0xffffffff
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ebx
mov eax, 1
sete cl
mov dword [0x41feb8], eax
mov dword [0x41fe88], ecx
xor eax, eax
jmp 0x407704
mov eax, dword [0x41ff1c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x4075ec
cmp cl, bl
je 0x4075ca
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x4075ec
add eax, ebp
add edi, ebp
cmp cl, bl
jne 0x4075ac
xor eax, eax
mov dword [0x41f64c], 0xffffffff
mov dword [0x41fe88], eax
mov eax, 1
mov dword [0x41feb8], eax
xor eax, eax
jmp 0x407704
sbb eax, eax
mov dword [0x41f64c], 0xffffffff
sbb eax, 0xffffffff
mov dword [0x41fe88], eax
mov eax, 1
mov dword [0x41feb8], eax
xor eax, eax
jmp 0x407704
cmp edx, ebp
jne 0x40762b
push edi
call fcn.00410aed
mov ecx, eax
mov eax, dword [0x41fe88]
add esp, 4
mov dword [0x41fee8], ecx
movsx esi, byte [0x41fedc]
cmp esi, 0x7c
ja case.0x407643.17
xor edx, edx
mov dl, byte [esi + 0x407948]
jmp dword [edx*4 + 0x407900]
add eax, ecx
jmp 0x4076e2
sub eax, ecx
jmp 0x4076e2
imul ecx, eax
mov dword [0x41fe88], ecx
jmp 0x4076e7
cdq
idiv ecx
jmp 0x4076e2
or eax, ecx
jmp 0x4076e2
xor edx, edx
cmp eax, ecx
sete dl
mov dword [0x41fe88], edx
jmp 0x4076e7
xor edx, edx
cmp eax, ecx
setne dl
mov dword [0x41fe88], edx
jmp 0x4076e7
xor edx, edx
cmp eax, ecx
setl dl
mov dword [0x41fe88], edx
jmp 0x4076e7
xor edx, edx
cmp eax, ecx
setg dl
mov dword [0x41fe88], edx
jmp 0x4076e7
and eax, ecx
jmp 0x4076e2
xor eax, ecx
jmp 0x4076e2
cdq
idiv ecx
mov dword [0x41fe88], edx
jmp 0x4076e7
xor edx, edx
cmp eax, ecx
setle dl
mov dword [0x41fe88], edx
jmp 0x4076e7
xor edx, edx
cmp eax, ecx
setge dl
mov dword [0x41fe88], edx
jmp 0x4076e7
shl eax, cl
jmp 0x4076e2
sar eax, cl
mov dword [0x41fe88], eax
mov dword [0x41feb8], 1
mov dword [0x41f64c], 0xffffffff
xor eax, eax
jmp 0x407704
mov eax, 4
cmp eax, ebx
mov dword [0x41fc64], eax
jne 0x407768
mov ecx, dword [0x41ff0c]
mov eax, dword [0x420040]
inc ecx
test ah, 2
mov dword [0x41ff0c], ecx
je 0x407730
mov dword [0x41ff0c], 0xffffffff
jmp 0x40773a
xor dword [0x420040], 0x400
cmp dword [0x41f648], ebx
je 0x407766
pop edi
pop esi
pop ebp
mov eax, 0xf
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
ret
pop edi
mov eax, ecx
pop esi
pop ebp
neg eax
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret