Function at 0x774fb33d
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 0x774fb359
mov eax, 0xc000000d
jmp 0x774fb797
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 0x774fb78d
movzx esi, word [edx]
cmp esi, dword [edi + 0x10]
jl 0x774fb778
mov ebx, dword [edi + 0x14]
mov eax, esi
shr eax, 7
mov cl, byte [eax + ebx]
test cl, cl
je 0x774fb778
cmp cl, 0xfb
jne 0x774fb3b2
cmp byte [edi + 0x3d], 0
jne 0x774fb778
movzx eax, cl
sub eax, 0
je 0x774fb76a
sub eax, 0xfb
je 0x774fb764
sub eax, 1
je 0x774fb7a8
sub eax, 1
je 0x774fb62c
sub eax, 1
je 0x774fb45a
sub eax, 1
jne 0x774fb4d1
cmp esi, 0xac00
jl 0x774fb41f
mov ecx, esi
call fcn.774fa7aa
test al, al
jne 0x774fb4a2
cmp esi, 0xd7b0
jl 0x774fb410
cmp esi, 0xd7c6
jle 0x774fb453
lea eax, [esi - 0xd7cb]
cmp eax, 0x30
jbe 0x774fb453
mov cl, 0xfb
jmp 0x774fb3b2
cmp dword [ebp + 8], 1
jle 0x774fb43b
movzx edx, word [edx + 2]
mov ecx, esi
call fcn.774fa6ce
test al, al
jne 0x774fb62c
mov edx, dword [ebp - 0xc]
cmp dword [edi], 0x10d
je 0x774fb448
cmp dword [edi], 0xd
jne 0x774fb453
lea eax, [esi - 0x115f]
cmp eax, 1
jbe 0x774fb41b
xor cl, cl
jmp 0x774fb3b2
mov eax, dword [ebp + 8]
cmp eax, 1
jle 0x774fb7a8
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 0x774fb7a8
add esi, 0xffff2809
shl esi, 0xa
add esi, ecx
mov eax, esi
sar eax, 7
mov cl, byte [eax + ebx]
jmp 0x774fb3b2
cmp byte [edi + 0x3c], 1
je 0x774fb62c
cmp dword [ebp + 8], 1
jle 0x774fb76a
movzx edx, word [edx + 2]
mov ecx, esi
call fcn.774fa6ce
test al, al
jne 0x774fb62c
mov edx, dword [ebp - 0xc]
jmp 0x774fb76a
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 0x774fb76a
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 0x774fb506
cmp ah, 0x3f
jne 0x774fb53f
movzx eax, al
sub eax, 0x40
je 0x774fb74c
sub eax, 0x3f
je 0x774fb764
sub eax, 1
je 0x774fb74c
sub eax, 0x3f
je 0x774fb62c
sub eax, 1
je 0x774fb715
sub eax, 0x3f
je 0x774fb79e
test bh, bh
je 0x774fb70f
cmp bh, 0x40
je 0x774fb70f
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.774fb0c1
mov bl, byte [ebp - 3]
test bl, bl
je 0x774fb6dd
cmp bl, 0x3f
je 0x774fb6dd
mov bh, byte [ebp - 2]
test bh, bh
je 0x774fb651
cmp bh, 0x40
je 0x774fb651
mov bh, byte [ebp - 4]
cmp bl, bh
ja 0x774fb62c
cmp byte [ebp - 1], 0xc0
jne 0x774fb6cc
cmp bl, bh
je 0x774fb6cc
mov cl, byte [ebp - 5]
mov bl, byte [ebp - 6]
mov al, cl
or al, bl
cmp al, 0x40
je 0x774fb5cc
cmp al, 0x80
je 0x774fb5cc
cmp cl, 0x40
jne 0x774fb5de
test bl, bl
je 0x774fb5cc
cmp bl, 0x3f
jne 0x774fb5de
mov edx, dword [ebp - 0x18]
mov ecx, edi
push esi
call fcn.774faec2
test eax, eax
jne 0x774fb62c
mov cl, byte [ebp - 5]
cmp bh, bl
jae 0x774fb6cc
cmp cl, 0x40
je 0x774fb5f3
test cl, cl
jne 0x774fb6cc
mov al, bl
dec al
cmp al, 0x3d
ja 0x774fb6cc
cmp bl, byte [edi + 0x40]
jne 0x774fb637
cmp bh, byte [edi + 0x3e]
jb 0x774fb641
cmp bh, byte [edi + 0x3f]
jne 0x774fb6cc
push esi
push dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
lea edx, [ebp - 0x20]
call fcn.774fb021
test eax, eax
je 0x774fb6cc
mov eax, dword [ebp + 0xc]
mov byte [eax], 0
jmp 0x774fb793
cmp bl, byte [edi + 0x42]
jne 0x774fb641
cmp bh, byte [edi + 0x41]
je 0x774fb612
push esi
push dword [ebp - 0x18]
lea edx, [ebp - 0x14]
mov ecx, edi
call fcn.774faff5
jmp 0x774fb624
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 0x774fb6c1
cmp bh, 0x40
jne 0x774fb67b
mov edx, ecx
mov ecx, edi
push esi
call fcn.774faec2
test eax, eax
jne 0x774fb62c
mov ecx, dword [ebp - 0x18]
mov al, byte [ebp - 4]
cmp bl, al
jbe 0x774fb6c1
cmp bl, byte [edi + 0x40]
jne 0x774fb6a3
cmp al, byte [edi + 0x3e]
jb 0x774fb6ad
cmp al, byte [edi + 0x3f]
jne 0x774fb6c1
push esi
push ecx
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
lea edx, [ebp - 0x20]
call fcn.774fb021
jmp 0x774fb6b9
cmp bl, byte [edi + 0x42]
jne 0x774fb6ad
cmp al, byte [edi + 0x41]
je 0x774fb691
push esi
push ecx
lea edx, [ebp - 0x14]
mov ecx, edi
call fcn.774faff5
test eax, eax
jne 0x774fb62c
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 0x774fb772
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 0x774fb6f6
cmp cl, 0x80
jne 0x774fb6c9
cmp bh, 0xc0
jne 0x774fb6c9
push esi
mov edx, eax
mov ecx, edi
call fcn.774faec2
test eax, eax
jne 0x774fb62c
jmp 0x774fb6c9
and dword [ebp - 0x14], 0
jmp 0x774fb74c
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.774fb0c1
mov al, byte [ebp - 2]
or al, byte [ebp - 3]
cmp al, 0x80
jne 0x774fb749
mov edx, dword [ebp - 0x10]
mov ecx, edi
push esi
call fcn.774faec2
test eax, eax
jne 0x774fb62c
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 0x774fb6d2
cmp byte [edi + 0x3d], 0
je 0x774fb7a8
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 0x774fb384
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 0x774fb7a8
cmp dword [ebp + 8], 1
jle 0x774fb78d
mov eax, 0xc0000717
jmp 0x774fb795