Function at 0x44a194
Capabilities:
Check if file exists
Encode data using xor
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2be4
call fcn.0044cc00
push ebx
xor ebx, ebx
cmp dword [0x6af818], ebx
push esi
push edi
mov dword [ebp - 0x18], ebx
je 0x44a63d
cmp dword [0x6af81c], ebx
je 0x44a1c1
push 0xfffffffffffffff6
jmp 0x44a22d
push 1
mov byte [ebp - 0x38], bl
pop edi
mov byte [ebp - 0x37], bl
push ebx
push ebx
push 3
push ebx
push 3
push 0xc0000000
push 0x6af99c
mov dword [0x6af81c], edi
mov word [ebp - 0x36], bx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov word [ebp - 0x2c], bx
mov word [ebp - 0x2a], bx
mov word [ebp - 0x28], bx
mov word [ebp - 0x26], bx
mov word [ebp - 0x24], bx
mov dword [ebp - 0x22], ebx
mov dword [ebp - 0x1e], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
mov dword [ebp - 4], esi
jne 0x44a237
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
mov dword [0x6af81c], ebx
je 0x44a233
cmp eax, 3
je 0x44a233
push 0xffffffffffffffde
pop eax
jmp 0x44a648
push 0xffffffffffffffe0
jmp 0x44a22d
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push ebx
push eax
push ebx
push ebx
push esi
mov dword [ebp - 8], eax
call dword [sym.imp.KERNEL32.dll_LockFile]
test eax, eax
jne 0x44a285
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x21
je 0x44a263
cmp eax, 0xd4
jne 0x44a26b
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp di, 0x14
jle 0x44a237
cmp esi, ebx
je 0x44a27d
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffdf
pop esi
jmp 0x44a640
push ebx
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp - 0x40]
push ebx
push eax
lea eax, [ebp - 0x38]
push 0x1e
push eax
push esi
call edi
test eax, eax
jne 0x44a2c8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push dword [ebp - 8]
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_UnlockFile]
cmp esi, ebx
je 0x44a591
push esi
jmp 0x44a58b
lea eax, [ebp - 0x38]
xor esi, esi
cmp si, 0xe
jl 0x44a2d9
cmp si, 0x11
jle 0x44a2e5
mov cl, byte [eax]
add cl, byte [ebp - 0x2a]
inc cl
xor cl, byte [ebp - 0x28]
mov byte [eax], cl
inc eax
inc esi
cmp si, 0x1e
jb 0x44a2cd
call fcn.0044b703
cmp word [ebp - 0x36], bx
je 0x44a64f
cmp dword [ebp - 0x34], ebx
je 0x44a64f
mov ecx, eax
sub ecx, dword [ebp - 0x34]
movsx esi, word [ebp - 0x36]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
lea edx, [esi + 5]
imul edx, edx, 0x3c
cmp eax, edx
jg 0x44a64f
cmp word [ebp + 0x1c], 0x21
jl 0x44a3a4
cmp word [ebp + 0x1c], 0x24
jg 0x44a3a4
movsx eax, word [ebp + 0x1c]
sub eax, 0x21
je 0x44a360
dec eax
je 0x44a37e
dec eax
je 0x44a34e
dec eax
je 0x44a348
push 0xfffffffffffffff9
pop esi
jmp 0x44a37e
movsx esi, word [ebp - 0x26]
jmp 0x44a37e
mov eax, ecx
push 0x3c
cdq
pop ecx
idiv ecx
mov esi, eax
cmp esi, ebx
jge 0x44a37e
neg esi
jmp 0x44a37e
movsx ecx, byte [ebp - 0x37]
mov eax, ecx
push 0xa
cdq
pop esi
idiv esi
lea edx, [eax + eax*4]
shl edx, 1
sub ecx, edx
movsx eax, ax
movzx esi, cx
shl eax, 0x10
or esi, eax
push ebx
push dword [ebp - 8]
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_UnlockFile]
cmp dword [ebp - 4], ebx
je 0x44a640
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x44a640
mov ax, word [ebp - 0x2c]
cmp word [ebp + 0x18], ax
jle 0x44a3d3
push ebx
push dword [ebp - 8]
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_UnlockFile]
cmp dword [ebp - 4], ebx
je 0x44a3cb
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or esi, 0xffffffff
jmp 0x44a640
movsx esi, ax
lea eax, [ebp - 0x40]
push ebx
lea esi, [esi + esi*2]
push eax
shl esi, 2
lea eax, [ebp - 0xb10]
push esi
push eax
push dword [ebp - 4]
call edi
test eax, eax
je 0x44a56e
xor edi, edi
cmp esi, ebx
lea eax, [ebp - 0xb10]
jle 0x44a417
mov cl, byte [eax]
add cl, byte [ebp - 0x2a]
inc cl
xor cl, byte [ebp - 0x28]
mov byte [eax], cl
inc eax
inc edi
movsx ecx, di
cmp ecx, esi
jl 0x44a402
mov ax, word [ebp + 0x1c]
mov dword [ebp - 0x18], ebx
cmp ax, 9
je 0x44a493
cmp ax, 7
je 0x44a493
cmp ax, 8
je 0x44a493
movsx eax, ax
dec eax
je 0x44a48a
dec eax
je 0x44a48a
dec eax
je 0x44a48a
dec eax
je 0x44a473
dec eax
je 0x44a460
dec eax
je 0x44a44c
xor esi, esi
jmp 0x44a37e
movsx eax, word [ebp + 0x18]
lea eax, [eax + eax*2]
movsx esi, word [ebp + eax*4 - 0xb1a]
jmp 0x44a37e
movsx eax, word [ebp + 0x18]
lea eax, [eax + eax*2]
mov esi, dword [ebp + eax*4 - 0xb18]
jmp 0x44a37e
movsx eax, word [ebp + 0x18]
lea eax, [eax + eax*2]
movsx esi, word [ebp + eax*4 - 0xb1c]
sub esi, 4
jmp 0x44a37e
movsx esi, word [ebp - 0x2c]
jmp 0x44a37e
cmp word [ebp - 0x2c], bx
mov dword [ebp - 0xc], ebx
jle 0x44a620
push 1
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
movsx esi, word [ebp - 0xc]
mov dword [ebp - 0x14], eax
push ebx
lea eax, [esi + esi*2]
lea edi, [ebp + eax*4 - 0xb10]
lea eax, [ebp - 0x40]
push eax
movsx eax, word [edi]
push eax
lea eax, [ebp - 0x2be4]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x44a56e
movsx eax, word [ebp + 0x18]
dec eax
cmp esi, eax
mov dword [ebp - 0x48], eax
jl 0x44a558
movsx ecx, word [edi]
xor eax, eax
cmp ecx, ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], ecx
jle 0x44a54f
mov edx, dword [ebp - 0x14]
mov ecx, edx
imul ecx, ecx, 0x11
imul edx, edx, 0xb
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x3c], edx
lea esi, [ebp + eax - 0x2be4]
mov eax, dword [ebp - 0x3c]
cdq
mov edi, 0xff
mov cl, byte [esi]
idiv edi
add cl, byte [ebp - 0x2a]
mov eax, dword [ebp - 0x14]
inc cl
xor cl, byte [ebp - 0x28]
add cl, dl
cdq
idiv edi
inc cl
mov eax, dword [ebp - 0x10]
xor cl, dl
inc eax
mov byte [esi], cl
mov dword [ebp - 0x10], eax
movsx ecx, word [ebp - 0x2a]
add dword [ebp - 0x3c], ecx
movsx ecx, word [ebp - 0x28]
add dword [ebp - 0x14], ecx
cmp eax, dword [ebp - 0x44]
jl 0x44a50b
movsx eax, word [ebp - 0xc]
cmp eax, dword [ebp - 0x48]
je 0x44a598
inc dword [ebp - 0xc]
mov ax, word [ebp - 0xc]
cmp ax, word [ebp - 0x2c]
jl 0x44a4a0
jmp 0x44a620
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push dword [ebp - 8]
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_UnlockFile]
cmp dword [ebp - 4], ebx
je 0x44a591
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffde
jmp 0x44a27f
mov eax, dword [ebp - 0x2be4]
cmp eax, dword [ebp + 8]
je 0x44a5ac
mov dword [ebp - 0x18], 0xfffffffe
jmp 0x44a620
cmp word [ebp + 0x1c], 9
jne 0x44a5c3
movsx eax, word [ebp - 0xc]
lea eax, [eax + eax*2]
mov eax, dword [ebp + eax*4 - 0xb08]
jmp 0x44a61d
mov eax, dword [ebp + 0x10]
dec eax
cmp ax, bx
jge 0x44a5ce
xor eax, eax
movsx ecx, ax
movsx eax, word [ebp + 0x14]
add eax, ecx
mov dword [ebp - 0x10], ebx
cmp ecx, eax
mov dword [ebp + 0x18], eax
jge 0x44a61a
movsx eax, word [ebp - 0xc]
push 4
lea eax, [eax + eax*2]
pop esi
movsx eax, word [ebp + eax*4 - 0xb10]
cdq
idiv esi
lea edx, [ebp + ecx*4 - 0x2be0]
lea esi, [eax - 1]
mov eax, dword [ebp + 0xc]
cmp ecx, esi
jg 0x44a61a
mov edi, dword [edx]
inc dword [ebp - 0x10]
mov dword [eax], edi
add eax, 4
inc ecx
add edx, 4
cmp ecx, dword [ebp + 0x18]
jl 0x44a603
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
push ebx
push dword [ebp - 8]
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_UnlockFile]
cmp dword [ebp - 4], ebx
je 0x44a63d
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x18]
mov dword [0x6af81c], ebx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x18
push ebx
push dword [ebp - 8]
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_UnlockFile]
cmp dword [ebp - 4], ebx
je 0x44a66c
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffdd
jmp 0x44a27f