Function at 0x1004df1d
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x1c
push ebx
xor eax, eax
mov dword [esp + 0xc], edx
push ebp
push esi
push edi
mov edi, dword [esp + 0x30]
mov esi, eax
mov dword [esp + 0x10], eax
test edi, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
sete al
mov dword [esp + 0x14], eax
lea eax, [edx + 2]
xor edx, edx
mov dword [esp + 0x24], ecx
push 3
pop ecx
div ecx
mov ebp, dword [esp + 0x38]
xor ecx, ecx
mov ebx, dword [esp + 0x34]
shl eax, 2
lea edx, [eax + 0x3f]
shr edx, 6
cmp ebp, 2
cmovne ecx, edx
add eax, ecx
mov dword [esp + 0x28], eax
test ebx, ebx
je 0x1004df86
cmp eax, dword [ebx]
jbe 0x1004e0b0
test edi, edi
je 0x1004e0b0
mov eax, 0xffffff53
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
push dword [esp + 0x14]
push 0
mov al, byte [ecx + esi + 1]
mov dl, byte [ecx + esi]
push dword [ebx]
mov byte [esp + 0x3c], al
mov al, byte [ecx + esi + 2]
add ecx, 3
mov byte [esp + 0x40], al
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x48], dl
mov dword [esp + 0x2c], ecx
mov ecx, ebp
push edi
shr dl, 2
call fcn.1004de59
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1004e0ed
push dword [esp + 0x14]
mov dl, byte [esp + 0x3c]
mov ecx, ebp
push eax
push dword [ebx]
lea eax, [esp + 0x1c]
and dl, 3
push eax
mov al, byte [esp + 0x40]
shl dl, 4
shr al, 4
push edi
or dl, al
call fcn.1004de59
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1004e0e7
push dword [esp + 0x14]
mov dl, byte [esp + 0x34]
mov ecx, ebp
push eax
push dword [ebx]
lea eax, [esp + 0x1c]
and dl, 0xf
push eax
mov al, byte [esp + 0x44]
shl dl, 2
shr al, 6
push edi
or dl, al
call fcn.1004de59
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1004e0e7
push dword [esp + 0x14]
mov dl, byte [esp + 0x38]
mov ecx, ebp
push eax
push dword [ebx]
lea eax, [esp + 0x1c]
and dl, 0x3f
push eax
push edi
call fcn.1004de59
mov esi, eax
add esp, 0x14
mov eax, dword [esp + 0x18]
test esi, esi
jne 0x1004e0bd
sub eax, 3
mov dword [esp + 0x18], eax
cmp ebp, 2
je 0x1004e0b4
mov ecx, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x20], ecx
test cl, 0xf
jne 0x1004e0b4
test eax, eax
je 0x1004e1ac
push dword [esp + 0x14]
lea eax, [esp + 0x14]
mov dl, 0xa
push 1
push dword [ebx]
mov ecx, ebp
push eax
push edi
call fcn.1004de59
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1004e0ed
mov eax, dword [esp + 0x18]
cmp eax, 2
ja 0x1004df93
test eax, eax
je 0x1004e1ac
test esi, esi
jne 0x1004e1d1
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov dl, byte [ecx + esi]
mov byte [esp + 0x34], dl
cmp eax, 2
jne 0x1004e0f3
mov al, byte [ecx + esi + 1]
jmp 0x1004e0f5
mov eax, dword [esp + 0x18]
jmp 0x1004e0bd
mov eax, dword [esp + 0x18]
jmp 0x1004e0c5
xor al, al
push dword [esp + 0x14]
mov byte [esp + 0x34], al
mov ecx, ebp
and al, 0xf
shr dl, 2
shl al, 2
push 0
push dword [ebx]
mov byte [esp + 0x44], al
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.1004de59
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1004e1d1
push dword [esp + 0x14]
mov dl, byte [esp + 0x38]
mov cl, byte [esp + 0x34]
and dl, 3
push eax
push dword [ebx]
lea eax, [esp + 0x1c]
shr cl, 4
shl dl, 4
push eax
or dl, cl
mov ecx, ebp
push edi
call fcn.1004de59
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1004e1d1
cmp dword [esp + 0x18], 2
movzx eax, byte [esp + 0x38]
push 0x3d
pop ecx
push dword [esp + 0x14]
cmove ecx, eax
xor eax, eax
cmp dword [esp + 0x1c], 2
mov dl, cl
mov ecx, ebp
setne al
push eax
push dword [ebx]
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.1004de59
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1004e1d1
push dword [esp + 0x14]
lea eax, [esp + 0x14]
mov dl, 0x3d
push 1
push dword [ebx]
mov ecx, ebp
push eax
push edi
call fcn.1004de59
add esp, 0x14
mov esi, eax
test esi, esi
jne 0x1004e1d1
cmp ebp, 2
je 0x1004e1d1
push dword [esp + 0x14]
lea eax, [esp + 0x14]
mov dl, 0xa
push 1
push dword [ebx]
mov ecx, ebp
push eax
push edi
call fcn.1004de59
add esp, 0x14
mov esi, eax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x10], eax
je 0x1004e1e9
test esi, esi
jne 0x1004e1e9
mov eax, 0xffffff66
jmp 0x1004df8b
test edi, edi
je 0x1004e1f9
mov eax, dword [esp + 0x10]
cmp dword [ebx], eax
jbe 0x1004e1f9
mov byte [eax + edi], 0
mov eax, dword [esp + 0x10]
mov dword [ebx], eax
test esi, esi
jne 0x1004e214
xor eax, eax
mov ecx, 0xffffff36
test edi, edi
cmove eax, ecx
jmp 0x1004df8b
mov eax, esi
jmp 0x1004df8b