Function at 0x41e750
Capabilities:
Read file on windows
Write file on windows

Disassembly:
sub esp, 0x408
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.0041e700
test al, al
je 0x41e9ad
mov edi, dword [esp + 0x41c]
cmp edi, 1
jl 0x41e9ad
mov al, byte [esp + 0x420]
mov cl, byte [esp + 0x424]
mov edx, dword [esp + 0x428]
mov byte [esp + 0x21a], al
mov eax, dword [esp + 0x42c]
mov byte [esp + 0x21b], cl
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x220], eax
mov al, byte [esi + 0x18]
xor ebx, ebx
cmp al, bl
mov byte [esp + 0x218], 0xaa
mov byte [esp + 0x219], 0x55
mov dword [esp + 0x21c], edx
mov dword [esp + 0x224], ecx
je 0x41e7e5
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [esi + 0x18], bl
jne 0x41e7d8
cmp edi, ebx
mov byte [esi + 0x18], 1
mov dword [esp + 0x14], ebx
jle 0x41e9aa
push 0x14
xor edi, edi
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, 0x10
lea edx, [esp + 0x10]
push ebx
sub eax, edi
push edx
mov edx, dword [esi + 0x10]
lea ecx, [esp + 0x220]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x10]
add edi, eax
cmp eax, ebx
je 0x41e841
mov ecx, ebp
inc ebp
cmp ecx, 0x10
jg 0x41e838
cmp edi, 0x10
jb 0x41e801
cmp eax, ebx
je 0x41e841
cmp ebp, 0x10
jle 0x41e866
mov ecx, dword [esi + 8]
push edi
add ecx, 1
push 0x464254
mov dword [esi + 8], ecx
mov eax, dword [esi + 0xc]
adc eax, ebx
push esi
mov dword [esi + 0xc], eax
call sub.MFC42.DLL_CString::Format
add esp, 0xc
jmp 0x41e967
xor edi, edi
xor ebp, ebp
mov eax, 0x10
lea edx, [esp + 0x10]
push ebx
sub eax, edi
push edx
mov edx, dword [esi + 0x10]
lea ecx, [esp + 0x20]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x10]
add edi, eax
cmp eax, ebx
je 0x41e8a2
mov ecx, ebp
inc ebp
cmp ecx, 0x10
jg 0x41e89e
cmp edi, 0x10
jb 0x41e86a
cmp eax, ebx
jne 0x41e8c7
mov ecx, dword [esi + 8]
push edi
add ecx, 1
push 0x464210
mov dword [esi + 8], ecx
mov eax, dword [esi + 0xc]
adc eax, ebx
push esi
mov dword [esi + 0xc], eax
call sub.MFC42.DLL_CString::Format
add esp, 0xc
jmp 0x41e967
cmp ebp, 0x10
jle 0x41e8e2
mov ecx, dword [esi + 8]
add ecx, 1
mov dword [esi + 8], ecx
mov eax, dword [esi + 0xc]
adc eax, ebx
mov dword [esi + 0xc], eax
jmp 0x41e967
cmp byte [esp + 0x18], 0xaa
jne 0x41e948
cmp byte [esp + 0x19], 0x55
jne 0x41e948
mov dl, byte [esp + 0x420]
mov al, byte [esp + 0x1a]
cmp al, dl
jne 0x41e948
mov al, byte [esp + 0x424]
mov cl, byte [esp + 0x1b]
cmp cl, al
jne 0x41e948
mov ecx, dword [esp + 0x428]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jne 0x41e948
mov ecx, dword [esp + 0x42c]
mov edx, dword [esp + 0x430]
mov eax, ecx
or eax, edx
mov eax, dword [esp + 0x434]
je 0x41e980
cmp eax, ebx
jne 0x41e98b
cmp ecx, dword [esp + 0x20]
jne 0x41e948
cmp edx, dword [esp + 0x24]
je 0x41e998
mov ebp, dword [esi + 8]
push str.FPGA
add ebp, 1
push esi
mov dword [esi + 8], ebp
mov edi, dword [esi + 0xc]
adc edi, ebx
mov dword [esi + 0xc], edi
call sub.MFC42.DLL_CString::Format
add esp, 8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x41c]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jge 0x41e9aa
jmp 0x41e7f5
cmp eax, ebx
je 0x41e998
mov eax, dword [esp + 0x434]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov byte [esi + 0x18], bl
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x408
ret 0x1c
mov byte [esi + 0x18], bl
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x408
ret 0x1c