Function at 0x40e8f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x467d5e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc20
mov eax, dword [0x48e070]
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc24], eax
lea eax, [edi + 0x40]
xor esi, esi
push eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x74], eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
cmp dword [edi + 4], esi
mov dword [esp + 0xc34], esi
je 0x40f967
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], 3
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x88]
mov byte [esp + 0xc34], 2
call fcn.0041f630
mov eax, dword [ebp + 8]
push esi
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0xc3c], 3
call fcn.0041f7c0
mov esi, eax
push 8
mov dword [esp + 0x28], esi
call fcn.00465905
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x58], ebx
je 0x40e9ea
mov al, byte [ebp + 0x1c]
test al, al
lea ecx, [esp + 0x13c]
mov dword [ebx + 4], 0
mov dword [ebx], ecx
je 0x40e9f7
mov al, byte [esp + 0xfe]
test al, al
je 0x40e9f7
mov dword [esp + 0x24], 0xfffffffc
push 0x100f
jmp 0x40ea21
mov dword [esp + 0x24], 0xffffffff
jmp 0x40f937
test esi, esi
je 0x40ea74
cmp esi, 0xfffffffb
je 0x40ea1c
cmp esi, 0xfffffffc
je 0x40e9e3
cmp esi, 0xfffffffd
lea ecx, [esp + 0x10]
je 0x40ea15
push 0xfbf
jmp 0x40ea25
push 0xfdf
jmp 0x40ea25
push 0x1037
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
push 0xfc7
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
push 0x46ffc8
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_1]
mov eax, dword [edi + 4]
mov esi, dword [eax]
push 0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov ecx, dword [edi + 4]
push eax
call dword [esi]
jmp 0x40f937
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [ebx + 4], ecx
mov eax, dword [eax + 4]
cmp ecx, eax
je 0x40eb12
lea esp, [esp]
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + 8]
push 0
push 0x48b7bc
push 0x48b73c
push 0
push eax
call sub.MSVCR71.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je 0x40eaf0
lea ecx, [esp + 0x38]
call fcn.004462d0
add esi, 0x38
push esi
lea ecx, [esp + 0x40]
mov byte [esp + 0xc38], 4
call dword [0x46e364]
lea ecx, [esp + 0x38]
call fcn.00445f80
test al, al
lea ecx, [esp + 0x38]
mov byte [esp + 0xc34], 3
je 0x40eb05
call fcn.004462f0
mov eax, dword [ebx + 4]
mov edx, dword [eax]
mov dword [ebx + 4], edx
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov ecx, edx
cmp ecx, eax
jne 0x40ea90
jmp 0x40eb12
mov dword [esp + 0x34], 4
call fcn.004462f0
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_1]
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0xc38], 5
call dword [0x46e364]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
jne 0x40eb4c
mov dword [esp + 0x34], 4
lea ecx, [esp + 0x2c]
mov byte [esp + 0xc34], 3
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov al, byte [ebp + 0x14]
test al, al
jne 0x40f10a
xor esi, esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0xc38], 7
call dword [0x46e364]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
je 0x40ebef
push 0xfd4
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0xc38], 8
call fcn.0040d650
lea ecx, [esp + 0x1c]
mov byte [esp + 0xc34], 7
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x5c]
call fcn.00448490
mov cx, word [esp + 0xd4]
mov dx, word [esp + 0xd6]
mov ax, word [esp + 0xd8]
mov word [esp + 0x60], cx
lea ecx, [esp + 0x5c]
mov byte [esp + 0xc34], 9
mov word [esp + 0x62], dx
mov word [esp + 0x64], ax
call fcn.004484c0
test al, al
je 0x40ec7a
push 0xfd5
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x44]
mov byte [esp + 0xc38], 0xa
call fcn.0040d650
lea ecx, [esp + 0x1c]
mov byte [esp + 0xc34], 9
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
cmp dword [esp + 0xe8], esi
jne 0x40eccd
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x18]
call dword [0x46e364]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
je 0x40eccd
push 0xfd6
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x78], esp
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x44]
call fcn.0040d8c0
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x18]
call dword [0x46e364]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
je 0x40ed33
push 0xfda
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x44]
mov byte [esp + 0xc38], 0xb
call fcn.0040d650
lea ecx, [esp + 0x1c]
mov byte [esp + 0xc34], 9
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
cmp dword [esp + 0x17c], esi
jne 0x40ed82
push 0xfd9
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x44]
mov byte [esp + 0xc38], 0xc
call fcn.0040d650
lea ecx, [esp + 0x1c]
mov byte [esp + 0xc34], 9
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea edx, [esp + 0xdc]
push edx
lea ecx, [esp + 0x18]
call dword [0x46e364]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
je 0x40ede8
push 0xfd7
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x44]
mov byte [esp + 0xc38], 0xd
call fcn.0040d650
lea ecx, [esp + 0x1c]
mov byte [esp + 0xc34], 9
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea edx, [esp + 0xe0]
push edx
lea ecx, [esp + 0x18]
call dword [0x46e364]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
je 0x40ee4e
push 0xfd8
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x44]
mov byte [esp + 0xc38], 0xe
call fcn.0040d650
lea ecx, [esp + 0x1c]
mov byte [esp + 0xc34], 9
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x44]
cmp ecx, esi
je 0x40efd3
mov eax, dword [esp + 0x48]
sub eax, ecx
sar eax, 2
cmp eax, esi
jle 0x40efd3
push 0xfd3
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
push 0x46ff98
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
lea edx, [esp + 0x40]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
je 0x40ef19
mov bl, 0xf
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x3c]
call fcn.004085b0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xc34], bl
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
jne 0x40eee2
push 0x46ff98
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_1]
lea ecx, [esp + 0x2c]
mov byte [esp + 0xc34], 9
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x3c]
call fcn.004087a0
lea ecx, [esp + 0x58]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
cmp dword [esp + 0x3c], eax
jne 0x40eea1
push 0x46ff98
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
push 0x46ff98
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
push 0xfc7
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_1]
mov edx, dword [edi + 4]
mov esi, dword [edx]
xor ebx, ebx
push ebx
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov ecx, dword [edi + 4]
push eax
call dword [esi]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x24], 0xffffffff
mov byte [esp + 0xc34], 7
call fcn.004484b0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov esi, dword [esp + 0x44]
cmp esi, ebx
je 0x40efc2
mov edi, dword [esp + 0x48]
cmp esi, edi
je 0x40efb3
mov ecx, esi
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
add esi, 4
cmp esi, edi
jne 0x40efa0
mov esi, dword [esp + 0x44]
push esi
call sub.MFC71U.DLL_CNoTrackObject::operator_new
mov edi, dword [esp + 0x34]
add esp, 4
xor ebx, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
jmp 0x40f937
push 8
mov dword [esp + 0x20], 0
call fcn.00465905
mov esi, eax
add esp, 4
test esi, esi
je 0x40f0de
mov dword [esi + 4], 0
lea eax, [esp + 0x174]
mov dword [esi], eax
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [esi + 4], ecx
cmp ecx, dword [eax + 4]
je 0x40f051
lea esp, [esp]
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 0
push 0x48b7e0
push 0x48b73c
push 0
push eax
call sub.MSVCR71.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x40f038
mov cl, byte [eax + 0x40]
test cl, cl
jne 0x40f04d
mov eax, dword [esi + 4]
mov edx, dword [eax]
mov dword [esi + 4], edx
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov ecx, edx
cmp ecx, eax
jne 0x40f010
jmp 0x40f051
mov dword [esp + 0x1c], eax
push esi
call sub.MFC71U.DLL_CNoTrackObject::operator_new
mov eax, dword [esp + 0x20]
add esp, 4
test eax, eax
jne 0x40f0de
push 0xfdd
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
push 0xfc7
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
push 0x46ffc8
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_1]
mov ecx, dword [edi + 4]
mov esi, dword [ecx]
push 0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov ecx, dword [edi + 4]
push eax
call dword [esi]
lea ecx, [esp + 0x5c]
mov byte [esp + 0xc34], 7
call fcn.004484b0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x40]
call fcn.0040ca20
jmp 0x40f937
lea ecx, [esp + 0x5c]
mov byte [esp + 0xc34], 7
call fcn.004484b0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x40]
mov byte [esp + 0xc34], 3
call fcn.0040ca20
mov edx, dword [ebp + 8]
push edx
lea eax, [esp + 0x804]
push eax
call dword [sym.imp.MSVCR71.dll_wcscpy]
lea ecx, [esp + 0x808]
push 0x5c
push ecx
call dword [sym.imp.MSVCR71.dll_wcsrchr]
add esp, 0x10
test eax, eax
je 0x40f139
mov word [eax + 2], 0
lea edx, [esp + 0xa10]
push 0x104
push edx
call fcn.004498a0
lea eax, [esp + 0x5f8]
push eax
push 0
lea ecx, [esp + 0xa20]
push 0x46f464
push ecx
call fcn.004498c0
add esp, 0x18
push 0
lea ecx, [esp + 0x1cc]
call fcn.0044c040
mov edx, dword [esp + 0x34]
push edx
lea eax, [esp + 0x5f4]
push eax
lea ecx, [esp + 0x1d0]
mov byte [esp + 0xc3c], 0x10
call fcn.0044c0d0
test eax, eax
mov dword [esp + 0x24], eax
je 0x40f21a
push 0xfc4
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea ecx, [esp + 0x5f0]
push ecx
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
push 0xfc7
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
push 0x46ffc8
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_1]
mov ecx, dword [edi + 4]
mov esi, dword [ecx]
push 0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov ecx, dword [edi + 4]
push eax
call dword [esi]
jmp 0x40f923
mov esi, dword [esp + 0x144]
mov al, byte [ebp + 0x18]
inc esi
cmp esi, 3
setg dl
and al, dl
mov dword [esp + 0x68], 0
mov byte [ebp + 0x18], al
je 0x40f29c
lea ecx, [esp + 0x34]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_1]
push 0x1002
lea ecx, [esp + 0x38]
mov byte [esp + 0xc38], 0x11
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
mov eax, dword [edi + 4]
mov eax, dword [eax]
push 0
push 0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x24], eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov edi, dword [esp + 0x38]
mov ecx, dword [edi + 4]
push eax
mov eax, dword [esp + 0x28]
call dword [eax + 0x14]
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
push esi
call dword [edx + 0x18]
lea ecx, [esp + 0x34]
mov byte [esp + 0xc34], 0x10
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea eax, [esp + 0x800]
push eax
lea ecx, [esp + 0x1cc]
call fcn.0044bf20
mov ecx, dword [ebp + 8]
push 0
push 0
push ecx
lea ecx, [esp + 0x1d4]
call fcn.0044d960
test eax, eax
mov dword [esp + 0x24], eax
je 0x40f2ef
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
push 0
push 0x47028c
call dword [edx]
lea eax, [esp + 0x5f0]
push eax
call fcn.0044a5d0
add esp, 4
jmp 0x40f923
mov al, byte [ebp + 0x18]
test al, al
je 0x40f308
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
push 1
mov dword [esp + 0x6c], 1
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0x800]
push eax
mov byte [esp + 0x1f], 0
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [ebx + 4], ecx
cmp ecx, dword [eax + 4]
je 0x40f8b4
call fcn.00449b30
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + 8]
push 0
push 0x48b7bc
push 0x48b73c
push 0
push eax
call sub.MSVCR71.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je 0x40f740
mov al, byte [ebp + 0x14]
test al, al
je 0x40f375
mov eax, dword [esi + 0x44]
test eax, eax
je 0x40f375
cmp eax, 2
jne 0x40f740
lea ecx, [esp + 0x50]
call fcn.004462d0
lea ecx, [esp + 0x38]
mov byte [esp + 0xc34], 0x12
call fcn.004462d0
lea edx, [esi + 0x38]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0xc38], 0x13
call dword [0x46e364]
lea eax, [esi + 0x3c]
push eax
lea ecx, [esp + 0x40]
call dword [0x46e364]
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
push 0x46eadc
lea ecx, [esp + 0x64]
mov byte [esp + 0xc38], 0x14
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
mov dword [esp + 0x5c], vtable.CMacrPath.0
push 0x46eadc
lea ecx, [esp + 0x84]
mov byte [esp + 0xc38], 0x15
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
mov edi, eax
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x50]
push edx
mov byte [esp + 0xc38], 0x16
call fcn.004084b0
test eax, eax
jne 0x40f43c
push edi
lea eax, [esp + 0x8c]
push eax
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x5c]
push edx
push eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x48]
call fcn.0040db80
lea ecx, [esp + 0x80]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x5c]
mov byte [esp + 0xc34], 0x14
call fcn.004462f0
mov al, byte [ebp + 0x1c]
test al, al
je 0x40f51b
lea edx, [esp + 0x54]
push edx
lea ecx, [esp + 0x48]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
mov dword [esp + 0x40], vtable.CMacrPath.0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0xc38], 0x17
call fcn.004463d0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xc34], 0x18
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
je 0x40f4d6
lea ecx, [esp + 0x7c]
push ecx
mov ecx, esi
call fcn.00420550
mov edx, dword [esp + 0x28]
or edx, 1
mov ecx, eax
mov dword [esp + 0x28], edx
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
je 0x40f4d6
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x40f4d6
mov bl, 1
jmp 0x40f4d8
xor bl, bl
test byte [esp + 0x28], 1
je 0x40f4f4
mov eax, dword [esp + 0x28]
and eax, 0xfffffffe
lea ecx, [esp + 0x7c]
mov dword [esp + 0x28], eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
test bl, bl
jne 0x40f75b
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x40]
mov byte [esp + 0xc34], 0x14
call fcn.004462f0
mov ebx, dword [esp + 0x58]
mov al, byte [ebp + 0x14]
test al, al
je 0x40f581
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x3c]
call fcn.004463d0
mov edx, dword [esp + 0x28]
or edx, 2
mov ecx, eax
mov byte [esp + 0xc34], 0x19
mov dword [esp + 0x28], edx
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
je 0x40f581
lea eax, [esp + 0x78]
push eax
mov ecx, esi
call fcn.00420550
mov edx, dword [esp + 0x28]
or edx, 4
mov ecx, eax
mov dword [esp + 0x28], edx
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
jne 0x40f581
mov eax, dword [esi + 0x44]
test eax, eax
mov byte [esp + 0x34], 1
je 0x40f586
mov byte [esp + 0x34], 0
test byte [esp + 0x28], 4
je 0x40f5a2
mov eax, dword [esp + 0x28]
and eax, 0xfffffffb
lea ecx, [esp + 0x78]
mov dword [esp + 0x28], eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
test byte [esp + 0x28], 2
mov dword [esp + 0xc34], 0x14
je 0x40f5cc
mov eax, dword [esp + 0x28]
and eax, 0xfffffffd
lea ecx, [esp + 0x84]
mov dword [esp + 0x28], eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov al, byte [esp + 0x34]
test al, al
je 0x40f60c
lea ecx, [esp + 0x74]
push ecx
mov ecx, esi
call fcn.00420550
mov ecx, eax
mov byte [esp + 0xc34], 0x1a
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x3c]
call fcn.004466e0
lea ecx, [esp + 0x74]
mov byte [esp + 0xc34], 0x14
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov al, byte [ebp + 0x14]
test al, al
lea eax, [esp + 0x38]
jne 0x40f61b
lea eax, [esp + 0x50]
add eax, 4
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x14]
mov byte [esp + 0xc34], 0x1b
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
call fcn.0044a600
add esp, 4
test al, al
je 0x40f7e2
mov al, byte [ebp + 0x14]
test al, al
jne 0x40f674
push 0
push 1
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x1d4]
call fcn.0044d960
mov esi, dword [esp + 0x30]
jmp 0x40f6e1
mov esi, dword [esp + 0x30]
mov byte [esp + 0x1b], 0
lea ecx, [ecx]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
mov ecx, esi
call fcn.004094f0
test al, al
lea ecx, [esp + 0x14]
jne 0x40f6bc
push 0
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
mov ecx, esi
call fcn.004095c0
cmp eax, 4
je 0x40f680
mov dword [esp + 0x24], 0xffffffff
jmp 0x40f875
mov edx, dword [esp + 0x34]
push edx
push 1
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x38]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x1d8]
call fcn.0044d630
test eax, eax
mov dword [esp + 0x24], eax
jne 0x40f867
mov al, byte [ebp + 0x18]
test al, al
je 0x40f706
mov eax, dword [esp + 0x68]
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
inc eax
push eax
mov dword [esp + 0x6c], eax
call dword [edx + 0x1c]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x38]
mov byte [esp + 0xc34], 0x12
call fcn.004462f0
lea ecx, [esp + 0x50]
mov byte [esp + 0xc34], 0x10
call fcn.004462f0
mov edi, dword [esp + 0x30]
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
mov eax, dword [eax + 4]
cmp dword [ebx + 4], eax
jne 0x40f332
jmp 0x40f8b4
push 0x1012
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
mov edi, dword [esp + 0x30]
mov ecx, dword [edi + 4]
mov esi, dword [ecx]
push 0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov ecx, dword [edi + 4]
push eax
call dword [esi]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], 0xffffffff
mov byte [esp + 0x1b], 1
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x40]
mov byte [esp + 0xc34], 0x14
call fcn.004462f0
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x38]
mov byte [esp + 0xc34], 0x12
call fcn.004462f0
lea ecx, [esp + 0x50]
mov byte [esp + 0xc34], 0x10
call fcn.004462f0
mov ebx, dword [esp + 0x58]
jmp 0x40f8b0
push 0xfb8
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
push 0xfc7
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_CWinApp::LoadStdProfileSettings]
push 0x46ffc8
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_1]
mov edi, dword [esp + 0x30]
mov ecx, dword [edi + 4]
mov esi, dword [ecx]
push 0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov ecx, dword [edi + 4]
push eax
call dword [esi]
mov dword [esp + 0x24], 0xffffffff
jmp 0x40f875
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
push 0
push 0x47028c
call dword [edx]
lea ecx, [esp + 0x14]
mov byte [esp + 0x1b], 1
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x38]
mov byte [esp + 0xc34], 0x12
call fcn.004462f0
lea ecx, [esp + 0x50]
mov byte [esp + 0xc34], 0x10
call fcn.004462f0
mov edi, dword [esp + 0x30]
push ebx
call sub.MFC71U.DLL_CNoTrackObject::operator_new
mov al, byte [esp + 0x1f]
add esp, 4
test al, al
je 0x40f8d7
lea eax, [esp + 0x5f0]
push eax
call fcn.0044a5d0
add esp, 4
jmp 0x40f923
mov esi, dword [ebp + 0xc]
push esi
call fcn.0044a600
add esp, 4
test al, al
je 0x40f8fe
push esi
call fcn.0044a5d0
add esp, 4
test al, al
jne 0x40f8fe
mov dword [esp + 0x24], 1
jmp 0x40f923
lea ecx, [esp + 0x5f0]
push esi
push ecx
call fcn.00449ae0
add esp, 8
test al, al
mov dword [esp + 0x24], 1
je 0x40f923
mov dword [esp + 0x24], 0
lea ecx, [esp + 0x1c8]
mov byte [esp + 0xc34], 3
call fcn.0044bf10
lea ecx, [esp + 0x88]
mov byte [esp + 0xc34], 2
call fcn.0041f460
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x10]
mov byte [esp + 0xc34], 0
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov al, byte [ebp + 0x18]
test al, al
je 0x40f976
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
call dword [edx + 0x20]
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0x6c]
push eax
call dword [0x46e364]
lea ecx, [esp + 0x6c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0xc2c]
mov eax, dword [esp + 0x24]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xc24]
call fcn.004664a7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18