Function at 0x433c00
Capabilities:
Encode data using base64

Disassembly:
push 0xffffffffffffffff
push 0x464989
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x48602c]
xor eax, esp
mov dword [esp + 0x44], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48602c]
xor eax, esp
push eax
lea eax, [esp + 0x5c]
mov dword fs:[0], eax
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
xor eax, eax
mov dword [esp + 0x64], eax
mov byte [esp + 0x50], al
mov dword [esp + 0x51], eax
mov eax, 0xaaaaaaab
mul esi
mov ebp, edx
shr ebp, 1
lea eax, [ebp + ebp*2]
sub esi, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], eax
lea esi, [ebp*4]
je 0x433c97
lea esi, [ebp*4 + 4]
push 4
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadWritePtr]
call ebx
test eax, eax
jne 0x433e30
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp eax, esi
jb 0x433e2a
mov ecx, dword [esp + 0x18]
push eax
push ecx
call ebx
test eax, eax
jne 0x433e2a
test ebp, ebp
jbe 0x433d45
mov esi, dword [esp + 0x24]
add esi, 2
movzx edx, byte [esi - 1]
xor ecx, ecx
mov ch, byte [esi]
xor eax, eax
mov dword [esp + 0x50], eax
mov byte [esp + 0x54], al
movsx eax, byte [esi - 2]
shl eax, 0x18
shl edx, 0x10
add eax, edx
add eax, ecx
mov ecx, eax
shr ecx, 0x1a
movzx ecx, byte [edi + ecx]
mov byte [esp + 0x50], cl
mov ecx, eax
shr ecx, 0x14
and ecx, 0x3f
movzx edx, byte [edi + ecx]
mov ecx, eax
shr ecx, 0xe
and ecx, 0x3f
mov byte [esp + 0x51], dl
movzx ecx, byte [edi + ecx]
shr eax, 8
and eax, 0x3f
mov byte [esp + 0x52], cl
movzx edx, byte [edi + eax]
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x57], dl
call dword [0x4682c8]
add esi, 3
sub ebp, 1
jne 0x433cd3
mov ebp, dword [esp + 0x20]
xor eax, eax
xor ebx, ebx
test ebp, ebp
mov dword [esp + 0x50], eax
mov byte [esp + 0x54], al
jbe 0x433dd2
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
lea esi, [ecx + edx]
movzx edx, byte [esi + eax]
mov ecx, 3
sub ecx, eax
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl edx, cl
add eax, 1
add ebx, edx
cmp eax, ebp
jb 0x433d64
test ebp, ebp
jbe 0x433dd2
xor edx, edx
xor esi, esi
jmp 0x433d90
mov ecx, 0x1a
sub ecx, esi
mov eax, ebx
shr eax, cl
and eax, 0x3f
jne 0x433dc0
cmp ebp, 1
jne 0x433db0
cmp edx, ebp
jle 0x433dc0
mov byte [esp + edx + 0x50], 0x3d
jmp 0x433dc7
cmp ebp, 2
jne 0x433dc0
cmp edx, ebp
jle 0x433dc0
mov byte [esp + edx + 0x50], 0x3d
jmp 0x433dc7
mov al, byte [edi + eax]
mov byte [esp + edx + 0x50], al
add esi, 6
add edx, 1
cmp esi, 0x18
jl 0x433d90
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x38]
call dword [0x4682c8]
lea ecx, [esp + 0x34]
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
push eax
lea ecx, [esp + 0x38]
call dword [sym.imp.MSVCP80.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
mov edx, dword [esp + 0x1c]
push eax
push edx
call sub.MSVCR80.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x34]
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x64], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, 1
jmp 0x433e44
mov edx, dword [esp + 0x14]
mov dword [edx], esi
lea ecx, [esp + 0x34]
mov dword [esp + 0x64], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor al, al
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.0043ad38
add esp, 0x54
ret 0x14