Function at 0x4105c0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4244ec
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1d0
push ebx
push ebp
push esi
push edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x1f0]
mov byte [esp + 0x1e8], 2
mov eax, dword [eax - 8]
cmp eax, 0xff
jle 0x410652
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 9
jmp 0x410bdc
lea ecx, [esp + 0x1c]
call fcn.00423170
lea ecx, [esp + 0x1f0]
push 0x42c4f8
lea edx, [esp + 0x18]
push ecx
push edx
mov byte [esp + 0x1f4], 3
call sub.MFC42.DLL_operator_2
mov eax, dword [eax]
push 0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1f0], 4
call sub.MFC42.DLL_CFileFind::FindFile
test eax, eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x1e8], 3
sete bl
call sub.MFC42.DLL_CString::CString
test bl, bl
lea ecx, [esp + 0x1c]
je 0x41070a
call sub.MFC42.DLL_CFileFind::Close
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x410bdc
call sub.MFC42.DLL_CFileFind::Close
lea eax, [esp + 0x1f0]
push 0x42c4f8
lea ecx, [esp + 0x18]
push eax
push ecx
call sub.MFC42.DLL_operator_2
mov eax, dword [eax]
push 0x42b0a8
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
lea ecx, [esp + 0x14]
mov esi, eax
call sub.MFC42.DLL_CString::CString
test esi, esi
jne 0x41079d
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 2
jmp 0x410bdc
mov ecx, 0x13
xor eax, eax
lea edi, [esp + 0x5c]
push esi
rep stosd dword es:[edi], eax
push 0x4e
lea edx, [esp + 0x64]
push 1
push edx
stosw word es:[edi], ax
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
cmp eax, 0x4e
push esi
jge 0x410825
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 3
jmp 0x410bdc
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x81]
mov edx, dword [esp + 0x82]
and eax, 0xff
shl eax, 8
and ecx, 0xff
and edx, 0xff
add eax, ecx
mov ecx, dword [esp + 0x83]
shl eax, 8
add eax, edx
and ecx, 0xff
shl eax, 8
add eax, ecx
mov ecx, dword [esp + 0x1fc]
add esp, 4
cmp eax, ecx
je 0x4108d9
cmp eax, 0x88ffffff
jae 0x4108d9
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 4
jmp 0x410bdc
mov ecx, 8
lea esi, [esp + 0x5c]
lea edi, [esp + 0x38]
lea edx, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 0
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimRight
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1f4]
mov ebp, dword [sym.imp.MSVCRT.dll__mbscmp]
push eax
push ecx
call ebp
add esp, 8
test eax, eax
je 0x410981
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 5
jmp 0x410bdc
lea edx, [esp + 0xa0]
push 5
push edx
call fcn.00410390
mov esi, eax
lea eax, [esp + 0xad]
push 5
push eax
mov edi, edx
call fcn.00410390
lea ecx, [esp + 0x80]
push 0xc
push ecx
mov ebx, eax
mov dword [esp + 0x30], edx
call fcn.00410580
xor ecx, ecx
mov edx, eax
add esp, 0x18
or edx, ecx
je 0x410a38
cmp eax, esi
jne 0x4109d3
cmp ecx, edi
jne 0x4109d3
mov edx, ebx
or edx, dword [esp + 0x18]
je 0x410a38
or esi, edi
jne 0x4109e1
cmp eax, ebx
jne 0x4109e1
cmp ecx, dword [esp + 0x18]
je 0x410a38
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 8
jmp 0x410bdc
push ecx
lea eax, [esp + 0x1f4]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x18]
push ecx
call fcn.00410440
mov edx, dword [esp + 0x1c]
push 0x42d1a8
push edx
mov byte [esp + 0x1f8], 5
call ebp
add esp, 0x10
test eax, eax
jne 0x410ad9
lea ecx, [esp + 0x14]
mov byte [esp + 0x1e8], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 6
jmp 0x410bdc
mov ecx, 8
lea esi, [esp + 0x80]
lea edi, [esp + 0x38]
lea eax, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 0
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimLeft
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimRight
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
call ebp
add esp, 8
mov byte [esp + 0x1e8], 3
test eax, eax
lea ecx, [esp + 0x14]
jne 0x410b85
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
jmp 0x410bdc
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e8], 2
call sub.MFC42.DLL_CFileFind::CFileFind
lea ecx, [esp + 0x10]
mov byte [esp + 0x1e8], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x1e8], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4]
mov dword [esp + 0x1e8], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 7
mov ecx, dword [esp + 0x1e0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1dc
ret