Function at 0x1a8b33d
Capabilities:
Encode data using base64

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 0xc], edx
push edi
mov edi, ecx
test edx, edx
jne 0x1a8b359
mov eax, 0xc000000d
jmp 0x1a8b797
xor ecx, ecx
lea eax, [edx - 2]
push ebx
push esi
mov dword [ebp - 0x10], ecx
mov byte [ebp - 3], cl
mov byte [ebp - 2], cl
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x20], ecx
mov byte [ebp - 6], cl
mov byte [ebp - 5], cl
cmp dword [ebp + 8], ecx
jle 0x1a8b78d
movzx esi, word [edx]
cmp esi, dword [edi + 0x10]
jl 0x1a8b778
mov ebx, dword [edi + 0x14]
mov eax, esi
shr eax, 7
mov cl, byte [eax + ebx]
test cl, cl
je 0x1a8b778
cmp cl, 0xfb
jne 0x1a8b3b2
cmp byte [edi + 0x3d], 0
jne 0x1a8b778
movzx eax, cl
sub eax, 0
je 0x1a8b76a
sub eax, 0xfb
je 0x1a8b764
sub eax, 1
je 0x1a8b7a8
sub eax, 1
je 0x1a8b62c
sub eax, 1
je 0x1a8b45a
sub eax, 1
jne 0x1a8b4d1
cmp esi, 0xac00
jl 0x1a8b41f
mov ecx, esi
call fcn.01a8a7aa
test al, al
jne 0x1a8b4a2
cmp esi, 0xd7b0
jl 0x1a8b410
cmp esi, 0xd7c6
jle 0x1a8b453
lea eax, [esi - 0xd7cb]
cmp eax, 0x30
jbe 0x1a8b453
mov cl, 0xfb
jmp 0x1a8b3b2
cmp dword [ebp + 8], 1
jle 0x1a8b43b
movzx edx, word [edx + 2]
mov ecx, esi
call fcn.01a8a6ce
test al, al
jne 0x1a8b62c
mov edx, dword [ebp - 0xc]
cmp dword [edi], 0x10d
je 0x1a8b448
cmp dword [edi], 0xd
jne 0x1a8b453
lea eax, [esi - 0x115f]
cmp eax, 1
jbe 0x1a8b41b
xor cl, cl
jmp 0x1a8b3b2
mov eax, dword [ebp + 8]
cmp eax, 1
jle 0x1a8b7a8
add edx, 2
mov dword [ebp - 0x24], 0x3ff
dec eax
mov dword [ebp - 0xc], edx
mov dword [ebp + 8], eax
movzx ecx, word [edx]
lea eax, [ecx + 0x2400]
cmp ax, word [ebp - 0x24]
ja 0x1a8b7a8
add esi, 0xffff2809
shl esi, 0xa
add esi, ecx
mov eax, esi
sar eax, 7
mov cl, byte [eax + ebx]
jmp 0x1a8b3b2
cmp byte [edi + 0x3c], 1
je 0x1a8b62c
cmp dword [ebp + 8], 1
jle 0x1a8b76a
movzx edx, word [edx + 2]
mov ecx, esi
call fcn.01a8a6ce
test al, al
jne 0x1a8b62c
mov edx, dword [ebp - 0xc]
jmp 0x1a8b76a
movzx ecx, cl
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
mov eax, dword [edi + 0x18]
mov al, byte [ecx + eax - 0x80]
test al, al
je 0x1a8b76a
mov ah, al
mov bh, al
and ah, 0x3f
and bh, 0xc0
mov byte [ebp - 4], ah
mov byte [ebp - 1], bh
test ah, ah
je 0x1a8b506
cmp ah, 0x3f
jne 0x1a8b53f
movzx eax, al
sub eax, 0x40
je 0x1a8b74c
sub eax, 0x3f
je 0x1a8b764
sub eax, 1
je 0x1a8b74c
sub eax, 0x3f
je 0x1a8b62c
sub eax, 1
je 0x1a8b715
sub eax, 0x3f
je 0x1a8b79e
test bh, bh
je 0x1a8b70f
cmp bh, 0x40
je 0x1a8b70f
lea eax, [ebp - 2]
mov ecx, edi
push eax
lea eax, [ebp - 3]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.01a8b0c1
mov bl, byte [ebp - 3]
test bl, bl
je 0x1a8b6dd
cmp bl, 0x3f
je 0x1a8b6dd
mov bh, byte [ebp - 2]
test bh, bh
je 0x1a8b651
cmp bh, 0x40
je 0x1a8b651
mov bh, byte [ebp - 4]
cmp bl, bh
ja 0x1a8b62c
cmp byte [ebp - 1], 0xc0
jne 0x1a8b6cc
cmp bl, bh
je 0x1a8b6cc
mov cl, byte [ebp - 5]
mov bl, byte [ebp - 6]
mov al, cl
or al, bl
cmp al, 0x40
je 0x1a8b5cc
cmp al, 0x80
je 0x1a8b5cc
cmp cl, 0x40
jne 0x1a8b5de
test bl, bl
je 0x1a8b5cc
cmp bl, 0x3f
jne 0x1a8b5de
mov edx, dword [ebp - 0x18]
mov ecx, edi
push esi
call fcn.01a8aec2
test eax, eax
jne 0x1a8b62c
mov cl, byte [ebp - 5]
cmp bh, bl
jae 0x1a8b6cc
cmp cl, 0x40
je 0x1a8b5f3
test cl, cl
jne 0x1a8b6cc
mov al, bl
dec al
cmp al, 0x3d
ja 0x1a8b6cc
cmp bl, byte [edi + 0x40]
jne 0x1a8b637
cmp bh, byte [edi + 0x3e]
jb 0x1a8b641
cmp bh, byte [edi + 0x3f]
jne 0x1a8b6cc
push esi
push dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
lea edx, [ebp - 0x20]
call fcn.01a8b021
test eax, eax
je 0x1a8b6cc
mov eax, dword [ebp + 0xc]
mov byte [eax], 0
jmp 0x1a8b793
cmp bl, byte [edi + 0x42]
jne 0x1a8b641
cmp bh, byte [edi + 0x41]
je 0x1a8b612
push esi
push dword [ebp - 0x18]
lea edx, [ebp - 0x14]
mov ecx, edi
call fcn.01a8aff5
jmp 0x1a8b624
and dword [ebp - 0x14], 0
and dword [ebp - 0x20], 0
cmp byte [ebp - 1], 0xc0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x18], ecx
jne 0x1a8b6c1
cmp bh, 0x40
jne 0x1a8b67b
mov edx, ecx
mov ecx, edi
push esi
call fcn.01a8aec2
test eax, eax
jne 0x1a8b62c
mov ecx, dword [ebp - 0x18]
mov al, byte [ebp - 4]
cmp bl, al
jbe 0x1a8b6c1
cmp bl, byte [edi + 0x40]
jne 0x1a8b6a3
cmp al, byte [edi + 0x3e]
jb 0x1a8b6ad
cmp al, byte [edi + 0x3f]
jne 0x1a8b6c1
push esi
push ecx
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
lea edx, [ebp - 0x20]
call fcn.01a8b021
jmp 0x1a8b6b9
cmp bl, byte [edi + 0x42]
jne 0x1a8b6ad
cmp al, byte [edi + 0x41]
je 0x1a8b691
push esi
push ecx
lea edx, [ebp - 0x14]
mov ecx, edi
call fcn.01a8aff5
test eax, eax
jne 0x1a8b62c
mov cl, bh
mov byte [ebp - 6], bl
mov byte [ebp - 5], cl
mov bh, byte [ebp - 4]
mov edx, dword [ebp - 0xc]
mov al, byte [ebp - 1]
mov byte [ebp - 3], bh
mov byte [ebp - 2], al
jmp 0x1a8b772
mov cl, byte [ebp - 2]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov byte [ebp - 6], bl
mov byte [ebp - 5], cl
cmp cl, 0x40
je 0x1a8b6f6
cmp cl, 0x80
jne 0x1a8b6c9
cmp bh, 0xc0
jne 0x1a8b6c9
push esi
mov edx, eax
mov ecx, edi
call fcn.01a8aec2
test eax, eax
jne 0x1a8b62c
jmp 0x1a8b6c9
and dword [ebp - 0x14], 0
jmp 0x1a8b74c
lea eax, [ebp - 2]
mov ecx, edi
push eax
lea eax, [ebp - 3]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.01a8b0c1
mov al, byte [ebp - 2]
or al, byte [ebp - 3]
cmp al, 0x80
jne 0x1a8b749
mov edx, dword [ebp - 0x10]
mov ecx, edi
push esi
call fcn.01a8aec2
test eax, eax
jne 0x1a8b62c
mov edx, dword [ebp - 0xc]
mov bh, byte [ebp - 4]
mov al, byte [ebp - 1]
mov bl, bh
mov cl, al
mov dword [ebp - 0x18], esi
mov byte [ebp - 6], bl
mov byte [ebp - 5], cl
jmp 0x1a8b6d2
cmp byte [edi + 0x3d], 0
je 0x1a8b7a8
mov byte [ebp - 2], 0
mov byte [ebp - 3], 0
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], edx
mov esi, dword [ebp + 8]
add edx, 2
dec esi
mov dword [ebp - 0xc], edx
mov dword [ebp + 8], esi
test esi, esi
jg 0x1a8b384
mov eax, dword [ebp + 0xc]
mov byte [eax], 1
xor eax, eax
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret 8
test esi, esi
jne 0x1a8b7a8
cmp dword [ebp + 8], 1
jle 0x1a8b78d
mov eax, 0xc0000717
jmp 0x1a8b795