Function at 0x6ea9ad
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
and dword [ebp - 0x24], 0
xorps xmm0, xmm0
and dword [ebp - 0x10], 0
xor al, al
push ebx
push esi
mov esi, edx
movlpd qword [ebp - 0x34], xmm0
xor edx, edx
movlpd qword [ebp - 0x2c], xmm0
inc edx
mov ebx, ecx
mov ecx, edx
push edi
cmp esi, edx
jbe 0x6ea9e4
xor al, byte [ecx + ebx]
inc ecx
cmp ecx, esi
jb 0x6ea9da
jmp 0x6ea9ee
xor al, al
test esi, esi
je 0x6eac75
cmp al, byte [ebx]
jne 0x6eac75
push 0x30
push edx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edx
call fcn.00705f80
mov edi, eax
mov dword [ebp - 0x14], edi
pop ecx
pop ecx
test edi, edi
je 0x6eac75
push 0xc
push 1
call fcn.00705f80
mov dword [ebp - 0xc], eax
mov dword [edi], eax
pop ecx
pop ecx
test eax, eax
je 0x6eac6e
push esi
mov edx, ebx
xor ecx, ecx
call fcn.0048f5cc
pop ecx
xor ecx, ecx
mov dword [edi + 0x18], eax
or ecx, esi
xor edx, edx
mov dword [edi + 0x1c], ecx
inc edx
lea ecx, [ebp - 0x40]
call fcn.006ea7bf
test eax, eax
je 0x6eaa90
lea ecx, [ebp - 0x40]
call fcn.006ea803
lea esi, [eax + 1]
push esi
mov dword [edi + 8], esi
call fcn.00702fb1
mov dword [edi + 4], eax
pop ecx
test eax, eax
je 0x6eac6e
xor ebx, ebx
test esi, esi
je 0x6eaa90
mov edi, eax
push 8
pop edx
lea ecx, [ebp - 0x40]
call fcn.006ea7bf
mov byte [edi + ebx], al
inc ebx
cmp ebx, esi
jb 0x6eaa7a
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
cmp byte [ebp - 0x24], 0
jne 0x6eac7c
cmp dword [ebp - 0x28], 8
jge 0x6eaab6
push 8
pop edx
lea ecx, [ebp - 0x40]
call fcn.006ea75e
test al, al
je 0x6eac7c
push 4
pop edx
lea ecx, [ebp - 0x40]
call fcn.006ea7bf
mov bl, al
xor eax, eax
mov byte [ebp - 8], al
mov byte [ebp - 1], al
mov byte [ebp - 2], al
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
test bl, 8
je 0x6eaaed
push 2
pop edx
lea ecx, [ebp - 0x40]
call fcn.006ea7bf
shl bl, 2
or al, bl
sub al, 0x18
mov bl, al
movzx esi, bl
shl esi, 2
cmp bl, 0x28
jae 0x6eab1b
mov eax, dword [esi + 0xe73268]
mov ecx, esi
shr eax, 2
mov dword [ebp - 0x1c], ecx
and al, 1
je 0x6eab1b
xor edx, edx
lea ecx, [ebp - 0x40]
inc edx
call fcn.006ea7bf
test eax, eax
setne byte [ebp - 8]
push dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov dl, bl
call fcn.006f23b0
pop ecx
cmp bl, 0x28
jb 0x6eab32
xor esi, esi
jmp 0x6eab3b
mov esi, dword [esi + 0xe73268]
and esi, 3
test al, al
je 0x6eac52
cmp esi, 1
jb 0x6eab6b
lea eax, [ebp - 0x14]
mov dl, bl
push eax
lea eax, [ebp - 1]
push eax
push dword [ebp - 0x10]
lea ecx, [ebp - 0x40]
push dword [ebp - 8]
call fcn.006ea89a
add esp, 0x10
test al, al
je 0x6eac52
cmp esi, 2
jne 0x6eab92
lea eax, [ebp - 0x18]
mov dl, bl
push eax
lea eax, [ebp - 2]
push eax
push 0xffffffffffffffff
push dword [ebp - 8]
lea ecx, [ebp - 0x40]
call fcn.006ea89a
add esp, 0x10
test al, al
je 0x6eac52
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
imul ecx, eax, 0xc
cmp byte [ebp - 1], 0x1a
jae 0x6eac52
cmp byte [ebp - 2], 0x1a
jae 0x6eac52
test eax, eax
je 0x6eac52
cmp byte [ecx + edx - 0xa], 0
jne 0x6eac52
cmp dword [ecx + edx - 8], 0
jne 0x6eac52
cmp byte [ecx + edx - 9], 0
jne 0x6eac52
cmp dword [ecx + edx - 4], 0
jne 0x6eac52
mov al, byte [ecx + edx - 0xc]
mov byte [ebp - 3], al
cmp al, 0x28
jae 0x6eac4a
movzx eax, al
mov esi, dword [eax*4 + 0xe73268]
and esi, 3
je 0x6eac4a
mov al, byte [ebp - 1]
cmp al, 0x19
jne 0x6eac13
movzx eax, byte [ebp - 3]
mov eax, dword [eax*4 + 0xe73268]
shr eax, 5
test al, 1
jne 0x6eac52
mov al, byte [ebp - 1]
mov byte [ecx + edx - 0xa], al
mov eax, dword [ebp - 0x14]
mov dword [ecx + edx - 8], eax
cmp esi, 2
jne 0x6eac4a
mov al, byte [ebp - 2]
cmp al, 0x19
jne 0x6eac3f
movzx eax, byte [ebp - 3]
mov eax, dword [eax*4 + 0xe73268]
shr eax, 6
test al, 1
jne 0x6eac52
mov al, byte [ebp - 2]
mov byte [ecx + edx - 9], al
mov eax, dword [ebp - 0x18]
mov dword [ecx + edx - 4], eax
inc dword [ebp - 0x10]
jmp 0x6eaa93
push str.Invalid_RAR_program_instruction
push 0xd0
push str.C:Userskjk_src_sumatrapdfextunarr_rar_filter_rar.c
push 0xe86c48
call fcn.006e1a95
add esp, 0x10
mov ecx, edi
call fcn.006ea857
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov ecx, ebx
call fcn.006f2474
test al, al
jne 0x6eac95
push 0
mov dl, 0x16
call fcn.006f23b0
pop ecx
test al, al
je 0x6eac6e
mov eax, edi
jmp 0x6eac77