Function at 0x401950
Capabilities:
Check if file exists
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x403cc8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4d8
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::CString_1
xor esi, esi
lea ecx, [esp + 0xc4]
mov dword [esp + 0x4f0], esi
call sub.MFC42.DLL_CFile::CFile
mov eax, dword [ebp + 0x64]
push esi
push esi
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0x4fc], 1
call sub.MFC42.DLL_CFile::Open
test eax, eax
je 0x4032c8
lea eax, [esp + 0xe8]
lea ecx, [esp + 0xc4]
push eax
push 0x200
push 1
push ecx
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CArchive::CArchive
lea edx, [esp + 0x58]
lea eax, [esp + 0x10]
push edx
push eax
mov byte [esp + 0x4f8], 2
call sub.MFC42.DLL_operator__
push str.BokMark
lea ecx, [esp + 0x5c]
call sub.MFC42.DLL_CString::Find
test eax, eax
jge 0x401a1a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CArchive::Close
lea ecx, [esp + 0xc4]
call sub.MFC42.DLL_CFile::Close
jmp 0x4032b7
lea edi, [ebp + 0x108]
lea eax, [ebp + 0x68]
push eax
lea ecx, [esp + 0x14]
mov dword [edi], esi
mov dword [ebp + 0x10c], esi
call fcn.00403690
push edi
lea ecx, [esp + 0x14]
call fcn.00403690
mov eax, dword [edi]
cmp eax, esi
jle 0x401bbe
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
shl edx, 2
push edx
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [ebp + 0x10c], eax
mov eax, dword [edi]
add esp, 4
cmp eax, esi
mov dword [esp + 0x54], esi
jle 0x401bbe
mov eax, dword [ebp + 0x10c]
lea ecx, [esp + 0x10]
lea eax, [eax + esi + 0x28]
push eax
call fcn.00403690
mov eax, dword [ebp + 0x10c]
lea ecx, [esp + 0x10]
add eax, esi
push eax
call fcn.00403690
mov ecx, dword [ebp + 0x10c]
mov eax, dword [esp + 0x34]
lea ebx, [ecx + esi + 8]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401ac2
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x10c]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [ecx + esi + 0x10]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401aff
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [ebp + 0x10c]
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x10]
lea eax, [eax + esi + 4]
add edx, 8
push eax
mov dword [esp + 0x38], edx
call fcn.00403690
mov ecx, dword [ebp + 0x10c]
mov eax, dword [esp + 0x34]
lea ebx, [ecx + esi + 0x18]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401b54
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x10c]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [ecx + esi + 0x20]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401b91
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
add esi, 0x2c
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [edi]
add eax, 8
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x54]
inc eax
cmp eax, ecx
mov dword [esp + 0x54], eax
jl 0x401a70
xor esi, esi
lea edi, [ebp + 0xec]
lea ecx, [esp + 0x10]
push edi
call fcn.00403690
mov eax, dword [edi]
shl eax, 7
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [ebp + 0xf0], eax
mov eax, dword [edi]
add esp, 4
cmp eax, esi
mov dword [esp + 0x54], esi
jle 0x402097
mov ecx, dword [ebp + 0xf0]
lea eax, [esi + ecx + 0x38]
lea ecx, [esp + 0x10]
push eax
call fcn.00403690
mov edx, dword [ebp + 0xf0]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
lea ebx, [esi + edx + 0x30]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401c31
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x14]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401c6e
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x74]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401cab
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [ebp + 0xf0]
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x10]
lea eax, [esi + eax + 0x7c]
add edx, 8
push eax
mov dword [esp + 0x38], edx
call fcn.00403690
mov ecx, dword [ebp + 0xf0]
lea eax, [esi + ecx + 0x60]
lea ecx, [esp + 0x10]
push eax
call fcn.00403690
mov edx, dword [ebp + 0xf0]
lea ecx, [esp + 0x10]
lea eax, [esi + edx + 0x44]
push eax
call fcn.00403690
mov eax, dword [ebp + 0xf0]
lea ecx, [esp + 0x10]
lea eax, [esi + eax + 0x5c]
push eax
call fcn.00403690
mov ecx, dword [ebp + 0xf0]
mov eax, dword [esp + 0x34]
lea ebx, [esi + ecx + 0x64]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401d3c
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x6c]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401d79
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [ebp + 0xf0]
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x10]
lea eax, [esi + eax + 0x28]
add edx, 8
push eax
mov dword [esp + 0x38], edx
call fcn.00403690
mov ecx, dword [ebp + 0xf0]
mov eax, dword [esp + 0x34]
lea ebx, [esi + ecx + 4]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401dce
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0xc]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401e0b
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x30]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x401e48
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [ebp + 0xf0]
mov ebx, dword [esp + 0x34]
lea ecx, [esp + 0x10]
lea eax, [esi + eax + 0x2c]
add ebx, 8
push eax
mov dword [esp + 0x38], ebx
call fcn.00403690
mov ecx, dword [ebp + 0xf0]
lea eax, [esi + ecx + 0x1c]
lea ecx, [esp + 0x10]
push eax
call fcn.00403690
mov edx, dword [ebp + 0xf0]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
lea ebx, [esi + edx + 0x40]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x401eb1
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x50]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x401ee8
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 4
mov ebx, esi
mov dword [esp + 0x34], eax
add ebx, ecx
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x401f1f
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x3c]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x401f56
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x54]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x401f8d
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x20]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x401fc4
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x24]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x401ffb
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x48]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x402032
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf0]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x58]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x40206f
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
add esi, 0x80
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [edi]
add eax, 4
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x54]
inc eax
cmp eax, ecx
mov dword [esp + 0x54], eax
jl 0x401bf1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
xor esi, esi
lea edx, [eax + 4]
mov dword [ebp + 0x100], esi
cmp edx, ecx
mov dword [ebp + 0x104], esi
jbe 0x4020c7
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
mov eax, edx
cmp eax, esi
mov dword [ebp + 0x100], edx
jle 0x402129
shl eax, 3
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [ebp + 0x104], eax
mov ecx, dword [ebp + 0x100]
add esp, 4
xor eax, eax
cmp ecx, esi
jle 0x402125
mov ecx, dword [ebp + 0x104]
mov dword [ecx + eax*8], 4
mov edx, dword [edi]
mov ecx, dword [ebp + 0x104]
add edx, eax
mov dword [ecx + eax*8 + 4], edx
mov ecx, dword [ebp + 0x100]
inc eax
cmp eax, ecx
jl 0x4020ff
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402143
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov esi, dword [sym.imp.MSVCRT.dll_malloc]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
mov eax, ecx
mov dword [ebp + 0xf4], ecx
lea edx, [eax + eax*2]
shl edx, 2
push edx
call esi
mov dword [ebp + 0xf8], eax
mov eax, dword [ebp + 0xf4]
shl eax, 2
push eax
call esi
mov dword [ebp + 0xfc], eax
mov eax, dword [ebp + 0xf4]
add esp, 8
xor edi, edi
test eax, eax
mov dword [esp + 0x54], edi
jle 0x402343
mov eax, dword [esp + 0x34]
xor ebx, ebx
mov ecx, dword [ebp + 0xf8]
mov esi, ebx
add esi, ecx
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x4021c4
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esi], eax
mov ecx, dword [esp + 0x34]
add ecx, 4
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 0xf8]
mov edx, dword [ebx + ecx]
shl edx, 4
push edx
call dword [sym.imp.MSVCRT.dll_malloc]
mov ecx, dword [ebp + 0xfc]
add esp, 4
mov dword [esp + 0x68], 0
mov dword [ecx + edi*4], eax
mov edx, dword [ebp + 0xf8]
cmp dword [ebx + edx], 0
jle 0x4022b5
mov eax, dword [esp + 0x34]
xor edi, edi
mov ecx, dword [ebp + 0xfc]
mov edx, dword [esp + 0x54]
mov esi, dword [ecx + edx*4]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
add esi, edi
cmp edx, ecx
jbe 0x40223d
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xfc]
mov edx, dword [esp + 0x54]
add eax, 8
mov dword [esp + 0x34], eax
mov ecx, dword [ecx + edx*4]
lea edx, [eax + 8]
lea esi, [ecx + edi + 8]
mov ecx, dword [esp + 0x38]
cmp edx, ecx
jbe 0x402281
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
add edi, 0x10
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x68]
mov dword [esi + 4], edx
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 0xf8]
add eax, 8
inc ecx
mov dword [esp + 0x34], eax
mov esi, dword [ebx + edx]
cmp ecx, esi
mov dword [esp + 0x68], ecx
jl 0x402210
jmp 0x4022b9
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf8]
lea edx, [eax + 4]
lea esi, [ebx + ecx + 4]
mov ecx, dword [esp + 0x38]
cmp edx, ecx
jbe 0x4022e1
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esi], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf8]
add eax, 4
mov dword [esp + 0x34], eax
lea esi, [ebx + ecx + 8]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402318
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov edi, dword [esp + 0x54]
mov dword [esi], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf4]
add eax, 4
inc edi
add ebx, 0xc
cmp edi, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], edi
jl 0x40219c
jmp 0x402347
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402365
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x34], eax
mov esi, dword [sym.imp.MSVCRT.dll_malloc]
mov eax, ecx
mov dword [ebp + 0x110], ecx
lea edx, [eax + eax*4]
shl edx, 2
push edx
call esi
mov dword [ebp + 0x114], eax
mov eax, dword [ebp + 0x110]
shl eax, 2
push eax
call esi
mov dword [ebp + 0x118], eax
mov eax, dword [ebp + 0x110]
add esp, 8
xor ebx, ebx
test eax, eax
mov dword [esp + 0x54], ebx
jle 0x402534
mov eax, dword [esp + 0x34]
xor esi, esi
mov ecx, dword [ebp + 0x114]
lea edx, [eax + 4]
lea edi, [esi + ecx + 4]
mov ecx, dword [esp + 0x38]
cmp edx, ecx
jbe 0x4023e2
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x114]
add eax, 4
mov dword [esp + 0x34], eax
lea edi, [esi + ecx + 8]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x402419
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x114]
add eax, 8
mov edi, esi
mov dword [esp + 0x34], eax
add edi, ecx
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402456
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x114]
add eax, 4
mov dword [esp + 0x34], eax
lea edi, [esi + ecx + 0x10]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x40248d
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [edi], eax
mov ecx, dword [esp + 0x34]
add ecx, 4
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 0x114]
mov edx, dword [esi + ecx + 0x10]
shl edx, 2
push edx
call dword [sym.imp.MSVCRT.dll_malloc]
mov ecx, dword [ebp + 0x118]
add esp, 4
xor edi, edi
mov dword [ecx + ebx*4], eax
mov edx, dword [ebp + 0x114]
mov eax, dword [esi + edx + 0x10]
test eax, eax
mov eax, dword [esp + 0x34]
jle 0x40251c
mov ecx, dword [ebp + 0x118]
mov edx, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x38]
lea ebx, [edx + edi*4]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x4024fa
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x114]
mov ebx, dword [esp + 0x54]
add eax, 4
inc edi
mov dword [esp + 0x34], eax
mov edx, dword [esi + ecx + 0x10]
cmp edi, edx
jl 0x4024d0
mov ecx, dword [ebp + 0x110]
inc ebx
add esi, 0x14
cmp ebx, ecx
mov dword [esp + 0x54], ebx
jl 0x4023ba
jmp 0x402538
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
xor esi, esi
cmp edx, ecx
mov dword [ebp + 0x11c], esi
mov dword [ebp + 0x120], esi
jbe 0x402568
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 4
cmp edx, esi
mov dword [ebp + 0x11c], edx
mov dword [esp + 0x34], eax
jle 0x402669
shl edx, 4
push edx
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [ebp + 0x120], eax
mov eax, dword [ebp + 0x11c]
add esp, 4
xor edi, edi
test eax, eax
jle 0x402971
mov eax, dword [esp + 0x34]
xor esi, esi
mov ecx, dword [ebp + 0x120]
mov ebx, esi
add ebx, ecx
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x4025d0
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x120]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 4]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402607
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x120]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 8]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x40263e
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
add esi, 0x10
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x11c]
add eax, 8
inc edi
mov dword [esp + 0x34], eax
cmp edi, ecx
jl 0x4025a8
mov ecx, dword [esp + 0x38]
xor edx, edx
mov dword [ebp + 0x12c], edx
mov dword [ebp + 0x130], edx
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402695
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 4
test edx, edx
mov dword [ebp + 0x12c], edx
mov dword [esp + 0x34], eax
jle 0x40298c
mov eax, edx
shl eax, 4
add eax, edx
shl eax, 2
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [ebp + 0x130], eax
mov eax, dword [ebp + 0x12c]
add esp, 4
xor edi, edi
test eax, eax
jle 0x40297e
mov eax, dword [esp + 0x34]
xor esi, esi
mov ecx, dword [ebp + 0x130]
mov ebx, esi
add ebx, ecx
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402704
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 4]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x40273b
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 8]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x402772
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x10]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x4027af
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x18]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x4027ec
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x20]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402829
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x24]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x402860
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x2c]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x40289d
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x34]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x4028da
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 8
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x3c]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402917
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x130]
add eax, 4
mov dword [esp + 0x34], eax
lea ebx, [esi + ecx + 0x40]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x40294e
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
add esi, 0x44
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x12c]
add eax, 4
inc edi
mov dword [esp + 0x34], eax
cmp edi, ecx
jl 0x4026dc
jmp 0x402988
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
jmp 0x402669
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
jmp 0x40298c
mov ecx, dword [esp + 0x38]
xor edx, edx
mov dword [ebp + 0x124], edx
mov dword [ebp + 0x128], edx
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x4029b8
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0x9c], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xa0], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x4029ee
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0xac], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xb0], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402a24
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0xdc], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xe0], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402a5a
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0xe4], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xe8], edx
lea edx, [eax + 4]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402a90
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 4
mov dword [ebp + 0xd8], edx
mov dword [esp + 0x34], eax
lea edx, [eax + 4]
cmp edx, ecx
jbe 0x402abd
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 4
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 4
mov dword [ebp + 0xd4], edx
mov dword [esp + 0x34], eax
lea edx, [eax + 8]
cmp edx, ecx
jbe 0x402aea
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0x94], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0x98], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402b20
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0xb4], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xb8], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402b56
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0xbc], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xc0], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402b8c
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0xc4], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xc8], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402bc2
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0xcc], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xd0], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402bf8
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0xa4], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0xa8], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402c2e
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0x8c], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0x90], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402c64
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0x84], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0x88], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402c9a
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
add eax, 8
mov dword [ebp + 0x7c], edx
mov edx, dword [eax - 4]
mov dword [ebp + 0x80], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402ccd
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
lea esi, [ebp + 0x6c]
add eax, 8
mov dword [esi], edx
mov edx, dword [eax - 4]
mov dword [esi + 4], edx
lea edx, [eax + 8]
cmp edx, ecx
mov dword [esp + 0x34], eax
jbe 0x402cfb
sub eax, ecx
lea ecx, [esp + 0x10]
add eax, 8
push eax
call sub.MFC42.DLL_CArchive::FillBuffer
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
add eax, 8
mov dword [ebp + 0x74], ecx
mov edx, dword [eax - 4]
lea ecx, [esp + 0x10]
mov dword [ebp + 0x78], edx
mov dword [esp + 0x34], eax
call sub.MFC42.DLL_CArchive::Close
lea ecx, [esp + 0xc4]
call sub.MFC42.DLL_CFile::Close
mov edx, dword [ebp + 0x12c]
test edx, edx
jle 0x402d48
fld qword [esi]
fcomp qword [0x4044b8]
fnstsw ax
test ah, 1
je 0x402d48
mov dword [esi], 0
mov dword [esi + 4], 0x404e0000
lea eax, [esp + 0xd4]
mov ecx, 8
push eax
push 0x4016d0
push 0x4016c0
push 0x4011c0
sub esp, 0x20
mov eax, dword [ebp + 0x120]
mov edi, esp
sub esp, 0x60
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x18
lea esi, [ebp + 0x8c]
mov edi, esp
push edx
mov edx, dword [ebp + 0x11c]
xor ebx, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x130]
mov dword [esp + 0x168], ebx
push ecx
mov ecx, dword [ebp + 0x110]
push edx
mov edx, dword [ebp + 0x118]
push eax
mov eax, dword [ebp + 0x114]
push ecx
mov ecx, dword [ebp + 0x108]
push edx
mov edx, dword [ebp + 0x10c]
push eax
mov eax, dword [ebp + 0x100]
push ecx
mov ecx, dword [ebp + 0x104]
push edx
mov edx, dword [ebp + 0xf4]
push eax
mov eax, dword [ebp + 0xfc]
push ecx
mov ecx, dword [ebp + 0xf8]
push edx
mov edx, dword [ebp + 0xec]
push eax
mov eax, dword [ebp + 0xf0]
push ecx
push edx
push eax
call sub.SSAPI.dll_ShapeShifter
mov ecx, dword [ebp + 0xec]
mov edx, dword [ebp + 0xf0]
push ecx
push edx
call sub.SSAPI.dll_GetSSEnvironment
mov dword [esp + 0x6c], 0x4043b8
mov dword [esp + 0x70], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], ebx
mov al, byte [ebp + 0x68]
mov byte [esp + 0x4f0], 3
test al, 2
jne 0x402e6b
cmp dword [ebp + 0x110], 1
jle 0x402f23
mov ecx, dword [ebp + 0x114]
mov eax, dword [ecx + 4]
cmp eax, ebx
je 0x402e6b
cmp eax, 2
je 0x402e6b
cmp eax, 3
jne 0x402f23
fld qword [ecx + 8]
fcomp qword [0x4043b0]
fnstsw ax
test ah, 1
je 0x402f23
mov eax, dword [ebp + 0xec]
mov dword [esp + 0x5c], ebx
cmp eax, ebx
jle 0x402f23
mov dword [esp + 0x54], ebx
mov eax, dword [ebp + 0x110]
or ebx, 0xffffffff
xor esi, esi
mov dword [esp + 0x68], ebx
test eax, eax
jle 0x402ee4
mov edi, dword [ebp + 0x114]
add edi, 0x10
mov edx, dword [edi]
xor ecx, ecx
test edx, edx
jle 0x402ece
mov eax, dword [ebp + 0xf0]
mov ebx, dword [esp + 0x54]
mov ebx, dword [ebx + eax + 0x54]
mov eax, dword [ebp + 0x118]
mov eax, dword [eax + esi*4]
cmp dword [eax], ebx
je 0x402eca
inc ecx
add eax, 4
cmp ecx, edx
jl 0x402ebc
jmp 0x402ece
mov dword [esp + 0x68], esi
mov ebx, dword [esp + 0x68]
test ebx, ebx
jge 0x402ee4
mov eax, dword [ebp + 0x110]
inc esi
add edi, 0x14
cmp esi, eax
jl 0x402e9d
mov esi, dword [esp + 0x74]
push 0xffffffffffffffff
lea ecx, [esi + 1]
push ecx
lea ecx, [esp + 0x74]
call fcn.00403550
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x5c]
inc eax
mov dword [edx + esi*4], ebx
mov edx, dword [esp + 0x54]
mov ecx, dword [ebp + 0xec]
add edx, 0x80
cmp eax, ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], edx
jl 0x402e81
lea esi, [ebp + 0x64]
lea ecx, [esp + 0x58]
push esi
call sub.MFC42.DLL_CString::operator_1
push 0x2e
lea ecx, [esp + 0x5c]
call sub.MFC42.DLL_CString::ReverseFind
test eax, eax
jle 0x402f70
inc eax
lea ecx, [esp + 0x58]
push eax
lea eax, [esp + 0x60]
push eax
call sub.MFC42.DLL_CString::Left
push eax
mov ecx, esi
mov byte [esp + 0x4f4], 4
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x5c]
mov byte [esp + 0x4f0], 3
call fcn.004037ec
push 0x40502c
mov ecx, esi
call sub.MFC42.DLL_CString::operator
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x402f91
mov eax, dword [esi]
push eax
call sub.MFC42.DLL_CFile::Remove
lea ecx, [esp + 0xd8]
call sub.MFC42.DLL_CFile::CFile
mov esi, dword [esi]
push 0
push 0x1001
push esi
lea ecx, [esp + 0xe4]
mov byte [esp + 0x4fc], 5
call sub.MFC42.DLL_CFile::Open
test eax, eax
je 0x40327a
lea ecx, [esp + 0x2e8]
lea edx, [esp + 0xd8]
push ecx
push 0x200
push 0
push edx
lea ecx, [esp + 0x90]
call sub.MFC42.DLL_CArchive::CArchive
push str.MKD001
lea ecx, [esp + 0x5c]
mov byte [esp + 0x4f4], 6
call fcn.004037f8
lea eax, [esp + 0x58]
lea ecx, [esp + 0x80]
push eax
push ecx
call fcn.0040382e
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa8]
mov esi, dword [ebp + 0xec]
add edx, 4
cmp edx, eax
jbe 0x403035
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CArchive::Flush
mov eax, dword [esp + 0xa4]
xor ebx, ebx
mov dword [eax], esi
mov ecx, dword [esp + 0xa4]
mov eax, dword [ebp + 0xec]
add ecx, 4
test eax, eax
mov dword [esp + 0xa4], ecx
jle 0x4031a2
xor esi, esi
mov edx, dword [esp + 0xa4]
mov ecx, dword [ebp + 0xf0]
mov eax, dword [esp + 0xa8]
add edx, 4
mov edi, dword [esi + ecx + 0x1c]
cmp edx, eax
jbe 0x40308c
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CArchive::Flush
mov eax, dword [esp + 0xa4]
mov dword [eax], edi
mov eax, dword [esp + 0xa4]
mov ecx, dword [ebp + 0xf0]
add eax, 4
mov dword [esp + 0xa4], eax
fld qword [esi + ecx + 0x14]
mov ecx, dword [esp + 0xa8]
lea edx, [eax + 8]
fstp qword [esp + 0x5c]
cmp edx, ecx
jbe 0x4030d5
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CArchive::Flush
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0xa4]
mov ecx, dword [ebp + 0xf0]
add eax, 8
mov dword [esp + 0xa4], eax
fld qword [esi + ecx + 4]
mov ecx, dword [esp + 0xa8]
lea edx, [eax + 8]
fstp qword [esp + 0x5c]
cmp edx, ecx
jbe 0x403122
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CArchive::Flush
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0xa4]
mov ecx, dword [ebp + 0xf0]
add eax, 8
mov dword [esp + 0xa4], eax
fld qword [esi + ecx + 0xc]
mov ecx, dword [esp + 0xa8]
lea edx, [eax + 8]
fstp qword [esp + 0x5c]
cmp edx, ecx
jbe 0x40316f
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CArchive::Flush
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edi, dword [esp + 0xa4]
mov eax, dword [ebp + 0xec]
add edi, 8
inc ebx
add esi, 0x80
cmp ebx, eax
mov dword [esp + 0xa4], edi
jl 0x403061
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0x74]
add eax, 4
cmp eax, ecx
jbe 0x4031c7
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CArchive::Flush
mov ecx, dword [esp + 0xa4]
xor esi, esi
mov dword [ecx], ebp
mov ecx, dword [esp + 0xa4]
add ecx, 4
test ebp, ebp
mov dword [esp + 0xa4], ecx
jle 0x40322e
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0xa8]
add eax, 4
mov edi, dword [edx + esi*4]
cmp eax, ecx
jbe 0x40320f
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CArchive::Flush
mov ecx, dword [esp + 0xa4]
mov dword [ecx], edi
mov edx, dword [esp + 0xa4]
add edx, 4
inc esi
cmp esi, ebp
mov dword [esp + 0xa4], edx
jl 0x4031e7
push 0x405020
lea ecx, [esp + 0x5c]
call fcn.004037f8
lea edx, [esp + 0x58]
lea eax, [esp + 0x80]
push edx
push eax
call fcn.0040382e
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CArchive::Close
lea ecx, [esp + 0xd8]
call sub.MFC42.DLL_CFile::Close
lea ecx, [esp + 0x80]
mov byte [esp + 0x4f0], 5
call fcn.00403816
lea ecx, [esp + 0xd8]
mov byte [esp + 0x4f0], 3
call fcn.00403810
mov dword [esp + 0x6c], 0x4043b8
mov eax, dword [esp + 0x70]
mov byte [esp + 0x4f0], 7
test eax, eax
je 0x4032af
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x6c], 0x4043cc
lea ecx, [esp + 0x10]
mov byte [esp + 0x4f0], 1
call fcn.00403816
lea ecx, [esp + 0xc4]
mov byte [esp + 0x4f0], 0
call fcn.00403810
lea ecx, [esp + 0x58]
mov dword [esp + 0x4f0], 0xffffffff
call fcn.004037ec
mov ecx, dword [esp + 0x4e8]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret