Function at 0x41e970
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov esi, ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, eax
je 0x41ea5e
cmp byte [eax], 0x64
jne 0x41ea5e
cmp ecx, 2
jb 0x41ea5e
movsx ecx, byte [eax + 1]
cmp ecx, 0x58
je 0x41ea6c
cmp ecx, 0x78
je 0x41eb2a
cmp ecx, 0x69
jne 0x41ea5e
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.0041a880
xor edi, edi
test eax, eax
je 0x41ebc6
mov ebx, eax
mov ecx, esi
call fcn.0041e970
test eax, eax
je 0x41ebc6
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x41ea1f
mov edi, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41ebd0
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
mov eax, edi
lea edx, [ecx + 0x20]
mov dword [ebp + 4], edx
lea edi, [ecx + ebp]
add edi, 8
mov byte [ebp + ecx + 0xc], 0x4d
and byte [ebp + ecx + 0x10], 0xc0
movzx edx, byte [ebp + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [ebp + ecx + 0x14], dl
mov dword [ebp + ecx + 8], 0x43bf8c
mov dword [ebp + ecx + 0x18], ebx
mov dword [ebp + ecx + 0x1c], eax
mov byte [ebp + ecx + 0x20], 0
jmp 0x41ebc6
mov ecx, esi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.0041c2d0
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.0041c2d0
xor edi, edi
test eax, eax
je 0x41ebc6
mov ebx, eax
mov ecx, esi
call fcn.0041c2d0
test eax, eax
je 0x41ebc6
mov ebp, eax
mov ecx, esi
call fcn.0041e970
test eax, eax
je 0x41ebc6
mov edx, eax
mov dword [esp], ebp
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x41eaeb
mov edi, edx
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41ebd0
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
mov edx, edi
lea eax, [ecx + 0x20]
mov dword [ebp + 4], eax
lea edi, [ecx + ebp]
add edi, 8
mov byte [ebp + ecx + 0xc], 0x4e
and byte [ebp + ecx + 0x10], 0xc0
movzx eax, byte [ebp + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + ecx + 0x14], al
mov dword [ebp + ecx + 8], 0x43bff4
mov dword [ebp + ecx + 0x18], ebx
mov eax, dword [esp]
mov dword [ebp + ecx + 0x1c], eax
mov dword [ebp + ecx + 0x20], edx
jmp 0x41ebc6
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.0041c2d0
xor edi, edi
test eax, eax
je 0x41ebc6
mov ebx, eax
mov ecx, esi
call fcn.0041e970
test eax, eax
je 0x41ebc6
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x41eb8c
mov edi, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41ebd0
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
mov eax, edi
lea edx, [ecx + 0x20]
mov dword [ebp + 4], edx
lea edi, [ecx + ebp]
add edi, 8
mov byte [ebp + ecx + 0xc], 0x4d
and byte [ebp + ecx + 0x10], 0xc0
movzx edx, byte [ebp + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [ebp + ecx + 0x14], dl
mov dword [ebp + ecx + 8], 0x43bf8c
mov dword [ebp + ecx + 0x18], ebx
mov dword [ebp + ecx + 0x1c], eax
mov byte [ebp + ecx + 0x20], 1
mov eax, edi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004081a0
int3