Function at 0x50f2dd
Capabilities:
Copy file
Get file attributes
Read .ini file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a3718
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x5b4
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x570], ecx
mov eax, dword [ebp - 0x570]
mov byte [eax + 0x388], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x570]
add ecx, 0x88
push ecx
mov ecx, dword [ebp - 0x570]
call fcn.00511b5e
mov edx, dword [ebp + 8]
push edx
call fcn.0050b1cc
add esp, 4
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x10]
push eax
call fcn.0050b1cc
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], 0
cmp dword [ebp - 0x30], 0
jne 0x50f412
cmp dword [ebp - 0x14], 0
jne 0x50f412
push 0
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0x3c], eax
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x4e4], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x4e4], 0
je 0x50f3c8
push 0
push 0
push 0xffff
push 0xff
mov ecx, dword [ebp - 0x4e4]
call fcn.0050eb90
mov dword [ebp - 0x574], eax
jmp 0x50f3d2
mov dword [ebp - 0x574], 0
mov eax, dword [ebp - 0x574]
mov dword [ebp - 0x4e0], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x4e0]
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x3c], 0
je 0x50f400
mov edx, dword [ebp - 0x38]
mov dword [edx + 0x34], 1
jmp 0x50f40a
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x34], 2
mov eax, dword [ebp - 0x38]
jmp 0x5104a7
cmp dword [ebp - 0x30], 0
je 0x50f422
cmp dword [ebp - 0x14], 0
jne 0x50f8d6
cmp dword [ebp + 0x34], 0
jne 0x50f895
cmp dword [ebp + 0x30], 0
jne 0x50f895
mov dword [ebp - 0x20], 1
push 0x10
call fcn.00403600
mov dword [ebp - 0x4ec], eax
mov dword [ebp - 4], 1
cmp dword [ebp - 0x4ec], 0
je 0x50f46d
mov ecx, dword [ebp - 0x4ec]
call sub.MFC42.DLL_CFile::CFile_1
mov dword [ebp - 0x578], eax
jmp 0x50f477
mov dword [ebp - 0x578], 0
mov ecx, dword [ebp - 0x578]
mov dword [ebp - 0x4e8], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x4e8]
mov dword [ebp + 0x34], edx
cmp dword [ebp - 0x30], 0
je 0x50f6ca
cmp dword [ebp + 8], 0x190
jne 0x50f58c
push 0
push 0x40
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x28]
test eax, eax
je 0x50f58c
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x54]
mov ecx, dword [ebp + 0x34]
mov dword [ebp - 0x4f4], ecx
mov edx, dword [ebp - 0x4f4]
mov dword [ebp - 0x4f0], edx
cmp dword [ebp - 0x4f0], 0
je 0x50f509
push 1
mov ecx, dword [ebp - 0x4f0]
mov eax, dword [ebp - 0x4f0]
mov edx, dword [eax]
call dword [edx + 4]
mov dword [ebp - 0x57c], eax
jmp 0x50f513
mov dword [ebp - 0x57c], 0
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 4], 2
cmp dword [ebp - 0x4fc], 0
je 0x50f554
push 0
push 0
push 0xffff
push 0xff
mov ecx, dword [ebp - 0x4fc]
call fcn.0050eb90
mov dword [ebp - 0x580], eax
jmp 0x50f55e
mov dword [ebp - 0x580], 0
mov eax, dword [ebp - 0x580]
mov dword [ebp - 0x4f8], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x4f8]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x34], 2
mov eax, dword [ebp - 0x40]
jmp 0x5104a7
cmp dword [ebp + 8], 0x514
jne 0x50f5ad
push 0
push 0x42
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x28]
mov dword [ebp - 0x44], eax
jmp 0x50f5c6
push 0
push 0x1041
mov ecx, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x28]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 1
jne 0x50f609
mov ecx, dword [ebp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x48], eax
push 0x100
mov edx, dword [ebp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x50f5fb
mov eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x48], eax
jmp 0x50f604
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x48], eax
jmp 0x50f6c5
mov ecx, dword [ebp + 0x34]
mov dword [ebp - 0x504], ecx
mov edx, dword [ebp - 0x504]
mov dword [ebp - 0x500], edx
cmp dword [ebp - 0x500], 0
je 0x50f642
push 1
mov ecx, dword [ebp - 0x500]
mov eax, dword [ebp - 0x500]
mov edx, dword [eax]
call dword [edx + 4]
mov dword [ebp - 0x584], eax
jmp 0x50f64c
mov dword [ebp - 0x584], 0
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x50c], eax
mov dword [ebp - 4], 3
cmp dword [ebp - 0x50c], 0
je 0x50f68d
push 0
push 0
push 0xffff
push 0xff
mov ecx, dword [ebp - 0x50c]
call fcn.0050eb90
mov dword [ebp - 0x588], eax
jmp 0x50f697
mov dword [ebp - 0x588], 0
mov eax, dword [ebp - 0x588]
mov dword [ebp - 0x508], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x508]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x34], 2
mov eax, dword [ebp - 0x40]
jmp 0x5104a7
jmp 0x50f893
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x44c], eax
push 0x2f
mov ecx, dword [ebp - 0x44c]
push ecx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x50f706
push 0x2f
mov edx, dword [ebp - 0x44c]
push edx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
add eax, 1
mov dword [ebp - 0x44c], eax
jmp 0x50f6d3
push 0x5f97f8
mov eax, dword [ebp - 0x44c]
push eax
push str.c:_fidia_ws
push str._s__s._s
lea ecx, [ebp - 0x448]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
push 0x5f9814
lea edx, [ebp - 0x448]
push edx
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0
je 0x50f779
mov eax, dword [ebp - 0x450]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov ecx, dword [ebp - 0x570]
mov byte [ecx + 0x388], 1
mov dword [ebp - 0x454], 0x40
jmp 0x50f7b7
mov edx, dword [ebp - 0x570]
mov byte [edx + 0x388], 0
push 0x5f9818
push 0
push 0x5f9824
push 0x5f9834
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x50f7ad
mov dword [ebp - 0x454], 0x40
jmp 0x50f7b7
mov dword [ebp - 0x454], 0x20
push 0
mov eax, dword [ebp - 0x454]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x28]
test eax, eax
jne 0x50f893
mov ecx, dword [ebp + 0x34]
mov dword [ebp - 0x514], ecx
mov edx, dword [ebp - 0x514]
mov dword [ebp - 0x510], edx
cmp dword [ebp - 0x510], 0
je 0x50f810
push 1
mov ecx, dword [ebp - 0x510]
mov eax, dword [ebp - 0x510]
mov edx, dword [eax]
call dword [edx + 4]
mov dword [ebp - 0x58c], eax
jmp 0x50f81a
mov dword [ebp - 0x58c], 0
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x51c], eax
mov dword [ebp - 4], 4
cmp dword [ebp - 0x51c], 0
je 0x50f85b
push 0
push 0
push 0xffff
push 0xff
mov ecx, dword [ebp - 0x51c]
call fcn.0050eb90
mov dword [ebp - 0x590], eax
jmp 0x50f865
mov dword [ebp - 0x590], 0
mov eax, dword [ebp - 0x590]
mov dword [ebp - 0x518], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x518]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x34], 2
mov eax, dword [ebp - 0x40]
jmp 0x5104a7
jmp 0x50f8d6
mov eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x458], eax
push 0x100
mov ecx, dword [ebp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x50f8ca
mov edx, dword [ebp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x458], eax
jmp 0x50f8d6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x458], eax
cmp dword [ebp - 0x30], 0
jne 0x50fd1a
cmp dword [ebp + 0x1c], 1
jbe 0x50fa22
lea ecx, [ebp - 0x460]
call sub.MFC42.DLL_AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK
mov dword [ebp - 4], 5
mov byte [ebp - 4], 6
push 0
mov eax, dword [ebp + 0x1c]
sub eax, 1
shl eax, 9
push eax
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x30]
mov dword [ebp - 0x594], eax
mov ecx, dword [ebp - 0x594]
mov dword [ebp - 0x24], ecx
cmp dword [ebp + 0x18], 0
jne 0x50f9fa
push 1
lea edx, [ebp - 0x468]
push edx
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x34]
mov edx, dword [eax]
call dword [edx + 0x3c]
mov dword [ebp - 0x598], eax
mov eax, dword [ebp - 0x598]
mov dword [ebp - 0x464], eax
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x464], 1
jne 0x50f980
movsx edx, byte [ebp - 0x468]
cmp edx, 0xa
je 0x50f980
movsx eax, byte [ebp - 0x468]
cmp eax, 0xd
jne 0x50f930
cmp dword [ebp - 0x464], 0
je 0x50f9f1
push 1
lea ecx, [ebp - 0x468]
push ecx
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x3c]
mov dword [ebp - 0x59c], eax
mov ecx, dword [ebp - 0x59c]
mov dword [ebp - 0x464], ecx
mov edx, dword [ebp - 0x28]
add edx, 1
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x464], 1
jne 0x50f9d9
movsx eax, byte [ebp - 0x468]
cmp eax, 0xa
je 0x50f989
movsx ecx, byte [ebp - 0x468]
cmp ecx, 0xd
je 0x50f989
push 1
push 0xffffffffffffffff
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x30]
mov ecx, dword [ebp - 0x28]
sub ecx, 1
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x24]
add edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], edx
jmp 0x50fa0e
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x460]
call fcn.00411360
jmp 0x50fa2f
cmp dword [ebp + 0x1c], 0
jne 0x50fa2f
mov dword [ebp + 0x1c], 1
cmp dword [ebp + 0x20], 0
je 0x50fd1a
cmp dword [ebp + 0x18], 0
jne 0x50fd1a
mov ecx, dword [ebp - 0x570]
movsx edx, word [ecx + 0xbe]
mov eax, dword [ebp - 0x570]
sub edx, dword [eax + 0x32c]
push edx
mov ecx, dword [ebp - 0x570]
mov edx, dword [ecx + 0x32c]
mov eax, dword [ebp - 0x570]
lea ecx, [eax + edx + 0xc0]
push ecx
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
call dword [eax + 0x3c]
mov ecx, dword [ebp - 0x570]
mov dword [ecx + 0x328], eax
mov edx, dword [ebp - 0x570]
cmp dword [edx + 0x328], 0
jbe 0x50fd00
mov eax, dword [ebp - 0x570]
mov ecx, dword [eax + 0x328]
mov edx, dword [ebp - 0x570]
add ecx, dword [edx + 0x32c]
mov eax, dword [ebp - 0x570]
mov byte [eax + ecx + 0xc0], 0
mov ecx, dword [ebp - 0x570]
mov edx, dword [ecx + 0x330]
shr edx, 9
mov eax, dword [ebp - 0x570]
mov ecx, dword [eax + 0x334]
add ecx, edx
mov edx, dword [ebp - 0x570]
mov dword [edx + 0x334], ecx
mov eax, dword [ebp - 0x570]
mov eax, dword [eax + 0x330]
xor edx, edx
mov ecx, 0x200
div ecx
mov eax, dword [ebp - 0x570]
mov dword [eax + 0x330], edx
mov ecx, dword [ebp - 0x570]
mov edx, dword [ecx + 0x32c]
mov eax, dword [ebp - 0x570]
add edx, dword [eax + 0x328]
mov ecx, dword [ebp - 0x570]
mov dword [ecx + 0x32c], edx
mov edx, dword [ebp - 0x570]
add edx, 0x88
push edx
mov eax, dword [ebp + 0x20]
push eax
mov ecx, dword [ebp - 0x570]
call fcn.00511bec
mov word [ebp - 0x470], ax
movsx ecx, word [ebp - 0x470]
cmp ecx, 0xfffffffd
jne 0x50fc4a
lea ecx, [ebp - 0x47c]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 8
mov edx, dword [ebp + 0x20]
push edx
push 0x5f983c
lea eax, [ebp - 0x47c]
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0xc
push 0
push str.Setting_NCBLOCK
mov ecx, dword [ebp - 0x570]
mov edx, dword [ebp - 0x570]
mov eax, dword [edx]
call dword [eax + 0x24]
and eax, 0xffff
mov dword [ebp - 0x480], eax
mov cx, word [ebp - 0x480]
push ecx
push 0x2710
lea ecx, [ebp - 0x47c]
call fcn.00403d90
push eax
push 0x5f9850
push 0x5f9858
mov ecx, dword [ebp - 0x570]
call fcn.0050589a
push eax
lea ecx, [ebp - 0x478]
call fcn.00434700
mov byte [ebp - 4], 9
mov dx, word [ebp - 0x480]
push edx
mov ecx, dword [ebp - 0x570]
mov eax, dword [ebp - 0x570]
mov edx, dword [eax]
call dword [edx + 0x28]
push 0
push 0
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x34]
mov edx, dword [eax]
call dword [edx + 0x30]
mov word [ebp - 0x470], 0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x478]
call fcn.00434730
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x47c]
call fcn.0058df86
jmp 0x50fd00
movsx eax, word [ebp - 0x470]
cmp eax, 0xffffffff
jle 0x50fcfb
push 0
mov ecx, dword [ebp - 0x570]
mov edx, dword [ecx + 0x334]
mov eax, dword [ebp + 0x1c]
lea ecx, [eax + edx - 1]
shl ecx, 9
mov edx, dword [ebp - 0x570]
add ecx, dword [edx + 0x330]
add ecx, dword [ebp - 0x28]
push ecx
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x34]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, dword [ebp - 0x570]
mov dword [ecx + 0x88], eax
mov edx, dword [ebp - 0x570]
mov eax, dword [edx + 0x330]
shr eax, 9
mov ecx, dword [ebp - 0x570]
mov edx, dword [ecx + 0x334]
add edx, eax
mov eax, dword [ebp - 0x570]
mov dword [eax + 0x334], edx
mov ecx, dword [ebp - 0x570]
mov eax, dword [ecx + 0x330]
xor edx, edx
mov ecx, 0x200
div ecx
mov eax, dword [ebp - 0x570]
mov dword [eax + 0x330], edx
mov ecx, dword [ebp - 0x570]
mov edx, dword [ecx + 0x334]
mov eax, dword [ebp + 0x1c]
lea ecx, [eax + edx - 1]
mov dword [ebp + 0x1c], ecx
jmp 0x50fd00
jmp 0x50fa43
movsx edx, word [ebp - 0x470]
test edx, edx
jge 0x50fd1a
push 2
push 0
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x34]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ax, word [ebp + 0x28]
push eax
push 0x186a0
mov ecx, dword [ebp + 0x20]
push ecx
mov edx, dword [ebp + 0x1c]
push edx
push 0x43
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp - 0x570]
mov ecx, dword [ecx + 0x3cc]
add ecx, 0x10
call fcn.00403d90
push eax
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 0x570]
call fcn.005072a0
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x50fe3b
cmp dword [ebp - 0x20], 0
je 0x50fdb8
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x524], eax
mov ecx, dword [ebp - 0x524]
mov dword [ebp - 0x520], ecx
cmp dword [ebp - 0x520], 0
je 0x50fdae
push 1
mov ecx, dword [ebp - 0x520]
mov edx, dword [ebp - 0x520]
mov eax, dword [edx]
call dword [eax + 4]
mov dword [ebp - 0x5a0], eax
jmp 0x50fdb8
mov dword [ebp - 0x5a0], 0
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x52c], eax
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x52c], 0
je 0x50fdf9
push 0
push 0
push 0xffff
push 0xff
mov ecx, dword [ebp - 0x52c]
call fcn.0050eb90
mov dword [ebp - 0x5a4], eax
jmp 0x50fe03
mov dword [ebp - 0x5a4], 0
mov ecx, dword [ebp - 0x5a4]
mov dword [ebp - 0x528], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x528]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x34], 2
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x24], 1
mov eax, dword [ebp - 0x1c]
jmp 0x5104a7
mov ecx, dword [ebp - 0x18]
call fcn.005091d4
cmp eax, 2
jne 0x50ff0e
cmp dword [ebp - 0x20], 0
je 0x50fe95
mov edx, dword [ebp + 0x34]
mov dword [ebp - 0x534], edx
mov eax, dword [ebp - 0x534]
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0
je 0x50fe8b
push 1
mov ecx, dword [ebp - 0x530]
mov edx, dword [ebp - 0x530]
mov eax, dword [edx]
call dword [eax + 4]
mov dword [ebp - 0x5a8], eax
jmp 0x50fe95
mov dword [ebp - 0x5a8], 0
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x53c], eax
mov dword [ebp - 4], 0xb
cmp dword [ebp - 0x53c], 0
je 0x50fed6
push 0
push 0
push 0xffff
push 0xff
mov ecx, dword [ebp - 0x53c]
call fcn.0050eb90
mov dword [ebp - 0x5ac], eax
jmp 0x50fee0
mov dword [ebp - 0x5ac], 0
mov ecx, dword [ebp - 0x5ac]
mov dword [ebp - 0x538], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x538]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x34], 2
mov eax, dword [ebp - 0x1c]
jmp 0x5104a7
cmp dword [ebp - 0x30], 0
je 0x50ffbc
cmp dword [ebp - 0x14], 0
je 0x50ffbc
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x544], eax
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x544], 0
je 0x50ff65
push 0
push 0
mov cx, word [ebp + 0x28]
push ecx
mov edx, dword [ebp - 0x18]
mov al, byte [edx + 0x28]
push eax
mov ecx, dword [ebp - 0x544]
call fcn.0050eb90
mov dword [ebp - 0x5b0], eax
jmp 0x50ff6f
mov dword [ebp - 0x5b0], 0
mov ecx, dword [ebp - 0x5b0]
mov dword [ebp - 0x540], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x540]
mov dword [ebp - 0x1c], edx
push 0
push 0x43
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0
mov ecx, dword [ebp - 0x1c]
call fcn.0050ef0c
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0xc], 1
jmp 0x510172
cmp dword [ebp + 0x30], 0
je 0x5100c8
cmp dword [ebp + 0x38], 0
jne 0x51002d
push 0x1c
call fcn.00403600
mov dword [ebp - 0x54c], eax
mov dword [ebp - 4], 0xd
cmp dword [ebp - 0x54c], 0
je 0x50fffe
push 0xa
mov ecx, dword [ebp - 0x54c]
call fcn.004cd9d0
mov dword [ebp - 0x5b4], eax
jmp 0x510008
mov dword [ebp - 0x5b4], 0
mov eax, dword [ebp - 0x5b4]
mov dword [ebp - 0x548], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x548]
mov dword [ebp + 0x38], ecx
mov dword [ebp - 0x20], 1
jmp 0x510034
mov dword [ebp - 0x20], 0
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x554], eax
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x554], 0
je 0x51007b
mov edx, dword [ebp - 0x20]
push edx
mov eax, dword [ebp + 0x38]
push eax
mov cx, word [ebp + 0x28]
push ecx
mov edx, dword [ebp - 0x18]
mov al, byte [edx + 0x28]
push eax
mov ecx, dword [ebp - 0x554]
call fcn.0050ec8a
mov dword [ebp - 0x5b8], eax
jmp 0x510085
mov dword [ebp - 0x5b8], 0
mov ecx, dword [ebp - 0x5b8]
mov dword [ebp - 0x550], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x550]
mov dword [ebp - 0x1c], edx
push 1
push 0x43
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0
mov ecx, dword [ebp - 0x1c]
call fcn.0050ef0c
jmp 0x510172
cmp dword [ebp + 0x34], 0
jne 0x5100e3
push 0
push 0
push str.Internal_error:_pFile__NULL
call sub.MFC42.DLL_AfxMessageBox
xor eax, eax
jmp 0x5104a7
push 0x5c
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x55c], eax
mov dword [ebp - 4], 0xf
cmp dword [ebp - 0x55c], 0
je 0x51012a
mov edx, dword [ebp - 0x20]
push edx
mov eax, dword [ebp + 0x34]
push eax
mov cx, word [ebp + 0x28]
push ecx
mov edx, dword [ebp - 0x18]
mov al, byte [edx + 0x28]
push eax
mov ecx, dword [ebp - 0x55c]
call fcn.0050eb90
mov dword [ebp - 0x5bc], eax
jmp 0x510134
mov dword [ebp - 0x5bc], 0
mov ecx, dword [ebp - 0x5bc]
mov dword [ebp - 0x558], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x558]
mov dword [ebp - 0x1c], edx
push 1
push 0x43
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0
mov ecx, dword [ebp - 0x1c]
call fcn.0050ef0c
xor edx, edx
cmp dword [ebp + 0x24], 0xffffffff
setne dl
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp - 0x570]
cmp dword [ecx + 0x88], 0
je 0x5101a4
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x570]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x54], ecx
jmp 0x5101ad
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov dword [edx + 0x54], eax
mov ecx, dword [ebp - 0x570]
cmp dword [ecx + 0x18], 0
je 0x5101ec
mov edx, dword [ebp - 0x18]
xor eax, eax
mov al, byte [edx + 0x28]
push eax
push 0x5f9880
lea ecx, [ebp - 0x4c0]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea edx, [ebp - 0x4c0]
push edx
mov ecx, dword [ebp - 0x570]
add ecx, 0xc
call fcn.00517721
mov eax, dword [ebp - 0x18]
movzx cx, byte [eax + 0x28]
push ecx
mov ecx, dword [ebp - 0x570]
add ecx, 0x390
call sub.MFC42.DLL_CMapWordToPtr::operator__
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov ax, word [ebp + 0x28]
push eax
mov ecx, dword [ebp - 0x570]
add ecx, 0x3ac
call sub.MFC42.DLL_CMapWordToPtr::operator__
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
mov edx, dword [ebp - 0x1c]
push edx
mov ecx, dword [ebp - 0x570]
mov eax, dword [ebp - 0x570]
mov edx, dword [eax]
call dword [edx + 0x90]
cmp dword [ebp - 0x30], 0
je 0x51024f
cmp dword [ebp - 0x14], 0
je 0x51024f
jmp 0x51034a
cmp dword [ebp - 0x30], 0
je 0x51026e
cmp dword [ebp + 8], 0x514
jne 0x510266
mov word [ebp - 0x2c], 5
jmp 0x51026c
mov word [ebp - 0x2c], 4
jmp 0x510274
mov word [ebp - 0x2c], 3
cmp dword [ebp + 0x30], 0
je 0x5102a5
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x38]
push ecx
mov dx, word [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x18]
mov cl, byte [eax + 0x28]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x570]
mov ecx, dword [eax + 0x3cc]
call fcn.00517d8f
jmp 0x5102db
mov ecx, dword [ebp - 0x570]
mov dl, byte [ecx + 0x388]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x34]
push ecx
mov dx, word [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x18]
mov cl, byte [eax + 0x28]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x570]
mov ecx, dword [eax + 0x3cc]
call fcn.00517ce1
mov cx, word [ebp + 0x2c]
push ecx
push 0x2710
mov edx, dword [ebp - 0x18]
mov al, byte [edx + 0x28]
push eax
mov ecx, dword [ebp - 0x570]
call fcn.005073d9
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x510307
xor eax, eax
jmp 0x5104a7
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x564], ecx
mov edx, dword [ebp - 0x564]
mov dword [ebp - 0x560], edx
cmp dword [ebp - 0x560], 0
je 0x510340
push 1
mov ecx, dword [ebp - 0x560]
mov eax, dword [ebp - 0x560]
mov edx, dword [eax]
call dword [edx + 4]
mov dword [ebp - 0x5c0], eax
jmp 0x51034a
mov dword [ebp - 0x5c0], 0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x56c], eax
mov ecx, dword [ebp - 0x56c]
mov dword [ebp - 0x568], ecx
cmp dword [ebp - 0x568], 0
je 0x510383
push 1
mov ecx, dword [ebp - 0x568]
mov edx, dword [ebp - 0x568]
mov eax, dword [edx]
call dword [eax + 4]
mov dword [ebp - 0x5c4], eax
jmp 0x51038d
mov dword [ebp - 0x5c4], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x34], 0
cmp dword [ebp + 0x24], 0xffffffff
je 0x5104a4
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x14], 0
jne 0x51049f
mov eax, dword [ebp - 0x570]
cmp dword [eax + 0x38c], 0
jne 0x51049f
mov ecx, dword [ebp - 0x570]
cmp dword [ecx + 0x384], 0
je 0x5103e2
int3
push 0
push 0
push 0
lea edx, [ebp - 0x4dc]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
cmp dword [ebp - 0x4d8], 0x12
jne 0x51040d
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
xor eax, eax
jmp 0x5104a7
cmp dword [ebp - 0x4d8], 0x112
jne 0x510451
mov eax, dword [ebp - 0x4d4]
and eax, 0xfff0
cmp eax, 0xf060
jne 0x510451
mov ecx, dword [ebp - 0x4d0]
push ecx
mov edx, dword [ebp - 0x4d4]
push edx
mov eax, dword [ebp - 0x4d8]
push eax
mov ecx, dword [ebp - 0x4dc]
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
xor eax, eax
jmp 0x5104a7
lea edx, [ebp - 0x4dc]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x4dc]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
cmp dword [ebp + 0x24], 0
je 0x51049a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x30]
add edx, dword [ebp + 0x24]
cmp edx, eax
jae 0x51049a
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x34], 4
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x24], 1
jmp 0x51049f
jmp 0x5103a1
mov eax, dword [ebp - 0x1c]
jmp 0x5104a7
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34