Function at 0x403b60
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x408f50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebp
push edi
lea ecx, [esp + 0x10]
xor edi, edi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
lea ecx, [esp + 0xc]
mov dword [esp + 0x30], edi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
lea ecx, [esp + 0x14]
mov byte [esp + 0x30], 1
call fcn.004081ea
mov ebp, dword [esp + 0x38]
cmp ebp, edi
mov byte [esp + 0x30], 2
je 0x403ddd
mov al, byte [0x4124f0]
test al, al
je 0x403ddd
push esi
push 0x4124f0
lea ecx, [esp + 0x10]
call dword [fcn.0040a3a0]
push 0x40a7bc
push eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x40], 3
call fcn.00402bf0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 4
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_1]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0xc]
mov byte [esp + 0x34], 2
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call fcn.004039a0
add esp, 4
test eax, eax
jne 0x403c93
push 0x4124f0
lea ecx, [esp + 0x10]
call dword [fcn.0040a3a0]
push 0x40a7b0
push eax
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x40], 5
call fcn.00402bf0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 6
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_1]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0xc]
mov byte [esp + 0x34], 2
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call fcn.004039a0
add esp, 4
test eax, eax
je 0x403dd7
push edi
push 0x4000
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x24]
call sub.MFC71.DLL_CStdioFile::Open
test eax, eax
je 0x403dd7
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_3]
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x38], 8
call sub.MFC71.DLL_CStdioFile::ReadString
test eax, eax
je 0x403dba
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::TrimLeft]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::TrimRight]
push 0x40a7ae
lea ecx, [esp + 0x40]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
test eax, eax
je 0x403da4
nop
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x1c]
call sub.MFC71.DLL_CStdioFile::ReadString
test eax, eax
je 0x403da4
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::TrimLeft]
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::TrimRight]
push 0x40a7ae
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
test eax, eax
je 0x403d10
push 0x210
call sub.MFC71.DLL_operator_new
mov esi, eax
add esp, 4
cmp esi, edi
je 0x403e12
lea ecx, [esp + 0x3c]
mov dword [esi + 0x20c], edi
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
mov edx, esi
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x403d76
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
lea edx, [esi + 0x104]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x403d90
push ebp
push esi
call fcn.00403950
add esp, 8
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC71.DLL_CStdioFile::ReadString
test eax, eax
jne 0x403ce4
lea ecx, [esp + 0x18]
call sub.MFC71.DLL_CStdioFile::Close
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov edi, 1
pop esi
lea ecx, [esp + 0x14]
mov byte [esp + 0x30], 1
call sub.MFC71.DLL_CStdioFile::CStdioFile
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ecx, dword [esp + 0x28]
mov eax, edi
pop edi
pop ebp
mov dword fs:[0], ecx
add esp, 0x2c
ret
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
jmp 0x403ddc