Function at 0x44b5a0
Capabilities:
Encode data using base64

Disassembly:
push 0xffffffffffffffff
push 0x541991
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5a9e98]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov edi, 1
mov dword [esp + 0x34], edi
call fcn.004fc960
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x44b5f0
push 0x80004005
call fcn.00401c00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
mov esi, dword [esp + 0x3c]
add eax, 0x10
mov dword [esi], eax
mov edx, dword [esp + 0x40]
mov eax, dword [edx - 0xc]
cmp eax, 2
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], ebx
jle 0x44b815
or ecx, 0xffffffff
mov ebp, 2
lea edi, [edx + 2]
sub ecx, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], ecx
jmp 0x44b64c
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
cmp ebp, 2
jl 0x44b99a
cmp ebx, eax
jg 0x44b99a
add ecx, edi
mov bl, byte [edi - 2]
js 0x44b99a
cmp ecx, eax
jg 0x44b99a
test ebp, ebp
mov cl, byte [edi - 1]
jl 0x44b99a
cmp ebp, eax
jg 0x44b99a
mov al, byte [edi]
movsx edi, bl
movsx ecx, cl
movsx edx, al
shl edi, 8
or edi, ecx
shl edi, 8
or edi, edx
mov eax, edi
shr eax, 0x12
and eax, 0x3f
mov cl, byte [eax + str.ILLEGAL_INSTRUCTION]
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov byte [esp + 0x14], cl
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea ebp, [ebx + 1]
sub eax, ebp
or eax, ecx
jge 0x44b6cb
push ebp
mov ecx, esi
call fcn.00401fd0
test ebp, ebp
mov eax, dword [esi]
mov dl, byte [esp + 0x14]
mov byte [eax + ebx], dl
jl 0x44b99a
mov eax, dword [esi]
cmp ebp, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], ebp
mov eax, dword [esi]
mov byte [eax + ebp], 0
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov ecx, edi
shr ecx, 0xc
and ecx, 0x3f
mov dl, byte [ecx + str.ILLEGAL_INSTRUCTION]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea ebp, [ebx + 1]
sub eax, ebp
or eax, ecx
mov byte [esp + 0x14], dl
jge 0x44b723
push ebp
mov ecx, esi
call fcn.00401fd0
test ebp, ebp
mov eax, dword [esi]
mov cl, byte [esp + 0x14]
mov byte [eax + ebx], cl
jl 0x44b99a
mov eax, dword [esi]
cmp ebp, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], ebp
mov edx, dword [esi]
mov byte [edx + ebp], 0
mov eax, edi
shr eax, 6
and eax, 0x3f
mov cl, byte [eax + str.ILLEGAL_INSTRUCTION]
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov byte [esp + 0x14], cl
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea ebp, [ebx + 1]
sub eax, ebp
or eax, ecx
jge 0x44b77b
push ebp
mov ecx, esi
call fcn.00401fd0
test ebp, ebp
mov eax, dword [esi]
mov dl, byte [esp + 0x14]
mov byte [eax + ebx], dl
jl 0x44b99a
mov eax, dword [esi]
cmp ebp, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], ebp
mov eax, dword [esi]
mov byte [eax + ebp], 0
mov eax, dword [esi]
mov ebp, dword [eax - 0xc]
and edi, 0x3f
mov bl, byte [edi + str.ILLEGAL_INSTRUCTION]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea edi, [ebp + 1]
sub eax, edi
or eax, ecx
jge 0x44b7ca
push edi
mov ecx, esi
call fcn.00401fd0
test edi, edi
mov eax, dword [esi]
mov byte [eax + ebp], bl
jl 0x44b99a
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x44b99a
mov edx, dword [esp + 0x40]
mov dword [eax - 0xc], edi
mov ecx, dword [esi]
mov byte [edi + ecx], 0
mov ecx, dword [esp + 0x1c]
mov eax, 3
add dword [esp + 0x18], eax
add dword [esp + 0x20], eax
mov ebx, dword [esp + 0x18]
add ecx, eax
mov eax, dword [edx - 0xc]
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jl 0x44b640
mov edi, dword [edx - 0xc]
mov eax, edi
sub eax, ebx
sub eax, 1
je 0x44b9a4
sub eax, 1
jne 0x44bae4
test ebx, ebx
jl 0x44b99a
cmp ebx, edi
jg 0x44b99a
mov cl, byte [ebx + edx]
lea eax, [ebx + 1]
test eax, eax
jl 0x44b99a
cmp eax, edi
jg 0x44b99a
mov al, byte [eax + edx]
movsx edi, cl
movsx eax, al
shl edi, 8
or edi, eax
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov ecx, edi
shr ecx, 0xa
and ecx, 0x3f
mov dl, byte [ecx + str.ILLEGAL_INSTRUCTION]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea ebp, [ebx + 1]
sub eax, ebp
or eax, ecx
mov byte [esp + 0x14], dl
jge 0x44b895
push ebp
mov ecx, esi
call fcn.00401fd0
test ebp, ebp
mov eax, dword [esi]
mov cl, byte [esp + 0x14]
mov byte [eax + ebx], cl
jl 0x44b99a
mov eax, dword [esi]
cmp ebp, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], ebp
mov edx, dword [esi]
mov byte [edx + ebp], 0
mov eax, edi
shr eax, 4
and eax, 0x3f
mov cl, byte [eax + str.ILLEGAL_INSTRUCTION]
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov byte [esp + 0x14], cl
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea ebp, [ebx + 1]
sub eax, ebp
or eax, ecx
jge 0x44b8ed
push ebp
mov ecx, esi
call fcn.00401fd0
test ebp, ebp
mov eax, dword [esi]
mov dl, byte [esp + 0x14]
mov byte [eax + ebx], dl
jl 0x44b99a
mov eax, dword [esi]
cmp ebp, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], ebp
mov eax, dword [esi]
mov byte [eax + ebp], 0
mov eax, dword [esi]
mov ebp, dword [eax - 0xc]
and edi, 0xf
mov bl, byte [edi*4 + str.ILLEGAL_INSTRUCTION]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea edi, [ebp + 1]
sub eax, edi
or eax, ecx
jge 0x44b93d
push edi
mov ecx, esi
call fcn.00401fd0
test edi, edi
mov eax, dword [esi]
mov byte [eax + ebp], bl
jl 0x44b99a
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], edi
mov ecx, dword [esi]
mov byte [edi + ecx], 0
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea edi, [ebx + 1]
sub eax, edi
or eax, ecx
jge 0x44b977
push edi
mov ecx, esi
call fcn.00401fd0
test edi, edi
mov eax, dword [esi]
mov byte [eax + ebx], 0x3d
jl 0x44b99a
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], edi
mov edx, dword [esi]
mov byte [edi + edx], 0
mov edx, dword [esp + 0x40]
jmp 0x44bae4
push 0x80070057
call fcn.00401c00
test ebx, ebx
jl 0x44b99a
cmp ebx, edi
jg 0x44b99a
movsx edi, byte [ebx + edx]
mov eax, edi
shr eax, 2
and eax, 0x3f
mov cl, byte [eax + str.ILLEGAL_INSTRUCTION]
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov byte [esp + 0x14], cl
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea ebp, [ebx + 1]
sub eax, ebp
or eax, ecx
jge 0x44b9e7
push ebp
mov ecx, esi
call fcn.00401fd0
mov edx, dword [esp + 0x40]
test ebp, ebp
mov eax, dword [esi]
mov cl, byte [esp + 0x14]
mov byte [eax + ebx], cl
jl 0x44b99a
mov eax, dword [esi]
cmp ebp, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], ebp
mov eax, dword [esi]
mov byte [eax + ebp], 0
mov eax, dword [esi]
mov ebp, dword [eax - 0xc]
and edi, 3
shl edi, 4
mov bl, byte [edi + str.ILLEGAL_INSTRUCTION]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea edi, [ebp + 1]
sub eax, edi
or eax, ecx
jge 0x44ba35
push edi
mov ecx, esi
call fcn.00401fd0
mov edx, dword [esp + 0x40]
test edi, edi
mov eax, dword [esi]
mov byte [eax + ebp], bl
jl 0x44b99a
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], edi
mov ecx, dword [esi]
mov byte [edi + ecx], 0
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea edi, [ebx + 1]
sub eax, edi
or eax, ecx
jge 0x44ba7b
push edi
mov ecx, esi
call fcn.00401fd0
mov edx, dword [esp + 0x40]
test edi, edi
mov eax, dword [esi]
mov byte [eax + ebx], 0x3d
jl 0x44b99a
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], edi
mov eax, dword [esi]
mov byte [edi + eax], 0
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea edi, [ebx + 1]
sub eax, edi
or eax, ecx
jge 0x44bac2
push edi
mov ecx, esi
call fcn.00401fd0
mov edx, dword [esp + 0x40]
test edi, edi
mov eax, dword [esi]
mov byte [eax + ebx], 0x3d
jl 0x44b99a
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x44b99a
mov dword [eax - 0xc], edi
mov ecx, dword [esi]
mov byte [edi + ecx], 0
lea eax, [edx - 0x10]
mov byte [esp + 0x34], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44bb05
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret