Function at 0x675d60
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
test ebx, ebx
mov dword [eax], 0
jle 0x675eb1
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 4]
cmp edx, 0x50
jg 0x676099
mov eax, dword [eax]
mov edi, edx
sub edi, eax
cmp edi, dword [esp + 0x50]
jg 0x675ec0
test eax, eax
mov dword [esp + 0x1c], 0
jne 0x675f79
lea esi, [esi]
mov eax, dword [esp + 0x40]
mov esi, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._
test byte [eax + 0x5c], 2
mov eax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
cmove esi, eax
test edi, edi
jle 0x675f70
cmp edi, 2
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
jg 0x675f00
mov dword [esp + 0x14], 0
mov ebp, eax
mov dword [esp + 0x18], eax
lea esi, [esi]
movzx eax, byte [ecx]
lea edx, [ebp + 4]
mov ebp, edx
shl eax, 0x10
cmp edi, 2
je 0x676070
mov ebx, eax
shr ebx, 0x12
movzx ebx, byte [esi + ebx]
mov byte [edx - 4], bl
mov ebx, eax
shr ebx, 0xc
and ebx, 0x3f
cmp edi, 1
movzx ebx, byte [esi + ebx]
mov byte [edx - 3], bl
je 0x676056
shr eax, 6
sub edi, 3
add ecx, 3
and eax, 0x3f
movzx eax, byte [esi + eax]
mov byte [edx - 1], 0x3d
mov byte [edx - 2], al
add edx, dword [esp + 0x14]
sub edx, dword [esp + 0x18]
test edi, edi
jg 0x675df0
add dword [esp + 0x44], edx
add dword [esp + 0x1c], edx
mov eax, dword [esp + 0x40]
mov byte [ebp], 0
mov eax, dword [eax + 4]
add dword [esp + 0x4c], eax
sub dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
test byte [eax + 0x5c], 1
jne 0x675e83
mov eax, dword [esp + 0x44]
add dword [esp + 0x1c], 1
mov byte [eax], 0xa
add eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov byte [eax], 0
mov eax, dword [esp + 0x40]
mov edi, dword [eax + 4]
cmp edi, dword [esp + 0x50]
jg 0x676000
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jns 0x675db0
mov eax, dword [esp + 0x48]
mov dword [eax], 0
add esp, 0x2c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x40]
lea eax, [esi + eax + 8]
mov esi, dword [esp + 0x50]
mov dword [esp], eax
mov dword [esp + 8], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 4], esi
call sym._memcpy
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
add dword [eax], esi
add esp, 0x2c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, eax
movzx edx, byte [ecx + 1]
movzx ebx, byte [ecx]
add eax, 4
sub edi, 3
add ecx, 3
shl ebx, 0x10
shl edx, 8
or edx, ebx
movzx ebx, byte [ecx - 1]
or edx, ebx
mov ebx, edx
shr ebx, 0x12
movzx ebx, byte [esi + ebx]
mov byte [eax - 4], bl
mov ebx, edx
shr ebx, 0xc
and ebx, 0x3f
movzx ebx, byte [esi + ebx]
mov byte [eax - 3], bl
mov ebx, edx
and edx, 0x3f
shr ebx, 6
and ebx, 0x3f
movzx ebx, byte [esi + ebx]
mov byte [eax - 2], bl
movzx edx, byte [esi + edx]
mov byte [eax - 1], dl
mov edx, eax
sub edx, ebp
cmp edi, 2
jg 0x675f02
test edi, edi
mov dword [esp + 0x14], edx
jne 0x675de6
mov ebp, eax
jmp 0x675e4b
mov ebp, dword [esp + 0x44]
jmp 0x675e53
mov esi, dword [esp + 0x40]
mov dword [esp + 8], edi
lea eax, [esi + eax + 8]
mov esi, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], esi
call sym._memcpy
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
add dword [esp + 0x4c], edi
sub dword [esp + 0x50], edi
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call sym._evp_encodeblock_int
mov esi, dword [esp + 0x40]
add dword [esp + 0x44], eax
mov dword [esp + 0x1c], eax
test byte [esi + 0x5c], 1
mov dword [esi], 0
jne 0x675fe6
mov esi, dword [esp + 0x44]
add eax, 1
mov dword [esp + 0x1c], eax
mov eax, esi
mov byte [esi], 0xa
add eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov byte [eax], 0
mov eax, dword [esp + 0x40]
mov edi, dword [eax + 4]
cmp dword [esp + 0x50], edi
jge 0x675e9b
nop
mov edx, dword [esp + 0x1c]
test edx, edx
js 0x675ea7
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x676035
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
mov dword [eax], esi
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
mov dword [eax], esi
add esp, 0x2c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x4c]
add eax, 8
mov dword [esp], eax
mov dword [esp + 4], esi
call sym._memcpy
jmp 0x676014
mov byte [edx - 2], 0x3d
mov byte [edx - 1], 0x3d
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add edx, ebp
sub edx, eax
jmp 0x675e4b
movzx ebx, byte [ecx + 1]
shl ebx, 8
or eax, ebx
mov ebx, eax
shr ebx, 0x12
movzx ebx, byte [esi + ebx]
mov byte [edx - 4], bl
mov ebx, eax
shr ebx, 0xc
and ebx, 0x3f
movzx ebx, byte [esi + ebx]
mov byte [edx - 3], bl
jmp 0x675e28
mov dword [esp + 8], 0xab
mov dword [esp + 4], str.crypto_evp_encode.c
mov dword [esp], str.assertion_failed:_ctx__length____int_sizeof_ctx__enc_data_
call sym._OPENSSL_die
lea esi, [esi]
lea edi, [edi]