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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48c
mov eax, dword [0x4af040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4103d2
xor ecx, ecx
mov dword [ebp - 0x478], 0xe1ededcf
mov eax, 4
mov byte [ebp - 0x474], 0x85
mov dword [ebp - 0x47c], eax
mov word [ebp - 0x473], cx
mov byte [ebp - 0x471], cl
nop dword [eax]
lea eax, [ecx - 0x7f]
xor byte [ebp + ecx - 0x478], al
inc ecx
mov eax, dword [ebp - 0x47c]
cmp ecx, eax
jb 0x4103a0
mov byte [ebp + eax - 0x478], 0
lea eax, [ebp - 0x478]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043fbc2
mov esp, ebp
pop ebp
ret
push 0x21
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edx, 2
mov dword [ebp - 0x48c], eax
add esp, 4
mov dword [ebp - 0x488], edx
mov dword [ebp - 0x484], 0xe000f3
xor ecx, ecx
mov dword [ebp - 0x480], 0x83
nop dword [eax]
nop dword [eax + eax]
lea eax, [ecx + 0x81]
xor word [ebp + ecx*2 - 0x484], ax
inc ecx
mov edx, dword [ebp - 0x488]
cmp ecx, edx
jb 0x410410
xor eax, eax
mov word [ebp + edx*2 - 0x484], ax
lea eax, [ebp - 0x484]
push ebx
push eax
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4104b3
xor ecx, ecx
mov dword [ebp - 0x478], 0xe1ededcf
mov eax, 4
mov byte [ebp - 0x474], 0x85
mov dword [ebp - 0x47c], eax
mov word [ebp - 0x473], cx
mov byte [ebp - 0x471], cl
nop word [eax + eax]
lea eax, [ecx - 0x7f]
xor byte [ebp + ecx - 0x478], al
inc ecx
mov eax, dword [ebp - 0x47c]
cmp ecx, eax
jb 0x410480
pop ebx
mov byte [ebp + eax - 0x478], 0
lea eax, [ebp - 0x478]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043fbc2
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x470]
push edi
push eax
call dword [sym.imp.libcrypto_1_1.dll_MD5_Init]
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
lea eax, [ebp - 0x414]
push ebx
push 0x400
push 1
push eax
call esi
add esp, 0x14
test eax, eax
je 0x41050e
mov edi, dword [sym.imp.libcrypto_1_1.dll_MD5_Update]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x470]
push eax
call edi
push ebx
push 0x400
lea eax, [ebp - 0x414]
push 1
push eax
call esi
add esp, 0x1c
test eax, eax
jne 0x4104e5
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.libcrypto_1_1.dll_MD5_Final]
mov edi, dword [ebp - 0x48c]
add esp, 8
xor esi, esi
nop word [eax + eax]
xor eax, eax
mov dword [ebp - 0x478], 0xfcb1b2a4
mov ecx, 4
mov byte [ebp - 0x474], 0x85
mov dword [ebp - 0x47c], ecx
mov word [ebp - 0x473], ax
mov byte [ebp - 0x471], al
nop dword [eax + eax]
lea ecx, [eax - 0x7f]
xor byte [ebp + eax - 0x478], cl
inc eax
mov ecx, dword [ebp - 0x47c]
cmp eax, ecx
jb 0x410560
mov byte [ebp + ecx - 0x478], 0
movzx eax, byte [ebp + esi - 0x14]
push eax
lea eax, [ebp - 0x478]
push eax
push edi
call fcn.00410330
inc esi
add esp, 0xc
add edi, 2
cmp esi, 0x10
jl 0x410530
pop edi
push ebx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov ecx, dword [ebp - 4]
add esp, 4
mov eax, dword [ebp - 0x48c]
xor ecx, ebp
pop ebx
pop esi
call fcn.0043fbc2
mov esp, ebp
pop ebp
ret