Function at 0x6e0e20
Capabilities:
Encode data using xor
Get file size
Read file on windows

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x1c], ebx
mov edi, dword [ebx + 4]
test edi, edi
je 0x6e0e57
lea esi, [edi + 4]
mov ebp, 0x100
mov eax, dword [esi]
test eax, eax
je 0x6e0e4a
push eax
mov ecx, ebx
call fcn.006e1070
add esi, 4
dec ebp
jne 0x6e0e3c
push edi
call dword [sym.imp.kernel32.dll_GlobalFree]
mov edi, dword [sym.imp.kernel32.dll_GlobalAlloc]
push 0x404
push 0x40
mov dword [ebx + 4], 0
call edi
test eax, eax
mov dword [ebx + 4], eax
je 0x6e0f08
mov edx, dword [esp + 0x2c]
mov ax, word [0x82bdc0]
mov cl, byte [0x82bdc2]
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push edx
mov word [esp + 0x2c], ax
mov byte [esp + 0x2e], cl
call dword [sym.imp.kernel32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x14], esi
je 0x6e0f08
lea eax, [esp + 0x18]
push eax
push esi
call dword [sym.imp.kernel32.dll_GetFileSize]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x6e0f01
test ebx, ebx
je 0x6e0f01
push ebx
push 0x40
call edi
lea ecx, [ebx - 7]
mov ebp, eax
push ecx
push 0x40
call edi
lea edx, [esp + 0x18]
push 0
push edx
push ebx
mov edi, eax
push ebp
push esi
mov dword [esp + 0x40], edi
call dword [sym.imp.kernel32.dll_ReadFile]
test eax, eax
jne 0x6e0f14
push edi
mov edi, dword [sym.imp.kernel32.dll_GlobalFree]
call edi
push ebp
call edi
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret 0xc
mov cx, 0x464
mov esi, 4
lea edi, [esp + 0x20]
mov word [0x8329c4], cx
sub edi, esi
mov dl, byte [esi + ebp]
xor eax, eax
mov al, ch
xor al, dl
movzx dx, dl
add dx, cx
mov byte [edi + esi], al
imul dx, word [0x8329c6]
add dx, word [0x8329c8]
inc esi
cmp esi, 8
mov cx, dx
mov word [0x8329c4], cx
jb 0x6e0f2a
lea eax, [esp + 0x20]
push 0x832dcc
push eax
mov byte [esp + 0x2c], 0
call dword [sym.imp.kernel32.dll_lstrcmpA]
test eax, eax
je 0x6e0f9c
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.kernel32.dll_CloseHandle]
mov edx, dword [esp + 0x2c]
mov esi, dword [sym.imp.kernel32.dll_GlobalFree]
push edx
call esi
push ebp
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret 0xc
xor edi, edi
cmp esi, ebx
jae 0x6e0fdd
mov dx, word [0x8329c4]
mov cl, byte [esi + ebp]
xor eax, eax
mov al, dh
xor al, cl
movzx cx, cl
add cx, dx
mov edx, dword [esp + 0x2c]
imul cx, word [0x8329c6]
add cx, word [0x8329c8]
inc esi
inc edi
cmp esi, ebx
mov word [0x8329c4], cx
mov byte [edi + edx - 1], al
jb 0x6e0fa2
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x10]
push eax
push ebx
mov byte [edi + ebx], 0
call fcn.007a522a
mov edi, dword [sym.imp.user32.dll_CharLowerA]
add esp, 8
push eax
call edi
mov esi, eax
test esi, esi
je 0x6e103b
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x6e1015
mov ecx, dword [esp + 0x34]
push esi
push ecx
call ebx
add esp, 8
mov ecx, dword [esp + 0x1c]
push esi
call fcn.006e0c60
lea edx, [esp + 0x10]
push edx
push 0
call fcn.007a522a
add esp, 8
push eax
call edi
mov esi, eax
test esi, esi
jne 0x6e1006
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov esi, dword [sym.imp.kernel32.dll_GlobalFree]
push ebx
call esi
push ebp
call esi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x18
ret 0xc