Function at 0x412140
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x428eec
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 0x4121d2
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 0x41275c
lea ecx, [esp + 0x1c]
call fcn.00427800
lea ecx, [esp + 0x1f0]
push 0x4327fc
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 0x41228a
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 0x41275c
call sub.MFC42.DLL_CFileFind::Close
lea eax, [esp + 0x1f0]
push 0x4327fc
lea ecx, [esp + 0x18]
push eax
push ecx
call sub.MFC42.DLL_operator_2
mov eax, dword [eax]
push 0x4310a8
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 0x41231d
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 0x41275c
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 0x4123a5
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 0x41275c
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 0x412459
cmp eax, 0x88ffffff
jae 0x412459
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 0x41275c
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 0x412501
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 0x41275c
lea edx, [esp + 0xa0]
push 5
push edx
call fcn.00411f10
mov esi, eax
lea eax, [esp + 0xad]
push 5
push eax
mov edi, edx
call fcn.00411f10
lea ecx, [esp + 0x80]
push 0xc
push ecx
mov ebx, eax
mov dword [esp + 0x30], edx
call fcn.00412100
xor ecx, ecx
mov edx, eax
add esp, 0x18
or edx, ecx
je 0x4125b8
cmp eax, esi
jne 0x412553
cmp ecx, edi
jne 0x412553
mov edx, ebx
or edx, dword [esp + 0x18]
je 0x4125b8
or esi, edi
jne 0x412561
cmp eax, ebx
jne 0x412561
cmp ecx, dword [esp + 0x18]
je 0x4125b8
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 0x41275c
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.00411fc0
mov edx, dword [esp + 0x1c]
push 0x433b08
push edx
mov byte [esp + 0x1f8], 5
call ebp
add esp, 0x10
test eax, eax
jne 0x412659
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 0x41275c
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 0x412705
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 0x41275c
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