Function at 0x4067b0
Capabilities:
Encode data using base64

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x18]
push esi
mov esi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
movzx ebx, byte [edx + 1]
shr ebp, 0xb
add edx, 2
and ebp, 1
je 0x4068a4
cmp ebx, 0xc0
jl 0x4068a4
test bl, 0x20
jne 0x4067f7
movzx ecx, byte [edx]
and ebx, 0x1f
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
inc edx
jmp 0x4068a4
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
and eax, 0x3f
and ecx, 0x3f
test bl, 0x10
jne 0x40681e
and ebx, 0xf
shl ebx, 6
or ebx, eax
shl ebx, 6
or ebx, ecx
add edx, 2
jmp 0x4068a4
test bl, 8
jne 0x406841
and ebx, 7
shl ebx, 6
or ebx, eax
shl ebx, 6
or ebx, ecx
movzx ecx, byte [edx + 2]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add edx, 3
jmp 0x4068a4
test bl, 4
jne 0x406870
and ebx, 3
shl ebx, 6
or ebx, eax
shl ebx, 6
or ebx, ecx
movzx ecx, byte [edx + 2]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [edx + 3]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add edx, 4
jmp 0x4068a4
and ebx, 1
shl ebx, 6
or ebx, eax
shl ebx, 6
or ebx, ecx
movzx ecx, byte [edx + 2]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [edx + 3]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [edx + 4]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add edx, 5
dec edx
test ebx, ebx
jne 0x4068b8
mov eax, dword [esp + 0x14]
mov dword [eax], 1
jmp 0x406dc1
lea eax, [ebx - 0x30]
push edi
cmp eax, 0x4a
ja 0x406d9f
movsx ecx, word [eax*2 + 0x43b078]
test ecx, ecx
je 0x4068d8
mov ebx, ecx
jmp 0x406d9f
cmp eax, 0x48
ja case.0x4068e8.10
movzx edi, byte [eax + 0x406e10]
jmp dword [edi*4 + 0x406dec]
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0x25
jmp 0x406d9f
test dword [esp + 0x20], 0x2000000
je case.0x4068e8.28
movzx eax, byte [edx + 1]
test byte [eax + 0x43be50], 8
je 0x406d9f
movzx esi, byte [edx + 2]
test byte [esi + 0x43be50], 8
je 0x406d9f
movzx ebp, byte [edx + 3]
test byte [ebp + 0x43be50], 8
je 0x406d9f
movzx ecx, byte [edx + 4]
test byte [ecx + 0x43be50], 8
je 0x406d9f
cmp eax, 0x61
jl 0x406954
sub eax, 0x20
xor ebx, ebx
cmp eax, 0x41
setge bl
dec ebx
and ebx, 0xfffffff9
add ebx, 0x37
sub eax, ebx
mov edi, eax
cmp esi, 0x61
jl 0x40696f
sub esi, 0x20
xor ebx, ebx
cmp esi, 0x41
setge bl
shl edi, 4
mov eax, edi
mov edi, ebp
dec ebx
and ebx, 0xfffffff9
add ebx, 0x37
sub eax, ebx
add eax, esi
cmp edi, 0x61
jl 0x406991
sub edi, 0x20
xor ebx, ebx
cmp edi, 0x41
setge bl
shl eax, 4
mov esi, eax
dec ebx
and ebx, 0xfffffff9
add ebx, 0x37
sub esi, ebx
add esi, edi
mov edi, ecx
cmp edi, 0x61
jl 0x4069b3
sub edi, 0x20
xor eax, eax
cmp edi, 0x41
setge al
shl esi, 4
mov ebx, esi
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub ebx, eax
add ebx, edi
add edx, 4
jmp 0x406d9f
test dword [esp + 0x20], 0x2000000
jne 0x406d9f
mov eax, dword [esp + 0x18]
mov dword [eax], 0x25
jmp 0x406d9f
test esi, esi
jne 0x406d9f
mov al, byte [edx + 1]
cmp al, 0x3c
je 0x406b1a
cmp al, 0x27
je 0x406b1a
cmp al, 0x7b
jne 0x406a54
mov al, byte [edx + 2]
lea esi, [edx + 2]
test al, al
je 0x406a38
lea esp, [esp]
cmp al, 0x7d
je 0x406a40
cmp al, 0x2d
je 0x406a30
cmp al, 0x30
jb 0x406a40
cmp al, 0x39
ja 0x406a40
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x406a20
mov edi, 1
inc edx
jmp 0x406a56
mov al, byte [esi]
test al, al
je 0x406a38
cmp al, 0x7d
je 0x406a38
mov ebx, 0xffffffe4
jmp 0x406dc0
xor edi, edi
cmp byte [edx + 1], 0x2d
jne 0x406a64
mov esi, 1
inc edx
jmp 0x406a66
xor esi, esi
mov al, byte [edx + 1]
xor ebx, ebx
cmp al, 0x30
jb 0x406ac0
nop
cmp al, 0x39
ja 0x406a8f
cmp ebx, 0xccccccc
ja 0x406abb
movzx eax, byte [edx + 1]
inc edx
lea ecx, [ebx + ebx*4]
lea ebx, [eax + ecx*2 - 0x30]
mov al, byte [edx + 1]
cmp al, 0x30
jae 0x406a70
cmp ebx, 0x7fffffff
jbe 0x406ac0
mov al, byte [edx + 1]
cmp al, 0x30
jb 0x406aac
mov edi, edi
cmp al, 0x39
ja 0x406aac
mov al, byte [edx + 2]
inc edx
cmp al, 0x30
jae 0x406aa0
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0x3d
jmp 0x406d9f
or ebx, 0xffffffff
jmp 0x406a97
test edi, edi
je 0x406ad9
inc edx
cmp byte [edx], 0x7d
je 0x406ad9
mov eax, dword [esp + 0x18]
mov dword [eax], 0x39
jmp 0x406d9f
test ebx, ebx
jne 0x406aec
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0x3a
jmp 0x406dc0
test esi, esi
je 0x406b0c
mov eax, dword [esp + 0x1c]
cmp ebx, eax
jle 0x406b07
mov eax, dword [esp + 0x18]
mov dword [eax], 0xf
jmp 0x406d9f
sub eax, ebx
lea ebx, [eax + 1]
mov ecx, 0xffffffdd
sub ecx, ebx
mov ebx, ecx
jmp 0x406d9f
mov ebx, 0xffffffe5
jmp 0x406dc0
test esi, esi
jne 0x406b8e
mov ebx, eax
mov al, byte [edx + 1]
mov esi, edx
cmp al, 0x30
jb 0x406b52
cmp al, 0x39
ja 0x406b52
cmp ebx, 0xccccccc
ja 0x406b7c
movzx edi, byte [edx + 1]
inc edx
lea eax, [ebx + ebx*4]
lea ebx, [edi + eax*2 - 0x30]
mov al, byte [edx + 1]
cmp al, 0x30
jae 0x406b33
cmp ebx, 0x7fffffff
jbe 0x406b81
mov al, byte [edx + 1]
cmp al, 0x30
jb 0x406b6d
cmp al, 0x39
ja 0x406b6d
mov al, byte [edx + 2]
inc edx
cmp al, 0x30
jae 0x406b61
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0x3d
jmp 0x406d9f
or ebx, 0xffffffff
jmp 0x406b5a
cmp ebx, 0xa
jl 0x406b9e
cmp ebx, dword [esp + 0x1c]
jle 0x406b9e
mov edx, esi
movzx ebx, byte [edx]
cmp ebx, 0x38
jl case.0x4068e8.0
dec edx
xor ebx, ebx
jmp 0x406dc0
mov eax, 0xffffffdd
sub eax, ebx
mov ebx, eax
jmp 0x406d9f
sub ebx, 0x30
nop
mov al, byte [edx + 1]
inc ecx
cmp al, 0x30
jb 0x406bca
cmp al, 0x37
ja 0x406bca
movzx eax, byte [edx + 1]
inc edx
lea ebx, [eax + ebx*8 - 0x30]
cmp ecx, 2
jl 0x406bb0
test ebp, ebp
jne 0x406d9f
cmp ebx, 0xff
jle 0x406d9f
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0x33
jmp 0x406d9f
test dword [esp + 0x20], 0x2000000
je 0x406c5c
movzx eax, byte [edx + 1]
test byte [eax + 0x43be50], 8
je 0x406d9f
movzx esi, byte [edx + 2]
test byte [esi + 0x43be50], 8
je 0x406d9f
cmp eax, 0x61
jl 0x406c21
sub eax, 0x20
xor ecx, ecx
cmp eax, 0x41
setge cl
dec ecx
and ecx, 0xfffffff9
add ecx, 0x37
sub eax, ecx
mov edi, eax
cmp esi, 0x61
jl 0x406c3c
sub esi, 0x20
xor eax, eax
cmp esi, 0x41
setge al
shl edi, 4
mov ebx, edi
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub ebx, eax
add ebx, esi
add edx, 2
jmp 0x406d9f
cmp byte [edx + 1], 0x7b
jne 0x406d15
movzx esi, byte [edx + 2]
lea edi, [edx + 2]
xor ebx, ebx
test byte [esi + 0x43be50], 8
je 0x406ce8
inc edi
test ebx, ebx
jne 0x406c82
cmp esi, 0x30
je 0x406cb4
cmp esi, 0x61
jl 0x406c8a
sub esi, 0x20
xor eax, eax
cmp esi, 0x41
setge al
shl ebx, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub ebx, eax
add ebx, esi
mov eax, ebp
neg eax
sbb eax, eax
and eax, 0x10ff00
add eax, 0xff
cmp ebx, eax
jg 0x406d10
movzx esi, byte [edi]
test byte [esi + 0x43be50], 8
jne 0x406c78
test ebx, ebx
jns 0x406ce8
movzx eax, byte [edi]
test byte [eax + 0x43be50], 8
je 0x406cde
movzx eax, byte [edi + 1]
inc edi
test byte [eax + 0x43be50], 8
jne 0x406cd0
mov eax, dword [esp + 0x18]
mov dword [eax], 0x22
cmp byte [edi], 0x7d
jne 0x406d15
test ebp, ebp
je 0x406d09
lea ecx, [ebx - 0xd800]
cmp ecx, 0x7ff
ja 0x406d09
mov edx, dword [esp + 0x18]
mov dword [edx], 0x49
mov edx, edi
jmp 0x406d9f
or ebx, 0xffffffff
jmp 0x406cc4
xor ebx, ebx
jmp 0x406d20
movzx eax, byte [edx + 1]
inc ecx
test byte [eax + 0x43be50], 8
je 0x406d9f
movzx esi, byte [edx + 1]
inc edx
cmp esi, 0x61
jl 0x406d3b
sub esi, 0x20
xor eax, eax
cmp esi, 0x41
setge al
shl ebx, 4
dec eax
and eax, 0xfffffff9
add eax, 0x37
sub ebx, eax
add ebx, esi
cmp ecx, 2
jl 0x406d20
jmp 0x406d9f
movzx ebx, byte [edx + 1]
inc edx
test ebx, ebx
jne 0x406d6d
mov ecx, dword [esp + 0x18]
mov dword [ecx], 2
jmp 0x406dc0
cmp ebx, 0x7f
jle 0x406d7e
mov eax, dword [esp + 0x18]
mov dword [eax], 0x44
jmp 0x406d9f
lea ecx, [ebx - 0x61]
cmp ecx, 0x19
ja 0x406d89
sub ebx, 0x20
xor ebx, 0x40
jmp 0x406d9f
test byte [esp + 0x20], 0x40
je 0x406d9f
mov eax, dword [esp + 0x18]
mov dword [eax], 3
cmp ebx, 0xfffffff4
jne 0x406dc0
cmp byte [edx + 1], 0x7b
jne 0x406dc0
lea eax, [edx + 2]
call fcn.00406740
test eax, eax
jne 0x406dc0
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0x25
pop edi
test dword [esp + 0x1c], 0x20000000
je 0x406de0
mov ecx, dword [esp + 0x10]
lea eax, [ebx + 0xb]
mov dword [ecx], edx
cmp eax, 5
ja 0x406de6
pop esi
pop ebp
lea eax, [ebx - 0x17]
pop ebx
ret
mov eax, dword [esp + 0x10]
mov dword [eax], edx
pop esi
pop ebp
mov eax, ebx
pop ebx
ret