Function at 0x1011ed40
Capabilities:
Encode data using base64

Disassembly:
push ecx
mov eax, dword [esp + 8]
mov edx, dword [eax]
push ebx
movzx ebx, byte [edx + 1]
push ebp
mov ebp, dword [esp + 0x20]
inc edx
shr ebp, 0xb
and ebp, 1
inc edx
mov dword [esp + 8], 0
test ebp, ebp
je 0x1011ee4a
cmp ebx, 0xc0
jb 0x1011ee4a
movzx eax, byte [edx]
and eax, 0x3f
test bl, 0x20
jne 0x1011ed8e
and ebx, 0x1f
shl ebx, 6
or ebx, eax
inc edx
jmp 0x1011ee4a
test bl, 0x10
jne 0x1011edaf
and ebx, 0xf
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add edx, 2
jmp 0x1011ee4a
test bl, 8
jne 0x1011edd9
and ebx, 7
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add edx, 3
jmp 0x1011ee4a
test bl, 4
jne 0x1011ee0f
and ebx, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edx + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add edx, 4
jmp 0x1011ee4a
and ebx, 1
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edx + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edx + 4]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add edx, 5
dec edx
test ebx, ebx
jne 0x1011ee5b
mov ecx, dword [esp + 0x18]
mov dword [ecx], 1
jmp 0x1011eea5
lea eax, [ebx - 0x30]
cmp eax, 0x4a
ja 0x1011eea5
push esi
lea esi, [ebx - 0x30]
push edi
movsx edi, word [esi*2 + 0x10145c08]
test edi, edi
je 0x1011eece
jle 0x1011ee7a
mov ebx, edi
jmp 0x1011eea3
neg edi
mov esi, edi
mov dword [esp + 0x10], edi
cmp esi, 0xc
jne 0x1011eea3
cmp byte [edx + 1], 0x7b
jne 0x1011eea3
lea eax, [edx + 2]
call fcn.1011ecd0
test eax, eax
jne 0x1011eea3
mov eax, dword [esp + 0x20]
mov dword [eax], 0x25
pop edi
pop esi
test dword [esp + 0x20], 0x20000000
mov eax, dword [esp + 8]
je 0x1011eebe
lea ecx, [eax - 6]
cmp ecx, 5
ja 0x1011eebe
add eax, 0x17
mov ecx, dword [esp + 0x10]
mov dword [ecx], edx
mov edx, dword [esp + 0x14]
pop ebp
mov dword [edx], ebx
pop ebx
pop ecx
ret
cmp eax, 0x48
ja case.0x1011eede.10
movzx eax, byte [eax + 0x1011f398]
jmp dword [eax*4 + 0x1011f374]
test dword [esp + 0x28], 0x2000000
je 0x1011ee99
movzx eax, byte [edx + 1]
test byte [eax + 0x10146a68], 8
je 0x1011eea3
movzx edi, byte [edx + 2]
test byte [edi + 0x10146a68], 8
je 0x1011eea3
movzx esi, byte [edx + 3]
test byte [esi + 0x10146a68], 8
je 0x1011eea3
movzx ecx, byte [edx + 4]
test byte [ecx + 0x10146a68], 8
je 0x1011eea3
cmp eax, 0x61
jb 0x1011ef2b
sub eax, 0x20
cmp eax, 0x41
sbb ebx, ebx
and ebx, 0xfffffff9
add ebx, 0x37
sub eax, ebx
cmp edi, 0x61
jb 0x1011ef40
sub edi, 0x20
cmp edi, 0x41
sbb ebx, ebx
and ebx, 0xfffffff9
shl eax, 4
add ebx, 0x37
sub eax, ebx
add eax, edi
cmp esi, 0x61
jb 0x1011ef5a
sub esi, 0x20
cmp esi, 0x41
sbb edi, edi
and edi, 0xfffffff9
shl eax, 4
add edi, 0x37
sub eax, edi
add eax, esi
mov esi, ecx
cmp esi, 0x61
jb 0x1011ef76
sub esi, 0x20
cmp esi, 0x41
sbb ecx, ecx
shl eax, 4
mov ebx, eax
and ecx, 0xfffffff9
add ecx, 0x37
sub ebx, ecx
add ebx, esi
add edx, 4
mov eax, ebp
neg eax
sbb eax, eax
and eax, 0x10ff00
add eax, 0xff
cmp ebx, eax
jbe 0x1011efb0
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0x4c
jmp 0x1011eea3
test ebp, ebp
je 0x1011eea3
lea eax, [ebx - 0xd800]
cmp eax, 0x7ff
ja 0x1011eea3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0x49
jmp 0x1011eea3
test dword [esp + 0x28], 0x2000000
jne 0x1011eea3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0x25
jmp 0x1011eea3
test ecx, ecx
jne 0x1011eea3
mov al, byte [edx + 1]
cmp al, 0x3c
je 0x1011f10a
cmp al, 0x27
je 0x1011f10a
cmp al, 0x7b
jne 0x1011f057
mov al, byte [edx + 2]
lea esi, [edx + 2]
test al, al
je 0x1011f038
mov edi, edi
cmp al, 0x7d
je 0x1011f040
cmp al, 0x2d
je 0x1011f030
cmp al, 0x30
jb 0x1011f040
cmp al, 0x39
ja 0x1011f040
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x1011f020
mov ebp, 1
inc edx
jmp 0x1011f059
mov al, byte [esi]
test al, al
je 0x1011f038
cmp al, 0x7d
je 0x1011f038
mov dword [esp + 0x10], 0x1c
jmp 0x1011eea3
xor ebp, ebp
cmp byte [edx + 1], 0x2d
jne 0x1011f067
mov edi, 1
inc edx
jmp 0x1011f069
xor edi, edi
mov al, byte [edx + 1]
xor esi, esi
cmp al, 0x30
jb 0x1011f091
cmp al, 0x39
ja 0x1011f091
cmp esi, 0xccccccb
jg 0x1011f0aa
movzx ecx, byte [edx + 1]
inc edx
lea eax, [esi + esi*4]
lea esi, [ecx + eax*2 - 0x30]
mov al, byte [edx + 1]
cmp al, 0x30
jae 0x1011f072
test ebp, ebp
je 0x1011f0cc
inc edx
cmp byte [edx], 0x7d
je 0x1011f0cc
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0x39
jmp 0x1011eea3
mov al, byte [edx + 1]
cmp al, 0x30
jb 0x1011f0bd
cmp al, 0x39
ja 0x1011f0bd
mov al, byte [edx + 2]
inc edx
cmp al, 0x30
jae 0x1011f0b1
mov eax, dword [esp + 0x20]
mov dword [eax], 0x3d
jmp 0x1011eea3
test esi, esi
jne 0x1011f0df
mov eax, dword [esp + 0x20]
mov dword [eax], 0x3a
jmp 0x1011eea3
test edi, edi
je 0x1011f0ff
mov eax, dword [esp + 0x24]
cmp esi, eax
jle 0x1011f0fa
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0xf
jmp 0x1011eea3
sub eax, esi
inc eax
mov esi, eax
neg esi
mov dword [esp + 0x10], esi
jmp 0x1011ee82
mov dword [esp + 0x10], 0x1b
jmp 0x1011eea3
test ecx, ecx
jne 0x1011f14f
mov al, byte [edx + 1]
mov ecx, edx
cmp al, 0x30
jb 0x1011f142
cmp al, 0x39
ja 0x1011f142
cmp esi, 0xccccccb
jg 0x1011f15f
inc edx
lea eax, [esi + esi*4]
movzx esi, byte [edx]
lea esi, [esi + eax*2 - 0x30]
mov al, byte [edx + 1]
cmp al, 0x30
jae 0x1011f124
cmp esi, 0xa
jl 0x1011f0ff
cmp esi, dword [esp + 0x24]
jle 0x1011f0ff
mov edx, ecx
movzx ebx, byte [edx]
cmp ebx, 0x38
jb case.0x1011eede.0
dec edx
xor ebx, ebx
jmp 0x1011eea3
mov al, byte [edx + 1]
cmp al, 0x30
jb 0x1011f172
cmp al, 0x39
ja 0x1011f172
mov al, byte [edx + 2]
inc edx
cmp al, 0x30
jae 0x1011f166
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0x3d
jmp 0x1011eea3
sub ebx, 0x30
mov al, byte [edx + 1]
inc edi
cmp al, 0x30
jb 0x1011f19e
cmp al, 0x37
ja 0x1011f19e
movzx eax, byte [edx + 1]
inc edx
cmp edi, 2
lea ebx, [eax + ebx*8 - 0x30]
jl 0x1011f184
test ebp, ebp
jne 0x1011eea3
cmp ebx, 0xff
jbe 0x1011eea3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0x33
jmp 0x1011eea3
test dword [esp + 0x28], 0x2000000
je 0x1011f226
movzx eax, byte [edx + 1]
test byte [eax + 0x10146a68], 8
je 0x1011eea3
movzx esi, byte [edx + 2]
test byte [esi + 0x10146a68], 8
je 0x1011eea3
cmp eax, 0x61
jb 0x1011f1f5
sub eax, 0x20
cmp eax, 0x41
sbb ecx, ecx
and ecx, 0xfffffff9
add ecx, 0x37
sub eax, ecx
cmp esi, 0x61
jb 0x1011f20a
sub esi, 0x20
cmp esi, 0x41
sbb ecx, ecx
and ecx, 0xfffffff9
shl eax, 4
add ecx, 0x37
mov ebx, eax
sub ebx, ecx
add ebx, esi
add edx, 2
jmp 0x1011eea3
cmp byte [edx + 1], 0x7b
jne 0x1011f2d4
movzx eax, byte [edx + 2]
lea esi, [edx + 2]
xor ebx, ebx
test byte [eax + 0x10146a68], 8
je 0x1011f2ac
inc esi
test ebx, ebx
jne 0x1011f24c
cmp eax, 0x30
je 0x1011f27a
cmp eax, 0x61
jb 0x1011f254
sub eax, 0x20
cmp eax, 0x41
sbb ecx, ecx
and ecx, 0xfffffff9
shl ebx, 4
add ecx, 0x37
sub ebx, ecx
add ebx, eax
mov eax, ebp
neg eax
sbb eax, eax
and eax, 0x10ff00
add eax, 0xff
cmp ebx, eax
ja 0x1011f288
movzx eax, byte [esi]
test byte [eax + 0x10146a68], 8
jne 0x1011f242
jmp 0x1011f2ac
movzx ecx, byte [esi]
test byte [ecx + 0x10146a68], 8
je 0x1011f2a2
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x10146a68], 8
jne 0x1011f294
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0x22
cmp byte [esi], 0x7d
jne 0x1011f2d4
test ebp, ebp
je 0x1011f2cd
lea edx, [ebx - 0xd800]
cmp edx, 0x7ff
ja 0x1011f2cd
mov eax, dword [esp + 0x20]
mov dword [eax], 0x49
mov edx, esi
jmp 0x1011eea3
xor ebx, ebx
jmp 0x1011f2e0
movzx ecx, byte [edx + 1]
inc edi
test byte [ecx + 0x10146a68], 8
je 0x1011eea3
movzx eax, byte [edx + 1]
inc edx
cmp eax, 0x61
jb 0x1011f2ff
sub eax, 0x20
cmp eax, 0x41
sbb ecx, ecx
and ecx, 0xfffffff9
shl ebx, 4
add ecx, 0x37
sub ebx, ecx
add ebx, eax
cmp edi, 2
jl 0x1011f2e0
jmp 0x1011eea3
movzx ebx, byte [edx + 1]
inc edx
test ebx, ebx
jne 0x1011f333
mov eax, dword [esp + 0x20]
mov dword [eax], 2
jmp 0x1011eea3
cmp ebx, 0x7f
jbe 0x1011f347
mov ecx, dword [esp + 0x20]
mov dword [ecx], 0x44
jmp 0x1011eea3
lea eax, [ebx - 0x61]
cmp eax, 0x19
ja 0x1011f352
sub ebx, 0x20
xor ebx, 0x40
jmp 0x1011eea3
test byte [esp + 0x28], 0x40
je 0x1011eea3
mov ecx, dword [esp + 0x20]
mov dword [ecx], 3
jmp 0x1011eea3