Function at 0x4098d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x416e83
mov eax, dword fs:[0]
push eax
mov eax, 0x1110
call fcn.004142a0
mov eax, dword [0x4262b8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x1038], eax
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1050], edi
test edi, edi
jne 0x40991d
xor eax, eax
jmp 0x40ab62
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0x1018], ecx
test ecx, ecx
je 0x409916
mov eax, dword [eax + 0x25c]
mov edx, ecx
test eax, eax
cmovne edx, eax
lea eax, [ecx + 0x174]
mov ecx, eax
mov dword [ebp - 0x1044], edx
mov dword [ebp - 0x1014], eax
call dword [sym.imp.fscore.dll_public:_class_APrintOptions____thiscall_ADocument::getPrintOptions_void_]
mov dword [ebp - 0x1028], eax
cmp dword [eax + 0x34], 0
je 0x40996a
mov eax, 1
jmp 0x40ab62
call dword [sym.imp.fscore.dll_public:_static_class_ADocView____cdecl_ADocView::GetActiveView_void_]
test eax, eax
jne 0x40997c
mov dword [ebp - 0x1040], eax
jmp 0x40998a
mov ecx, eax
call dword [sym.imp.fscore.dll_public:_class_ASelection____thiscall_ADocView::getSelection_void_]
mov dword [ebp - 0x1040], eax
push ecx
mov ecx, esp
push str.AEPSExportFilter
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_char_const__]
call dword [sym.imp.fscore.dll_public:_static_class_AExportFilter____cdecl_AExportFilter::getFilterByName_class_AString_]
mov esi, eax
add esp, 4
test esi, esi
je 0x409916
lea ecx, [ebp - 0x104c]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFilePath::constructor_void_]
lea ecx, [ebp - 0x104c]
mov dword [ebp - 4], 0
call dword [sym.imp.FSUTIL.dll_public:_int___thiscall_AFilePath::makeTempPath_void_]
mov ecx, dword [ebp - 0x1028]
cmp dword [ecx + 4], 1
je 0x4099e0
cmp dword [ecx + 0x30], 0
jne 0x4099e0
xor edx, edx
jmp 0x4099e5
mov edx, 1
mov eax, dword [esi + 8]
mov dword [ebp - 0x1020], eax
xor eax, eax
mov dword [esi + 8], 0
cmp dword [ecx + 0x3c], eax
mov dword [ebp - 0x1064], edx
sete al
mov edi, dword [ebp - 0x1028]
lea eax, [eax*4 + 0x1002]
mov ecx, eax
or ecx, 8
test edx, edx
mov edx, dword [ebp - 0x1028]
cmove ecx, eax
mov eax, ecx
or eax, 0x10
cmp dword [edx + 4], 1
cmovne eax, ecx
mov ecx, eax
or ecx, 0x20
cmp dword [edx + 0x4c], 0
cmove ecx, eax
mov eax, ecx
or eax, 0x100
cmp dword [edx + 0x50], 0
cmove eax, ecx
mov ecx, eax
or ecx, 0x200
cmp dword [edx + 0x54], 0
cmove ecx, eax
mov eax, dword [ebp - 0x1028]
mov edx, ecx
or edx, 0x400
cmp dword [eax + 0x58], 0
cmove edx, ecx
mov ecx, dword [esi + 0x20]
mov eax, ecx
and ecx, 0xffffc8c0
and eax, 0x373f
mov dword [ebp - 0x101c], eax
mov eax, edx
or eax, 0x2000
cmp dword [edi + 0x70], 0
cmovne eax, edx
or eax, ecx
lea ecx, [ebp - 0x104c]
mov dword [esi + 0x20], eax
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x3c]
call eax
mov ecx, edi
mov dword [ebp - 0x1030], eax
mov edi, dword [ebp - 0x1050]
cmp dword [ecx + 0x40], 0
je 0x409ad6
mov ecx, dword [ebp - 0x1038]
cmp dword [ecx + 0x25c], 0
jne 0x409ad6
push dword [ebp - 0x1040]
mov edx, dword [esi]
mov ecx, esi
push eax
call dword [edx + 0x48]
jmp 0x409af7
mov eax, dword [ebp - 0x1044]
mov ecx, eax
mov edx, dword [esi]
add eax, 0x174
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push dword [ebp - 0x1030]
mov ecx, esi
call dword [edx + 0x4c]
mov ecx, dword [ebp - 0x1030]
test ecx, ecx
je 0x409b08
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp - 0x101c]
and eax, 0xffffc8c0
or ecx, eax
mov eax, dword [ebp - 0x1020]
mov dword [esi + 8], eax
lea eax, [ebp - 0x10a4]
mov dword [esi + 0x20], ecx
lea ecx, [ebp - 0x104c]
push eax
call dword [sym.imp.FSUTIL.dll_public:_class_AString___thiscall_AFilePath::GetFullPath_void_]
push 0x41b89c
mov ecx, eax
mov byte [ebp - 4], 1
call dword [sym.imp.FSUTIL.dll_public:_char_const____thiscall_AString::operator_char_const__void_const]
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
mov byte [ebp - 4], 0
mov esi, eax
lea ecx, [ebp - 0x10a4]
mov dword [ebp - 0x1034], esi
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
test esi, esi
je 0x40ab54
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x58
push edi
call esi
push 0x5a
push edi
mov dword [ebp - 0x1038], eax
call esi
push 8
push edi
mov dword [ebp - 0x1030], eax
call esi
push 0xa
push edi
mov dword [ebp - 0x101c], eax
call esi
mov dword [ebp - 0x106c], eax
xor esi, esi
lea eax, [ebp - 0x1060]
mov dword [ebp - 0x1020], esi
push eax
push esi
push esi
push 0xd
push edi
call dword [sym.imp.GDI32.dll_Escape]
lea eax, [ebp - 0x10a0]
push eax
push esi
push esi
push 0xc
push edi
call dword [sym.imp.GDI32.dll_Escape]
mov eax, dword [ebp - 0x1028]
mov ecx, dword [ebp - 0x109c]
mov dword [ebp - 0x103c], ecx
cmp dword [eax + 0x44], esi
mov eax, dword [ebp - 0x10a0]
mov dword [ebp - 0x102c], eax
je 0x409c27
mov esi, dword [ebp - 0x1060]
sub eax, esi
mov edx, dword [ebp - 0x105c]
sub ecx, edx
sub eax, dword [ebp - 0x101c]
sub ecx, dword [ebp - 0x106c]
cmp esi, eax
cmovl esi, eax
cmp ecx, edx
cmovge edx, ecx
mov ecx, dword [ebp - 0x103c]
mov dword [ebp - 0x1020], edx
jmp 0x409c29
xor edx, edx
lea eax, [esi + esi]
sub dword [ebp - 0x102c], eax
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebp - 0x103c], ecx
lea ecx, [ebp - 0x1058]
call dword [sym.imp.mfc140.dll_Ordinal_316]
mov eax, dword [ebp - 0x1018]
lea ecx, [ebp - 0x1058]
xorps xmm0, xmm0
mov byte [ebp - 4], 2
add eax, 0x20
mov dword [ebp - 0x10cc], 0
movups xmmword [ebp - 0x10dc], xmm0
push eax
mov dword [ebp - 0x10dc], 0x14
call dword [sym.imp.mfc140.dll_Ordinal_1526]
lea ecx, [ebp - 0x1058]
call dword [sym.imp.mfc140.dll_Ordinal_1661]
mov dword [ebp - 0x10d8], eax
lea eax, [ebp - 0x10dc]
push eax
push edi
call dword [sym.imp.GDI32.dll_StartDocA]
cmp eax, 0xffffffff
jne 0x409cbc
push dword [ebp - 0x1034]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
xor esi, esi
jmp 0x40ab48
push 0
lea eax, [ebp - 0x1054]
mov dword [ebp - 0x1054], 0x21
push eax
push 4
push 8
push edi
call dword [sym.imp.GDI32.dll_Escape]
test eax, eax
jle 0x409cfc
push 0
lea eax, [ebp - 0x1054]
mov dword [ebp - 0x1054], 1
push eax
push 4
push 0x21
push edi
call dword [sym.imp.GDI32.dll_Escape]
mov eax, dword [ebp - 0x1028]
mov dword [ebp - 0x101c], 0
cmp dword [eax + 0x38], 0
je 0x409e7b
mov ecx, dword [ebp - 0x1014]
call dword [sym.imp.fscore.dll_public:_class_AFileHeader____thiscall_ADocument::getFileHeader_void_]
mov dword [ebp - 0x1014], eax
test eax, eax
je 0x409e7b
lea ecx, [ebp - 0x1088]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFRect::constructor_void_]
movd xmm1, dword [ebp - 0x1038]
mov ecx, esi
sub ecx, dword [ebp - 0x1060]
cvtdq2pd xmm1, xmm1
mov eax, dword [ebp - 0x1020]
sub eax, dword [ebp - 0x105c]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movd xmm4, dword [ebp - 0x1030]
divsd xmm0, xmm1
movd xmm2, eax
mov eax, dword [ebp - 0x10a0]
sub eax, dword [ebp - 0x1060]
sub eax, esi
movsd qword [ebp - 0x1088], xmm0
cvtdq2pd xmm4, xmm4
movd xmm0, eax
mov eax, dword [ebp - 0x109c]
sub eax, dword [ebp - 0x105c]
sub eax, dword [ebp - 0x1020]
cvtdq2pd xmm0, xmm0
movsd xmm3, qword [0x41b948]
divsd xmm0, xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm2, xmm2
divsd xmm1, xmm4
divsd xmm2, xmm4
divsd xmm1, xmm3
movsd qword [ebp - 0x1078], xmm0
movaps xmm0, xmm1
movsd qword [ebp - 0x1080], xmm2
subsd xmm0, xmm2
movsd qword [ebp - 0x1070], xmm1
comisd xmm0, xmm3
jbe 0x409e00
movaps xmm1, xmm2
addsd xmm1, xmm3
movsd qword [ebp - 0x1070], xmm1
movaps xmm0, xmmword [0x41b970]
subsd xmm1, xmm2
sub esp, 0x10
lea ecx, [ebp - 0x1088]
mulsd xmm1, xmm4
movups xmmword [esp], xmm0
cvttsd2si eax, xmm1
mov dword [ebp - 0x101c], eax
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_ABaseRect_double_::InflateRect_double__double_]
lea ecx, [ebp - 0x1098]
call sub.mfc140.dll_Ordinal_450
push edi
lea ecx, [ebp - 0x1098]
mov byte [ebp - 4], 3
call sub.mfc140.dll_Ordinal_2518
mov ecx, dword [ebp - 0x1014]
lea eax, [ebp - 0x1088]
push eax
lea eax, [ebp - 0x1098]
push eax
call dword [sym.imp.fscore.dll_public:_void___thiscall_AFileHeader::PrintJobInfo_class_CDC___class_AFRect_const__]
lea ecx, [ebp - 0x1098]
call sub.mfc140.dll_Ordinal_3946
lea ecx, [ebp - 0x1098]
mov byte [ebp - 4], 2
call sub.mfc140.dll_Ordinal_1106
mov esi, dword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_setlocale]
push 0
push 4
call esi
add esp, 8
lea ecx, [ebp - 0x1068]
push eax
call dword [sym.imp.mfc140.dll_Ordinal_310]
push 0x41b8a0
push 4
mov byte [ebp - 4], 4
call esi
mov esi, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_void_]
lea ecx, [ebp - 0x1024]
add esp, 8
call esi
lea ecx, [ebp - 0x10a8]
mov byte [ebp - 4], 5
call esi
lea ecx, [ebp - 0x10c8]
mov byte [ebp - 4], 6
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFRect::constructor_void_]
lea ecx, [ebp - 0x10fc]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFRect::constructor_void_]
lea ecx, [ebp - 0x111c]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFRect::constructor_void_]
mov esi, dword [ebp - 0x1044]
lea eax, [ebp - 0x1078]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x1098], xmm0
lea ecx, [esi + 0x174]
call dword [sym.imp.fscore.dll_public:_class_AFPoint___thiscall_ADocument::getPageSize_void_]
push eax
lea eax, [ebp - 0x1098]
push eax
lea ecx, [ebp - 0x10fc]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_ABaseRect_double_::SetRect_class_ABasePoint_double__const___class_ABasePoint_double__const__]
mov edi, dword [ebp - 0x1028]
cmp dword [edi + 0x40], 0
je 0x409f41
mov ecx, dword [ebp - 0x1040]
lea eax, [ebp - 0x111c]
push eax
call dword [sym.imp.fscore.dll_public:_int___thiscall_ASelection::getBoundingBox_class_AFRect__const]
jmp 0x409f66
lea ecx, [esi + 0x174]
call dword [sym.imp.fscore.dll_public:_class_AObList____thiscall_ADocument::getDatabaseList_void_]
mov ecx, eax
call dword [sym.imp.FSUTIL.dll_public:_class_ARoot_____thiscall_AObList::GetHead_void_]
lea edx, [ebp - 0x111c]
push edx
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0x84]
cmp dword [edi + 4], 1
lea ecx, [ebp - 0x10c8]
jne 0x409f81
lea eax, [ebp - 0x10fc]
push eax
call dword [sym.imp.FSUTIL.dll_public:_class_AFRect____thiscall_AFRect::operator_class_AFRect_const__]
jmp 0x409fa7
lea eax, [ebp - 0x111c]
push eax
call dword [sym.imp.FSUTIL.dll_public:_class_AFRect____thiscall_AFRect::operator_class_AFRect_const__]
cmp dword [edi + 0x30], 0
je 0x409fa7
lea eax, [ebp - 0x10fc]
push eax
lea ecx, [ebp - 0x10c8]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_ABaseRect_double_::operator_class_ABaseRect_double__const__]
mov ecx, dword [ebp - 0x1038]
mov edx, dword [ebp - 0x1030]
cmp ecx, edx
jge 0x409fbd
movd xmm3, ecx
jmp 0x409fc1
movd xmm3, edx
cmp dword [edi + 4], 2
movsd xmm4, qword [ebp - 0x10b0]
movsd xmm5, qword [ebp - 0x10b8]
movsd xmm6, qword [ebp - 0x10c0]
movsd xmm7, qword [ebp - 0x10c8]
mov esi, dword [ebp - 0x103c]
cvtdq2pd xmm3, xmm3
divsd xmm3, qword [0x41b950]
jne 0x40a000
movsd xmm2, qword [edi + 8]
jmp 0x40a04e
movd xmm1, dword [ebp - 0x102c]
mov eax, esi
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
sub eax, dword [ebp - 0x101c]
cvtdq2pd xmm1, xmm1
movd xmm2, eax
divsd xmm1, xmm0
movaps xmm0, xmm5
subsd xmm0, xmm7
cvtdq2pd xmm2, xmm2
divsd xmm1, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
divsd xmm2, xmm0
movaps xmm0, xmm4
subsd xmm0, xmm6
divsd xmm2, xmm0
minsd xmm2, xmm1
mulsd xmm2, xmm3
mulsd xmm2, qword [0x41b958]
cvttsd2si eax, xmm2
movd xmm3, eax
cvtdq2pd xmm3, xmm3
mov eax, dword [edi + 0x5c]
divsd xmm3, qword [0x41b958]
movsd qword [ebp - 0x1090], xmm3
cmp eax, 9
ja case.default.0x40a082
jmp dword [eax*4 + 0x40ab80]
movaps xmm1, xmm3
movd xmm2, esi
mulsd xmm1, qword [0x41b950]
subsd xmm5, xmm7
movd xmm3, dword [ebp - 0x102c]
subsd xmm4, xmm6
cvtdq2pd xmm3, xmm3
cvtdq2pd xmm2, xmm2
mulsd xmm5, xmm1
mulsd xmm4, xmm1
subsd xmm3, xmm5
subsd xmm2, xmm4
mulsd xmm3, qword [0x419550]
mulsd xmm2, qword [0x419550]
movsd qword [ebp - 0x1070], xmm3
movsd qword [ebp - 0x1048], xmm2
jmp 0x40a332
movaps xmm0, xmm3
movd xmm1, esi
mulsd xmm0, qword [0x41b950]
subsd xmm4, xmm6
cvtdq2pd xmm1, xmm1
mulsd xmm4, xmm0
xorps xmm2, xmm2
subsd xmm1, xmm4
jmp 0x40a322
movaps xmm0, xmm3
movd xmm1, esi
mulsd xmm0, qword [0x41b950]
subsd xmm5, xmm7
movd xmm3, dword [ebp - 0x102c]
subsd xmm4, xmm6
cvtdq2pd xmm3, xmm3
mulsd xmm5, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm3, xmm5
mulsd xmm4, xmm0
mulsd xmm3, qword [0x419550]
subsd xmm1, xmm4
movsd qword [ebp - 0x1070], xmm3
jmp 0x40a32a
movd xmm2, dword [ebp - 0x102c]
subsd xmm5, xmm7
movaps xmm0, xmm3
movd xmm1, esi
mulsd xmm0, qword [0x41b950]
subsd xmm4, xmm6
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm1, xmm1
mulsd xmm5, xmm0
mulsd xmm4, xmm0
subsd xmm2, xmm5
subsd xmm1, xmm4
jmp 0x40a322
xorps xmm0, xmm0
movd xmm1, esi
movsd qword [ebp - 0x1070], xmm0
subsd xmm4, xmm6
movaps xmm0, xmm3
mulsd xmm0, qword [0x41b950]
cvtdq2pd xmm1, xmm1
mulsd xmm4, xmm0
subsd xmm1, xmm4
mulsd xmm1, qword [0x419550]
jmp 0x40a32a
movd xmm2, dword [ebp - 0x102c]
subsd xmm4, xmm6
movaps xmm0, xmm3
movd xmm1, esi
mulsd xmm0, qword [0x41b950]
subsd xmm5, xmm7
cvtdq2pd xmm1, xmm1
mulsd xmm4, xmm0
cvtdq2pd xmm2, xmm2
mulsd xmm5, xmm0
subsd xmm1, xmm4
mulsd xmm1, qword [0x419550]
subsd xmm2, xmm5
jmp 0x40a322
xorps xmm2, xmm2
movsd qword [ebp - 0x1070], xmm2
movsd qword [ebp - 0x1048], xmm2
jmp 0x40a332
movsd xmm0, qword [ebp - 0x1090]
subsd xmm5, xmm7
mulsd xmm0, qword [0x41b950]
movd xmm3, dword [ebp - 0x102c]
cvtdq2pd xmm3, xmm3
mulsd xmm5, xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x1048], xmm0
subsd xmm3, xmm5
mulsd xmm3, qword [0x419550]
movsd qword [ebp - 0x1070], xmm3
jmp 0x40a332
movd xmm2, dword [ebp - 0x102c]
subsd xmm5, xmm7
movaps xmm0, xmm3
mulsd xmm0, qword [0x41b950]
cvtdq2pd xmm2, xmm2
mulsd xmm5, xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x1048], xmm0
subsd xmm2, xmm5
movsd qword [ebp - 0x1070], xmm2
jmp 0x40a332
movaps xmm2, xmm3
xorps xmm0, xmm0
mulsd xmm2, qword [0x41b950]
movaps xmm3, xmm2
mulsd xmm2, xmm6
mulsd xmm3, xmm7
addsd xmm2, xmm0
addsd xmm3, xmm0
movsd qword [ebp - 0x1048], xmm2
movsd qword [ebp - 0x1070], xmm3
jmp 0x40a332
movaps xmm0, xmm3
movd xmm2, ecx
mulsd xmm0, qword [0x41b950]
subsd xmm4, xmm6
movd xmm1, esi
cvtdq2pd xmm2, xmm2
mulsd xmm4, xmm0
mulsd xmm2, qword [edi + 0x20]
movd xmm0, edx
cvtdq2pd xmm1, xmm1
addsd xmm2, qword [0x419548]
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm4
mulsd xmm0, qword [edi + 0x28]
subsd xmm1, xmm0
movsd qword [ebp - 0x1070], xmm2
movsd qword [ebp - 0x1048], xmm1
mov eax, dword [edi + 0x44]
test eax, eax
je 0x40a33d
xor edi, edi
jmp 0x40a345
mov edi, dword [ebp - 0x1060]
neg edi
test eax, eax
je 0x40a34d
xor esi, esi
jmp 0x40a355
mov esi, dword [ebp - 0x105c]
neg esi
test edi, edi
jne 0x40a361
test esi, esi
je 0x40a3ea
lea ecx, [ebp - 0x1040]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_void_]
push esi
push edi
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 7
push str._d__d_translate
push eax
call dword [sym.imp.FSUTIL.dll_public:_class_AString____cdecl_AString::Format_char_const__]
push 0x20
lea eax, [ebp - 0x1024]
push eax
lea eax, [ebp - 0x1018]
push eax
call dword [sym.imp.FSUTIL.dll_class_AString___cdecl_operator_class_AString_const___char_]
lea ecx, [ebp - 0x1040]
mov byte [ebp - 4], 8
push ecx
push eax
lea eax, [ebp - 0x1014]
push eax
call dword [sym.imp.FSUTIL.dll_class_AString___cdecl_operator_class_AString_const___class_AString_const__]
add esp, 0x28
push eax
lea ecx, [ebp - 0x1024]
mov byte [ebp - 4], 9
call dword [sym.imp.FSUTIL.dll_public:_class_AString_const____thiscall_AString::operator_class_AString_const__]
mov esi, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1014]
call esi
lea ecx, [ebp - 0x1018]
call esi
lea ecx, [ebp - 0x1040]
mov byte [ebp - 4], 6
call esi
cvttsd2si ecx, qword [ebp - 0x1048]
mov eax, dword [ebp - 0x101c]
cdq
sub eax, edx
mov esi, eax
sar esi, 1
cvttsd2si edi, qword [ebp - 0x1070]
sub esi, ecx
lea ecx, [ebp - 0x1020]
add esi, dword [ebp - 0x103c]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_void_]
lea eax, [ebp - 0x1020]
sub esp, 0x10
mov byte [ebp - 4], 0xa
movsd xmm1, qword [ebp - 0x1090]
movaps xmm0, xmm1
xorps xmm0, xmmword [0x41b960]
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
push esi
push edi
push str._d__d_translate__.4lf__.4lf_scale
push eax
call dword [sym.imp.FSUTIL.dll_public:_class_AString____cdecl_AString::Format_char_const__]
mov edi, dword [sym.imp.FSUTIL.dll_class_AString___cdecl_operator_class_AString_const___char_]
lea eax, [ebp - 0x1024]
push 0x20
push eax
lea eax, [ebp - 0x1018]
push eax
call edi
lea ecx, [ebp - 0x1020]
mov byte [ebp - 4], 0xb
push ecx
push eax
lea eax, [ebp - 0x1014]
push eax
call dword [sym.imp.FSUTIL.dll_class_AString___cdecl_operator_class_AString_const___class_AString_const__]
add esp, 0x38
mov esi, dword [sym.imp.FSUTIL.dll_public:_class_AString_const____thiscall_AString::operator_class_AString_const__]
lea ecx, [ebp - 0x1024]
push eax
mov byte [ebp - 4], 0xc
call esi
lea ecx, [ebp - 0x1014]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1018]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1020]
mov byte [ebp - 4], 6
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
mov eax, dword [ebp - 0x1028]
cmp dword [eax + 0x30], 0
je 0x40a5eb
movsd xmm0, qword [ebp - 0x10fc]
lea ecx, [ebp - 0x101c]
subsd xmm0, qword [ebp - 0x10c8]
movsd xmm3, qword [0x41b950]
mulsd xmm0, xmm3
cvttsd2si eax, xmm0
movsd xmm0, qword [ebp - 0x10f4]
subsd xmm0, qword [ebp - 0x10c0]
mov dword [ebp - 0x1018], eax
mulsd xmm0, xmm3
cvttsd2si eax, xmm0
movsd xmm0, qword [ebp - 0x10ec]
subsd xmm0, qword [ebp - 0x10c8]
mov dword [ebp - 0x1014], eax
mulsd xmm0, xmm3
cvttsd2si edi, xmm0
movsd xmm0, qword [ebp - 0x10e4]
subsd xmm0, qword [ebp - 0x10c0]
mulsd xmm0, xmm3
cvttsd2si esi, xmm0
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_void_]
mov eax, dword [ebp - 0x1014]
mov ecx, dword [ebp - 0x1018]
push eax
push edi
push esi
push edi
push esi
push ecx
push eax
push ecx
lea eax, [ebp - 0x101c]
mov byte [ebp - 4], 0xd
push str.newpath__d__d_moveto__d__d_lineto__d__d_lineto__d__d_lineto_closepath_stroke
push eax
call dword [sym.imp.FSUTIL.dll_public:_class_AString____cdecl_AString::Format_char_const__]
mov edi, dword [sym.imp.FSUTIL.dll_class_AString___cdecl_operator_class_AString_const___char_]
lea eax, [ebp - 0x1024]
push 0x20
push eax
lea eax, [ebp - 0x1018]
push eax
call edi
lea ecx, [ebp - 0x101c]
mov byte [ebp - 4], 0xe
push ecx
push eax
lea eax, [ebp - 0x1014]
push eax
call dword [sym.imp.FSUTIL.dll_class_AString___cdecl_operator_class_AString_const___class_AString_const__]
add esp, 0x40
mov esi, dword [sym.imp.FSUTIL.dll_public:_class_AString_const____thiscall_AString::operator_class_AString_const__]
lea ecx, [ebp - 0x1024]
push eax
mov byte [ebp - 4], 0xf
call esi
lea ecx, [ebp - 0x1014]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1018]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x101c]
mov byte [ebp - 4], 6
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
cmp dword [ebp - 0x1064], 0
jne 0x40a6c7
lea ecx, [ebp - 0x101c]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_void_]
movsd xmm0, qword [ebp - 0x1114]
subsd xmm0, qword [ebp - 0x10c0]
mov byte [ebp - 4], 0x10
subsd xmm0, qword [0x41b940]
mulsd xmm0, qword [0x41b950]
cvttsd2si eax, xmm0
movsd xmm0, qword [ebp - 0x111c]
subsd xmm0, qword [ebp - 0x10c8]
push eax
subsd xmm0, qword [0x41b940]
mulsd xmm0, qword [0x41b950]
cvttsd2si eax, xmm0
push eax
lea eax, [ebp - 0x101c]
push str._d__d_translate
push eax
call dword [sym.imp.FSUTIL.dll_public:_class_AString____cdecl_AString::Format_char_const__]
push 0x20
lea eax, [ebp - 0x1024]
push eax
lea eax, [ebp - 0x1018]
push eax
call edi
lea ecx, [ebp - 0x101c]
mov byte [ebp - 4], 0x11
push ecx
push eax
lea eax, [ebp - 0x1014]
push eax
call dword [sym.imp.FSUTIL.dll_class_AString___cdecl_operator_class_AString_const___class_AString_const__]
add esp, 0x28
push eax
lea ecx, [ebp - 0x1024]
mov byte [ebp - 4], 0x12
call esi
lea ecx, [ebp - 0x1014]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1018]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x101c]
mov byte [ebp - 4], 6
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1068]
call dword [sym.imp.mfc140.dll_Ordinal_1661]
push eax
push 4
call dword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_setlocale]
lea eax, [ebp - 0x1024]
push eax
lea eax, [ebp - 0x1018]
push 0x41b928
push eax
call dword [sym.imp.FSUTIL.dll_class_AString___cdecl_operator_char_const___class_AString_const__]
push 0xa
push eax
lea eax, [ebp - 0x1014]
mov byte [ebp - 4], 0x13
push eax
call edi
add esp, 0x20
push eax
lea ecx, [ebp - 0x1024]
mov byte [ebp - 4], 0x14
call esi
mov esi, dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1014]
call esi
lea ecx, [ebp - 0x1018]
mov byte [ebp - 4], 6
call esi
lea ecx, [ebp - 0x1024]
call dword [sym.imp.FSUTIL.dll_public:_char_const____thiscall_AString::operator_char_const__void_const]
lea edx, [ebp - 0x1010]
sub edx, eax
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [edx + eax - 1], cl
test cl, cl
jne 0x40a743
lea ecx, [ebp - 0x1010]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a760
mov esi, dword [ebp - 0x1050]
sub ecx, edx
push esi
lea eax, [ecx - 2]
movzx edi, ax
mov word [ebp - 0x1010], di
call dword [sym.imp.GDI32.dll_StartPage]
cmp eax, 0xffffffff
jne 0x40a79a
push esi
call dword [sym.imp.GDI32.dll_AbortDoc]
push dword [ebp - 0x1034]
jmp 0x40ab19
push 0
lea eax, [ebp - 0x1010]
push eax
movsx eax, di
push eax
push 0x13
push esi
call dword [sym.imp.GDI32.dll_Escape]
test eax, eax
jle 0x40a788
movd xmm0, dword [ebp - 0x1038]
mov eax, dword [ebp - 0x1028]
mov edx, dword [ebp - 0x102c]
mov ecx, edx
cvtdq2pd xmm0, xmm0
mov edi, dword [ebp - 0x1034]
movsd xmm1, qword [eax + 0x14]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
movd xmm0, dword [ebp - 0x1030]
cvtdq2pd xmm0, xmm0
sub ecx, eax
mov dword [ebp - 0x1030], edx
mov dword [ebp - 0x1050], ecx
mov ecx, dword [ebp - 0x103c]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
sub ecx, eax
xor eax, eax
mov dword [ebp - 0x1020], eax
mov dword [ebp - 0x1038], eax
mov eax, ecx
neg eax
mov dword [ebp - 0x1014], ecx
mov dword [ebp - 0x1018], eax
nop dword [eax]
push edi
push 0xffe
lea eax, [ebp - 0x100e]
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
movzx eax, ax
add esp, 0x10
test ax, ax
jle 0x40a893
push 0
lea ecx, [ebp - 0x1010]
mov word [ebp - 0x1010], ax
push ecx
cwde
push eax
push 0x13
push esi
call dword [sym.imp.GDI32.dll_Escape]
test eax, eax
jle 0x40ab11
push edi
push 0xffe
lea eax, [ebp - 0x100e]
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
movzx eax, ax
add esp, 0x10
test ax, ax
jg 0x40a850
push esi
call dword [sym.imp.GDI32.dll_EndPage]
cmp eax, 0xffffffff
je 0x40ab11
mov eax, dword [ebp - 0x1028]
cmp dword [eax + 0x10], 0
je 0x40aaa8
movsd xmm0, qword [ebp - 0x10b8]
subsd xmm0, qword [ebp - 0x10c8]
mov eax, dword [ebp - 0x1030]
movsd xmm2, qword [0x41b950]
movsd xmm3, qword [ebp - 0x1090]
mulsd xmm0, xmm2
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x40a94f
movsd xmm0, qword [ebp - 0x10b0]
subsd xmm0, qword [ebp - 0x10c0]
mov ecx, dword [ebp - 0x103c]
mulsd xmm0, xmm2
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm3
comisd xmm1, xmm0
ja 0x40aaa8
mov eax, dword [ebp - 0x102c]
add ecx, dword [ebp - 0x1014]
mov dword [ebp - 0x1030], eax
mov eax, dword [ebp - 0x1018]
add dword [ebp - 0x1038], eax
mov dword [ebp - 0x1020], 0
mov dword [ebp - 0x103c], ecx
jmp 0x40a961
inc dword [ebp - 0x1020]
add eax, dword [ebp - 0x1050]
mov dword [ebp - 0x1030], eax
push 0
push 0
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
push esi
call dword [sym.imp.GDI32.dll_StartPage]
cmp eax, 0xffffffff
je 0x40ab11
lea ecx, [ebp - 0x1034]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::constructor_void_]
mov eax, dword [ebp - 0x1020]
imul eax, dword [ebp - 0x1050]
push dword [ebp - 0x1038]
mov byte [ebp - 4], 0x15
neg eax
push eax
lea eax, [ebp - 0x1034]
push str.___d__d_translate_n
push eax
call dword [sym.imp.FSUTIL.dll_public:_class_AString____cdecl_AString::Format_char_const__]
add esp, 0x10
lea ecx, [ebp - 0x1034]
call dword [sym.imp.FSUTIL.dll_public:_char_const____thiscall_AString::operator_char_const__void_const]
lea edx, [ebp - 0x1010]
sub edx, eax
nop
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [edx + eax - 1], cl
test cl, cl
jne 0x40a9d0
lea ecx, [ebp - 0x1010]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a9e6
sub ecx, edx
push 0
lea eax, [ecx - 2]
movzx eax, ax
lea ecx, [ebp - 0x1010]
push ecx
mov word [ebp - 0x1010], ax
cwde
push eax
push 0x13
push esi
call dword [sym.imp.GDI32.dll_Escape]
test eax, eax
jle 0x40aa89
lea ecx, [ebp - 0x1024]
call dword [sym.imp.FSUTIL.dll_public:_char_const____thiscall_AString::operator_char_const__void_const]
lea edx, [ebp - 0x1010]
sub edx, eax
nop dword [eax + eax]
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [edx + eax - 1], cl
test cl, cl
jne 0x40aa30
lea ecx, [ebp - 0x1010]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40aa46
sub ecx, edx
push 0
lea eax, [ecx - 2]
movzx eax, ax
lea ecx, [ebp - 0x1010]
push ecx
mov word [ebp - 0x1010], ax
cwde
push eax
push 0x13
push esi
call dword [sym.imp.GDI32.dll_Escape]
test eax, eax
jle 0x40aa89
lea ecx, [ebp - 0x1034]
mov byte [ebp - 4], 6
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
jmp 0x40a830
push esi
call dword [sym.imp.GDI32.dll_AbortDoc]
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
lea ecx, [ebp - 0x1034]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
jmp 0x40ab22
push esi
call dword [sym.imp.GDI32.dll_EndDoc]
push edi
mov esi, eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
lea ecx, [ebp - 0x104c]
call dword [sym.imp.FSUTIL.dll_public:_int___thiscall_AFilePath::exists_void_const]
test eax, eax
je 0x40ab00
lea eax, [ebp - 0x1018]
push eax
lea ecx, [ebp - 0x104c]
call dword [sym.imp.FSUTIL.dll_public:_class_AString___thiscall_AFilePath::GetFullPath_void_]
mov ecx, eax
mov byte [ebp - 4], 0x16
call dword [sym.imp.FSUTIL.dll_public:_char_const____thiscall_AString::operator_char_const__void_const]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
add esp, 4
lea ecx, [ebp - 0x1018]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
xor eax, eax
test esi, esi
setg al
mov dword [ebp - 0x1014], eax
mov esi, eax
jmp 0x40ab24
push esi
call dword [sym.imp.GDI32.dll_AbortDoc]
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
xor esi, esi
lea ecx, [ebp - 0x10a8]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1024]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AString::destructor_void_]
lea ecx, [ebp - 0x1068]
call dword [sym.imp.mfc140.dll_Ordinal_1044]
lea ecx, [ebp - 0x1058]
call dword [sym.imp.mfc140.dll_Ordinal_1044]
lea ecx, [ebp - 0x104c]
call dword [sym.imp.FSUTIL.dll_public:_void___thiscall_AFilePath::destructor_void_]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00413da6
mov esp, ebp
pop ebp
ret 4