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

Disassembly:
push 0xffffffffffffffff
push 0x414f49
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd8
push ebx
push ebp
push esi
mov esi, dword [esp + 0xf4]
push edi
mov edi, ecx
push esi
lea ecx, [edi + 0x118]
call dword [0x4162e0]
lea ecx, [esp + 0x70]
call fcn.00412730
xor ebp, ebp
push esi
lea ecx, [esp + 0x74]
mov dword [esp + 0xf4], ebp
call fcn.00412f90
test al, al
jne 0x40eeb1
lea ecx, [esp + 0x78]
mov dword [esp + 0xf0], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x74]
cmp eax, ebp
je 0x40ee98
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x70]
cmp eax, ebp
je 0x40f04e
mov edx, dword [eax]
push eax
call dword [edx + 8]
xor al, al
jmp 0x4102c5
lea ecx, [esp + 0x70]
call fcn.00412130
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x84]
call fcn.00413380
lea ecx, [esp + 0x80]
mov byte [esp + 0xf0], 1
call fcn.00412270
test al, al
jne 0x40ef46
mov byte [esp + 0xf0], al
mov eax, dword [esp + 0x84]
cmp eax, ebp
je 0x40eef9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x80]
cmp eax, ebp
je 0x40ef0a
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x78]
mov dword [esp + 0xf0], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x74]
cmp eax, ebp
je 0x40ef2d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x70]
cmp eax, ebp
je 0x40f04e
mov edx, dword [eax]
push eax
call dword [edx + 8]
xor al, al
jmp 0x4102c5
push str.file
lea ecx, [esp + 0xd0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0xe4]
push ecx
lea ecx, [esp + 0x88]
mov byte [esp + 0xf8], 2
call fcn.00412cb0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 3
call fcn.00413380
mov eax, dword [esp + 0xe0]
cmp eax, ebp
mov byte [esp + 0xf0], 6
je 0x40efa9
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0xcc]
mov byte [esp + 0xf0], 5
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x30]
call fcn.00412270
test al, al
jne 0x40f055
mov eax, dword [esp + 0x34]
cmp eax, ebp
mov byte [esp + 0xf0], 1
je 0x40efe5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x40eff3
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x84]
cmp eax, ebp
mov byte [esp + 0xf0], 0
je 0x40f00c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x80]
cmp eax, ebp
je 0x40f01d
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x78]
mov dword [esp + 0xf0], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x74]
cmp eax, ebp
je 0x40f040
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x70]
cmp eax, ebp
je 0x40f04e
mov edx, dword [eax]
push eax
call dword [edx + 8]
xor al, al
jmp 0x4102c5
lea ecx, [esp + 0xd0]
call fcn.00412730
push 0x41d628
lea ecx, [esp + 0xd4]
mov byte [esp + 0xf4], 7
call fcn.00412f90
test al, al
lea ecx, [esp + 0xd0]
je 0x40f125
call fcn.00412130
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xc4]
call fcn.00413380
mov bl, 8
push str.xml_tb_version
lea ecx, [esp + 0x68]
mov byte [esp + 0xf4], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf8], 9
call fcn.00412e20
push eax
mov ecx, 0x41d62c
mov byte [esp + 0xf4], 0xa
call dword [0x4162e0]
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x64]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0xc0]
call fcn.00412270
test al, al
jne 0x40f14f
lea ecx, [esp + 0xc0]
call fcn.004092b0
lea ecx, [esp + 0xd0]
call fcn.00409280
lea ecx, [esp + 0x30]
call fcn.004092b0
lea ecx, [esp + 0x80]
call fcn.004092b0
lea ecx, [esp + 0x70]
call fcn.00409280
xor al, al
jmp 0x4102c5
lea ecx, [esp + 0x18]
call dword [0x416194]
lea ecx, [esp + 0x3c]
call dword [0x416194]
lea ecx, [esp + 0x14]
call dword [0x416194]
lea ecx, [esp + 0xb0]
call dword [0x416194]
lea ecx, [esp + 0xdc]
call dword [0x416194]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
lea ecx, [esp + 0x7c]
call dword [0x416194]
lea ecx, [esp + 0x28]
call dword [0x416194]
lea ecx, [esp + 0x50]
call dword [0x416194]
lea ecx, [esp + 0x1c]
call dword [0x416194]
cmp dword [edi + 0x104], ebp
mov bl, 0x14
mov byte [esp + 0xf0], bl
jbe 0x40f217
mov edi, edi
push ebp
lea ecx, [edi + 0xf4]
call fcn.0040a380
mov esi, dword [eax]
test esi, esi
je 0x40f20c
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x40f1f2
push eax
call sub.MFC71.DLL_operator_delete_1
add esp, 4
lea ecx, [esi + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ecx, esi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push esi
call sub.MFC71.DLL_operator_delete
add esp, 4
mov eax, dword [edi + 0x104]
inc ebp
cmp ebp, eax
jb 0x40f1d0
lea ecx, [edi + 0xf4]
call fcn.0040af80
lea ecx, [edi + 0x1fc]
call fcn.0040aff0
lea ecx, [edi + 0x21c]
call fcn.0040aff0
lea esi, [edi + 0x240]
mov ecx, esi
call fcn.0040af80
lea ecx, [esi + 0x14]
call fcn.0040aff0
push 0x419214
mov ecx, 0x41d62c
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
test eax, eax
jne 0x40fa30
jmp 0x40f270
push str.name
lea ecx, [esp + 0x68]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0xe8]
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0xf8], 0x15
call fcn.00412e20
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xf4], 0x16
call dword [0x4162e0]
lea ecx, [esp + 0xe4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x64]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push str.file
lea ecx, [esp + 0x70]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf8], 0x17
call fcn.00412cb0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0xf4], 0x18
call fcn.00412c00
mov eax, dword [esp + 0x98]
test eax, eax
mov byte [esp + 0xf0], 0x17
je 0x40f32e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0x6c]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::MakeLower]
lea esp, [esp]
push str.path
lea ecx, [esp + 0x64]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0xf8], 0x19
call fcn.00412e20
push eax
lea ecx, [esp + 0xb4]
mov byte [esp + 0xf4], 0x1a
call dword [0x4162e0]
lea ecx, [esp + 0xb4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x60]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push str.name
lea ecx, [esp + 0x4c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + 0x94]
mov byte [esp + 0xf8], 0x1b
call fcn.00412e20
mov eax, dword [eax]
mov ecx, dword [esp + 0xb0]
push eax
push ecx
lea edx, [esp + 0x44]
push str._s__s
push edx
mov byte [esp + 0x100], 0x1c
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x10
lea ecx, [esp + 0xbc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x48]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::MakeLower]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
test eax, eax
je 0x40f5c7
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0xc4]
call fcn.004124c0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0xf4], 0x24
call fcn.00412c00
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x58]
test eax, eax
mov byte [esp + 0xf0], bl
je 0x40f490
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, byte [esp + 0x13]
test al, al
jne 0x40f350
mov eax, dword [esp + 0x18]
mov ecx, dword [0x41d604]
push eax
push ecx
lea edx, [esp + 0x1c]
push str._s__s
push edx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x10
push 0x419474
lea ecx, [esp + 0x6c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x25
call fcn.00413230
test eax, eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jge 0x40f4f2
fadd dword [0x4197f8]
fadd dword [edi + 0x110]
lea ecx, [esp + 0x68]
mov byte [esp + 0xf0], bl
fstp dword [edi + 0x110]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0x2e
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::ReverseFind]
inc eax
push eax
lea ecx, [esp + 0xac]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Mid_1]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xf4], 0x26
call dword [0x4162e0]
lea ecx, [esp + 0xa8]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0
lea ecx, [esp + 0x20]
lea ebp, [edi + 0x11c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find]
cmp eax, 0xffffffff
je 0x40f594
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4191c8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call fcn.00407d50
lea eax, [esp + 0x14]
push eax
lea ecx, [edi + 0x1fc]
call fcn.0040d320
push 0x158
call sub.MFC71.DLL_operator_new
add esp, 4
test eax, eax
je 0x40f8a8
mov ecx, eax
call fcn.00406f50
mov esi, eax
jmp 0x40f8aa
push str.date
lea ecx, [esp + 0x50]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0xf8], 0x1d
call fcn.00412e20
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], 0x1e
call dword [0x4162e0]
lea ecx, [esp + 0xa0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x4c]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push str.date
lea ecx, [esp + 0x60]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0xa8]
push edx
lea ecx, [esp + 0x94]
mov byte [esp + 0xf8], 0x1f
call fcn.00412e20
push eax
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 0x20
call dword [0x4162e0]
lea ecx, [esp + 0xa4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x5c]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x50]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
test eax, eax
je 0x40f9d8
mov eax, dword [esp + 0x18]
mov ecx, dword [0x41d604]
push eax
push ecx
lea edx, [esp + 0x1c]
push str._s_s
push edx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x10
push 0x419474
lea ecx, [esp + 0x58]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x21
call fcn.00413230
test eax, eax
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
jge 0x40f6f9
fadd dword [0x4197f8]
fadd dword [edi + 0x110]
lea ecx, [esp + 0x54]
mov byte [esp + 0xf0], bl
fstp dword [edi + 0x110]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0x2e
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::ReverseFind]
inc eax
push eax
lea ecx, [esp + 0xbc]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Mid_1]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xf4], 0x22
call dword [0x4162e0]
lea ecx, [esp + 0xb8]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0
lea ecx, [esp + 0x20]
lea ebp, [edi + 0x11c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find]
cmp eax, 0xffffffff
je 0x40f79b
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4191c8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call fcn.00407d50
lea eax, [esp + 0x14]
push eax
lea ecx, [edi + 0x1fc]
call fcn.0040d320
push 0x158
call sub.MFC71.DLL_operator_new
add esp, 4
test eax, eax
je 0x40f7c7
mov ecx, eax
call fcn.00406f50
mov esi, eax
jmp 0x40f7c9
xor esi, esi
lea ecx, [esi + 8]
push 0x4197f4
mov dword [esp + 0x30], esi
call dword [0x4161b8]
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esi + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
push 0
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find]
cmp eax, 0xffffffff
je 0x40f820
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4191c8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.00407d50
lea edx, [esp + 0x14]
push edx
mov ecx, esi
call dword [0x4162e0]
push 0x419474
lea ecx, [esp + 0x44]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x23
call fcn.00413230
lea ecx, [esp + 0x40]
mov dword [esi + 0x24], eax
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ecx, dword [esp + 0x28]
mov ebp, dword [sym.imp.MSVCR71.dll__snprintf]
push ecx
push 0x418e50
lea edx, [esi + 0x30]
push 0x21
push edx
call ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
push str._s__s
push 0x104
add esi, 0x51
push esi
call ebp
add esp, 0x24
lea edx, [esp + 0x2c]
push edx
jmp 0x40f9cd
xor esi, esi
lea ecx, [esi + 8]
push 0x4197f4
mov dword [esp + 0x30], esi
call dword [0x4161b8]
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esi + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
push 0
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find]
cmp eax, 0xffffffff
je 0x40f901
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4191c8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.00407d50
lea edx, [esp + 0x14]
push edx
mov ecx, esi
call dword [0x4162e0]
push 0x419474
lea ecx, [esp + 0x48]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x27
call fcn.00413230
lea ecx, [esp + 0x44]
mov dword [esi + 0x24], eax
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push str.date
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0xf8], 0x28
call fcn.00412e20
mov eax, dword [eax]
mov ebp, dword [sym.imp.MSVCR71.dll__snprintf]
push eax
push 0x418e50
lea ecx, [esi + 0x30]
push 0x21
push ecx
call ebp
add esp, 0x10
lea ecx, [esp + 0xac]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x24]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x7c]
push edx
push eax
push str._s__s
push 0x104
add esi, 0x51
push esi
call ebp
add esp, 0x14
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [edi + 0xf4]
call fcn.0040d3a0
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x84]
call fcn.004124c0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x29
call fcn.00412c00
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x9c]
test eax, eax
mov byte [esp + 0xf0], bl
je 0x40fa1c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, byte [esp + 0x13]
test al, al
jne 0x40f270
jmp 0x410152
push str.name
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0xf8], 0x2a
call fcn.00412e20
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xf4], 0x2b
call dword [0x4162e0]
lea ecx, [esp + 0x9c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x24]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::MakeLower]
push str.file
lea ecx, [esp + 0x48]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf8], 0x2c
call fcn.00412cb0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0xf4], 0x2d
call fcn.00412c00
mov eax, dword [esp + 0xac]
test eax, eax
mov byte [esp + 0xf0], 0x2c
je 0x40faf8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0x44]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea esp, [esp]
push str.name
lea ecx, [esp + 0x6c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0xf8], 0x2e
call fcn.00412e20
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xf4], 0x2f
call dword [0x4162e0]
lea ecx, [esp + 0xa8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x68]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::MakeLower]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
test eax, eax
je 0x40fd1a
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0xc4]
call fcn.004124c0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0xf4], 0x37
call fcn.00412c00
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x2c]
test eax, eax
mov byte [esp + 0xf0], bl
je 0x40fbd9
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov al, byte [esp + 0x13]
test al, al
jne 0x40fb10
lea ecx, [esp + 0x7c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Trim]
mov eax, dword [esp + 0x18]
mov ecx, dword [0x41d604]
push eax
push ecx
lea edx, [esp + 0x1c]
push str._s_s
push edx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x10
push 0x419474
lea ecx, [esp + 0x4c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x38
call fcn.00413230
test eax, eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jge 0x40fc45
fadd dword [0x4197f8]
fadd dword [edi + 0x110]
lea ecx, [esp + 0x48]
mov byte [esp + 0xf0], bl
fstp dword [edi + 0x110]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0x2e
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::ReverseFind]
inc eax
push eax
lea ecx, [esp + 0xc0]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Mid_1]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xf4], 0x39
call dword [0x4162e0]
lea ecx, [esp + 0xbc]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0
lea ecx, [esp + 0x20]
lea ebp, [edi + 0x11c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find]
cmp eax, 0xffffffff
je 0x40fce7
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4191c8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call fcn.00407d50
lea eax, [esp + 0x14]
push eax
lea ecx, [edi + 0x1fc]
call fcn.0040d320
push 0x158
call sub.MFC71.DLL_operator_new
add esp, 4
test eax, eax
je 0x40ffe5
mov ecx, eax
call fcn.00406f50
mov esi, eax
jmp 0x40ffe7
push str.date
lea ecx, [esp + 0x44]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0xbc]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0xf8], 0x30
call fcn.00412e20
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], 0x31
call dword [0x4162e0]
lea ecx, [esp + 0xb8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x40]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push str.date
lea ecx, [esp + 0x58]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0xf8], 0x32
call fcn.00412e20
push eax
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 0x33
call dword [0x4162e0]
lea ecx, [esp + 0xa4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x54]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x50]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
test eax, eax
je 0x410102
mov ecx, dword [esp + 0x18]
mov edx, dword [0x41d604]
push ecx
push edx
lea eax, [esp + 0x1c]
push str._s_s
push eax
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x10
push 0x419474
lea ecx, [esp + 0x60]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x34
call fcn.00413230
test eax, eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jge 0x40fe4c
fadd dword [0x4197f8]
fadd dword [edi + 0x110]
lea ecx, [esp + 0x5c]
mov byte [esp + 0xf0], bl
fstp dword [edi + 0x110]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0x2e
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::ReverseFind]
inc eax
push eax
lea edx, [esp + 0xa4]
push edx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Mid_1]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xf4], 0x35
call dword [0x4162e0]
lea ecx, [esp + 0xa0]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0
lea ecx, [esp + 0x20]
lea ebp, [edi + 0x11c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find]
cmp eax, 0xffffffff
je 0x40feee
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4191c8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.00407d50
lea ecx, [esp + 0x14]
push ecx
lea ecx, [edi + 0x1fc]
call fcn.0040d320
push 0x158
call sub.MFC71.DLL_operator_new
add esp, 4
test eax, eax
je 0x40ff1a
mov ecx, eax
call fcn.00406f50
mov esi, eax
jmp 0x40ff1c
xor esi, esi
lea edx, [esp + 0x18]
lea ecx, [esi + 8]
push edx
mov dword [esp + 0x5c], esi
call dword [0x4162e0]
push 0
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find]
cmp eax, 0xffffffff
je 0x40ff65
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4191c8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.00407d50
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call dword [0x4162e0]
push 0x419474
lea ecx, [esp + 0x50]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x36
call fcn.00413230
lea ecx, [esp + 0x4c]
mov dword [esi + 0x24], eax
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov edx, dword [esp + 0x28]
mov ebp, dword [sym.imp.MSVCR71.dll__snprintf]
push edx
push 0x418e50
lea eax, [esi + 0x30]
push 0x21
push eax
call ebp
mov ecx, dword [esp + 0x28]
push ecx
push 0x418e50
push 0x104
add esi, 0x51
push esi
call ebp
add esp, 0x20
lea edx, [esp + 0x58]
push edx
jmp 0x4100f7
xor esi, esi
lea edx, [esp + 0x18]
lea ecx, [esi + 8]
push edx
mov dword [esp + 0x5c], esi
call dword [0x4162e0]
push 0
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebp
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Find]
cmp eax, 0xffffffff
je 0x410030
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x4191c8
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.00407d50
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call dword [0x4162e0]
push 0x419474
lea ecx, [esp + 0x64]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x3a
call fcn.00413230
lea ecx, [esp + 0x60]
mov dword [esi + 0x24], eax
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push str.date
lea ecx, [esp + 0x70]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0xf8], 0x3b
call fcn.00412e20
mov ecx, dword [eax]
mov ebp, dword [sym.imp.MSVCR71.dll__snprintf]
push ecx
push 0x418e50
lea edx, [esi + 0x30]
push 0x21
push edx
call ebp
add esp, 0x10
lea ecx, [esp + 0xb4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x6c]
mov byte [esp + 0xf0], bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x18]
push eax
push 0x418e50
push 0x104
add esi, 0x51
push esi
call ebp
add esp, 0x10
lea ecx, [esp + 0x58]
push ecx
lea ecx, [edi + 0xf4]
call fcn.0040d3a0
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0x84]
call fcn.004124c0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 0x3c
call fcn.00412c00
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x98]
test eax, eax
mov byte [esp + 0xf0], bl
je 0x410146
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, byte [esp + 0x13]
test al, al
jne 0x40fa30
mov ecx, edi
call fcn.0040de70
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x50]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x7c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x90]
test eax, eax
mov byte [esp + 0xf0], 0xf
je 0x41019a
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4101ab
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0xdc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0xb0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0xc4]
test eax, eax
mov byte [esp + 0xf0], 7
je 0x4101fc
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x41020d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0xd8]
mov byte [esp + 0xf0], 5
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x410233
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x410244
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x34]
test eax, eax
mov byte [esp + 0xf0], 1
je 0x41025a
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x410268
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x84]
test eax, eax
mov byte [esp + 0xf0], 0
je 0x410281
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x80]
test eax, eax
je 0x410292
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0x78]
mov dword [esp + 0xf0], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4102b5
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4102c3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, 1
mov ecx, dword [esp + 0xe8]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe4
ret 4