Function at 0x6b507360
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x20
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], 0
mov ebx, dword [eax]
add eax, 8
mov dword [esp + 0x1c], eax
test ebx, ebx
jle 0x6b50738b
cmp byte [eax + ebx - 1], 0x3d
je 0x6b507670
mov edi, dword [esp + 0x44]
xor eax, eax
test edi, edi
je 0x6b507657
mov eax, dword [esp + 0x34]
mov edx, 0x6b5f86e0
mov esi, dword [esp + 0x44]
test byte [eax + 0x5c], 2
mov eax, 0x6b5f8760
cmovne eax, edx
mov dword [esp + 0x14], eax
test esi, esi
jle 0x6b507767
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x44]
mov ebp, ebx
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], eax
jmp 0x6b507412
mov ebx, dword [esp + 0xc]
test ebx, ebx
je 0x6b507457
or eax, 0x13
cmp al, 0xf3
jne 0x6b507650
cmp ecx, 0xf2
je 0x6b5076a0
cmp ebp, 0x40
je 0x6b507482
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x40], eax
je 0x6b5076d8
add dword [esp + 0x40], 1
mov eax, dword [esp + 0x40]
movzx edx, byte [eax - 1]
test dl, dl
js 0x6b507650
mov esi, dword [esp + 0x14]
movzx eax, dl
movzx ecx, byte [esi + eax]
mov eax, ecx
cmp ecx, 0xff
je 0x6b507650
cmp dl, 0x3d
jne 0x6b5073e0
add dword [esp + 0xc], 1
mov esi, dword [esp + 0xc]
cmp esi, 3
je 0x6b507650
cmp ecx, 0xf2
je 0x6b5076a0
or eax, 0x13
cmp al, 0xf3
je 0x6b5073ff
cmp ebp, 0x3f
jg 0x6b507650
mov eax, dword [esp + 0x1c]
mov byte [eax + ebp], dl
add ebp, 1
cmp ebp, 0x40
jne 0x6b507404
mov eax, dword [esp + 0x34]
mov edx, 0x6b5f86e0
test byte [eax + 0x5c], 2
mov eax, 0x6b5f8760
cmovne eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 8]
test al, al
js 0x6b507750
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 4]
cmp byte [edx + eax], 0xe0
jne 0x6b5074cf
test ebp, ebp
je 0x6b507760
movzx eax, byte [edi + 1]
add edi, 1
sub ebp, 1
test al, al
jns 0x6b5074b3
mov ecx, dword [esp + 4]
cmp ebp, 3
jg 0x6b5074f6
jmp 0x6b507502
movzx eax, byte [ecx + eax]
or eax, 0x13
cmp al, 0xf3
jne 0x6b507502
mov ebp, edx
cmp edx, 3
je 0x6b507640
movzx eax, byte [edi + ebp - 1]
lea edx, [ebp - 1]
test al, al
jns 0x6b5074e0
test ebp, 3
jne 0x6b507640
test ebp, ebp
jle 0x6b507760
xor eax, eax
mov dword [esp + 0x10], ebp
xor esi, esi
mov ebp, eax
jmp 0x6b5075d5
mov ecx, dword [esp + 4]
movzx ebx, byte [ecx + eax]
movzx eax, byte [edi + esi + 1]
mov byte [esp + 0xb], bl
test al, al
js 0x6b507600
mov edx, dword [esp + 4]
movzx edx, byte [edx + eax]
movzx eax, byte [edi + esi + 2]
test al, al
js 0x6b507618
mov ecx, dword [esp + 4]
movzx eax, byte [ecx + eax]
movzx ecx, byte [edi + esi + 3]
mov byte [esp + 0xa], al
test cl, cl
js 0x6b507630
mov eax, dword [esp + 4]
cmp byte [esp + 0xb], 0
movzx ecx, byte [eax + ecx]
js 0x6b507640
test dl, dl
js 0x6b507640
movzx eax, byte [esp + 0xa]
test al, al
js 0x6b507640
test cl, cl
js 0x6b507640
shl ebx, 0x12
shl edx, 0xc
add esi, 4
or edx, ebx
movzx ebx, al
shl ebx, 6
or ebx, edx
mov edx, dword [esp + 0x38]
mov eax, ebx
or ecx, ebx
shr eax, 0x10
mov byte [edx + ebp + 1], bh
mov byte [edx + ebp], al
mov byte [edx + ebp + 2], cl
add ebp, 3
cmp esi, dword [esp + 0x10]
jge 0x6b5076b0
movzx eax, byte [edi + esi]
test al, al
jns 0x6b507528
movzx eax, byte [edi + esi + 1]
mov byte [esp + 0xb], 0xff
mov ebx, 0xff
test al, al
jns 0x6b507541
lea esi, [esi]
nop
movzx eax, byte [edi + esi + 2]
mov edx, 0xff
test al, al
jns 0x6b507556
lea esi, [esi]
movzx ecx, byte [edi + esi + 3]
mov byte [esp + 0xa], 0xff
test cl, cl
jns 0x6b50756f
lea esi, [esi]
cmp byte [esp + 0xb], 0
mov ecx, 0xff
jns 0x6b507582
xor ebx, ebx
mov eax, 0xffffffff
jmp 0x6b507657
mov ebx, ebp
mov eax, 0xffffffff
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov dword [edx], esi
mov esi, dword [esp + 0x34]
mov dword [esi], ebx
add esp, 0x20
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], 1
cmp ebx, 1
je 0x6b50738b
cmp byte [eax + ebx - 2], 0x3d
sete al
movzx eax, al
add eax, 1
mov dword [esp + 0xc], eax
jmp 0x6b50738b
mov ebx, ebp
test ebp, ebp
jg 0x6b507700
xor eax, eax
jmp 0x6b507657
mov edi, ebp
mov eax, dword [esp + 0xc]
cmp eax, edi
jg 0x6b507640
sub edi, eax
xor ebp, ebp
add dword [esp + 0x44], edi
mov eax, dword [esp + 0x18]
add dword [esp + 0x38], edi
cmp dword [esp + 0x40], eax
jne 0x6b507412
lea esi, [esi]
mov ebx, ebp
test ebx, ebx
jle 0x6b5076e5
mov esi, ebx
and esi, 3
je 0x6b50770e
mov edx, dword [esp + 0xc]
test ebx, ebx
setne al
test edx, edx
sete dl
or eax, edx
movzx eax, al
jmp 0x6b507657
test bl, 3
jne 0x6b507642
mov esi, 1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov dword [esp], ebx
mov eax, dword [esp + 0x34]
call sym._evp_decodeblock_int
mov edi, dword [esp + 0xc]
cmp eax, edi
jl 0x6b507640
mov edx, dword [esp + 0x44]
xor ebx, ebx
sub edx, edi
add eax, edx
mov dword [esp + 0x44], eax
test esi, esi
je 0x6b5076e5
xor eax, eax
jmp 0x6b507657
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
jmp 0x6b5074f6
xor edi, edi
jmp 0x6b5076b2
mov dword [esp + 0x44], 0
jmp 0x6b5076da