Function at 0x497ab0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54d11f
mov eax, dword fs:[0]
push eax
sub esp, 0xe80
mov eax, dword [0x5abcc4]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xe3c], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0x4b0], 0
xor eax, eax
cmp dword [ebp + 0x18], 0
sete al
mov byte [ebp - 0x49d], al
mov ecx, dword [ebp - 0xe3c]
mov edx, dword [ebp - 0xe3c]
mov eax, dword [ecx + 0x28]
sub eax, dword [edx + 0x30]
add eax, 1
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp + 0x24]
call fcn.00409d40
lea ecx, [ebp - 0x49c]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x20]
call edx
mov eax, dword [ebp - 0x4ac]
mov dword [ebp - 0xe40], eax
mov ecx, dword [ebp - 0xe40]
sub ecx, 1
mov dword [ebp - 0xe40], ecx
cmp dword [ebp - 0xe40], 6
ja case.default.0x497b6d
mov edx, dword [ebp - 0xe40]
jmp dword [edx*4 + 0x498624]
push 0x180
call fcn.004f6b0c
add esp, 4
mov dword [ebp - 0xddc], eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0xddc], 0
je 0x497ba7
mov ecx, dword [ebp - 0xddc]
call fcn.004c44c0
mov dword [ebp - 0xe44], eax
jmp 0x497bb1
mov dword [ebp - 0xe44], 0
mov eax, dword [ebp - 0xe44]
mov dword [ebp - 0xdd8], eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xdd8]
mov dword [ebp - 0x4b0], ecx
mov edx, dword [ebp - 0xe3c]
movzx eax, byte [edx + 0x5e]
push eax
mov ecx, dword [ebp - 0x4b0]
call fcn.00445090
mov ecx, dword [ebp - 0x4b0]
mov dword [ebp - 0x4a8], ecx
jmp case.default.0x497b6d
push 0x180
call fcn.004f6b0c
add esp, 4
mov dword [ebp - 0xde4], eax
mov byte [ebp - 4], 2
cmp dword [ebp - 0xde4], 0
je 0x497c27
mov ecx, dword [ebp - 0xde4]
call fcn.004c44c0
mov dword [ebp - 0xe48], eax
jmp 0x497c31
mov dword [ebp - 0xe48], 0
mov edx, dword [ebp - 0xe48]
mov dword [ebp - 0xde0], edx
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xde0]
mov dword [ebp - 0x4b0], eax
push 1
mov ecx, dword [ebp - 0x4b0]
call fcn.004378c0
mov ecx, dword [ebp - 0xe3c]
movzx edx, byte [ecx + 0x5e]
push edx
mov ecx, dword [ebp - 0x4b0]
call fcn.00445090
mov eax, dword [ebp - 0x4b0]
mov dword [ebp - 0x4a8], eax
jmp case.default.0x497b6d
push 0x78
call fcn.004f6b0c
add esp, 4
mov dword [ebp - 0xdec], eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0xdec], 0
je 0x497cb1
mov ecx, dword [ebp - 0xdec]
call fcn.004c1070
mov dword [ebp - 0xe4c], eax
jmp 0x497cbb
mov dword [ebp - 0xe4c], 0
mov ecx, dword [ebp - 0xe4c]
mov dword [ebp - 0xde8], ecx
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0xde8]
mov dword [ebp - 0x4b4], edx
mov eax, dword [ebp - 0x4b4]
mov dword [ebp - 0x4a8], eax
jmp case.default.0x497b6d
movzx ecx, byte [ebp - 0x49d]
test ecx, ecx
je 0x497e33
push 0x94
call fcn.004f6b0c
add esp, 4
mov dword [ebp - 0xdf4], eax
mov byte [ebp - 4], 4
cmp dword [ebp - 0xdf4], 0
je 0x497d35
mov ecx, 0x5b3770
call fcn.004a7b60
push eax
mov ecx, dword [ebp - 0xdf4]
call fcn.004aaeb0
mov dword [ebp - 0xe50], eax
jmp 0x497d3f
mov dword [ebp - 0xe50], 0
mov edx, dword [ebp - 0xe50]
mov dword [ebp - 0xdf0], edx
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xdf0]
mov dword [ebp + 0x18], eax
fild dword [ebp + 0x10]
sub esp, 8
fstp qword [esp]
fild dword [ebp + 0xc]
sub esp, 8
fstp qword [esp]
mov ecx, dword [ebp + 0x18]
call fcn.00456080
mov ecx, eax
call fcn.004378e0
mov ecx, eax
call fcn.004a9e80
mov ecx, dword [ebp - 0xe3c]
movzx edx, byte [ecx + 0x5f]
test edx, edx
je 0x497e33
lea ecx, [ebp - 0x8bc]
call fcn.004096a0
mov byte [ebp - 4], 5
lea eax, [ebp - 0x49c]
push eax
lea ecx, [ebp - 0xdf8]
push ecx
call fcn.004baab0
add esp, 8
mov dword [ebp - 0xe54], eax
mov edx, dword [ebp - 0xe54]
mov dword [ebp - 0xe58], edx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0xe58]
push eax
lea ecx, [ebp - 0x8bc]
call fcn.00409760
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xdf8]
call fcn.00408fa0
mov ecx, dword [ebp + 0x18]
call fcn.00445180
push eax
mov ecx, dword [ebp + 0x18]
call fcn.00456080
mov ecx, eax
call fcn.004b30c0
mov ecx, eax
call fcn.004aa470
mov dword [ebp + 0x1c], eax
lea ecx, [ebp - 0x8bc]
call fcn.004a7b60
push eax
mov ecx, dword [ebp + 0x1c]
call fcn.00445110
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x8bc]
call fcn.00408fa0
mov ecx, dword [ebp + 0x18]
call fcn.00445180
push eax
mov ecx, dword [ebp + 0x18]
call fcn.00456080
mov ecx, eax
call fcn.004378e0
mov ecx, eax
call fcn.004a9de0
mov dword [ebp - 0x8b8], eax
fild dword [ebp + 0x10]
sub esp, 8
fstp qword [esp]
fild dword [ebp + 0xc]
sub esp, 8
fstp qword [esp]
mov ecx, dword [ebp - 0x8b8]
call fcn.004a97d0
mov ecx, dword [ebp - 0x8b8]
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.004ab620
mov edx, dword [ebp - 0xe3c]
movzx eax, byte [edx + 0x5f]
test eax, eax
je 0x497f0d
mov ecx, dword [ebp + 0x18]
call fcn.00445180
push eax
mov ecx, dword [ebp + 0x1c]
call fcn.004aa470
mov dword [ebp - 0x8c0], eax
sub esp, 8
fldz
fstp qword [esp]
sub esp, 8
fldz
fstp qword [esp]
sub esp, 8
fldz
fstp qword [esp]
sub esp, 8
fldz
fstp qword [esp]
push 0x573460
mov ecx, dword [ebp - 0x8b8]
push ecx
mov ecx, dword [ebp - 0x8c0]
call fcn.004aa540
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x94]
call edx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x98]
call eax
push eax
mov ecx, dword [ebp - 0x8c0]
call fcn.00445110
mov ecx, dword [ebp + 0x18]
call fcn.00445180
push eax
mov ecx, dword [ebp - 0x8b8]
call fcn.004a8a20
mov dword [ebp - 0x10], eax
push 0xb0
call fcn.004f6b0c
add esp, 4
mov dword [ebp - 0xe00], eax
mov byte [ebp - 4], 7
cmp dword [ebp - 0xe00], 0
je 0x497f57
mov ecx, dword [ebp - 0xe00]
call fcn.004c2550
mov dword [ebp - 0xe5c], eax
jmp 0x497f61
mov dword [ebp - 0xe5c], 0
mov ecx, dword [ebp - 0xe5c]
mov dword [ebp - 0xdfc], ecx
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0xdfc]
mov dword [ebp - 0x4a4], edx
mov eax, dword [ebp - 0x4a4]
mov dword [ebp - 0x4a8], eax
mov ecx, dword [ebp - 0xe3c]
movzx edx, byte [ecx + 0x5e]
push edx
mov ecx, dword [ebp - 0x4a4]
call fcn.004450f0
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x8b8]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov ecx, dword [ebp - 0x4a8]
call fcn.00437900
sub esp, 8
fldz
fstp qword [esp]
sub esp, 8
fldz
fstp qword [esp]
mov ecx, dword [ebp - 0x4a8]
call fcn.00437940
push 1
sub esp, 8
fldz
fstp qword [esp]
mov ecx, dword [ebp - 0x10]
call fcn.004a50d0
jmp case.default.0x497b6d
push 0x88
call fcn.004f6b0c
add esp, 4
mov dword [ebp - 0xe08], eax
mov byte [ebp - 4], 8
cmp dword [ebp - 0xe08], 0
je 0x49801e
mov ecx, dword [ebp - 0xe08]
call fcn.004beeb0
mov dword [ebp - 0xe60], eax
jmp 0x498028
mov dword [ebp - 0xe60], 0
mov eax, dword [ebp - 0xe60]
mov dword [ebp - 0xe04], eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xe04]
mov dword [ebp - 0x4a8], ecx
jmp case.default.0x497b6d
push 0x60
call fcn.004f6b0c
add esp, 4
mov dword [ebp - 0xe10], eax
mov byte [ebp - 4], 9
cmp dword [ebp - 0xe10], 0
je 0x498076
mov ecx, dword [ebp - 0xe10]
call fcn.004c0220
mov dword [ebp - 0xe64], eax
jmp 0x498080
mov dword [ebp - 0xe64], 0
mov edx, dword [ebp - 0xe64]
mov dword [ebp - 0xe0c], edx
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xe0c]
mov dword [ebp - 0x4a8], eax
mov ecx, dword [ebp - 0x4a8]
mov byte [ecx + 0x39], 0
mov edx, dword [ebp - 0xe3c]
mov eax, dword [edx + 0x90]
push eax
mov ecx, dword [ebp - 0x4a8]
call dword [sym.imp.gsio.dll_public:_void___thiscall_CDwgExport::SetColorType_int_]
mov ecx, dword [ebp - 0x4a8]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x58]
call edx
mov eax, dword [ebp - 0xe3c]
movzx ecx, word [eax + 0x90]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x88]
call edx
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x4981b3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x94]
call eax
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x98]
call eax
push eax
lea ecx, [ebp - 0xcc4]
push ecx
call fcn.00526960
add esp, 8
lea edx, [ebp - 0xcc4]
push edx
lea eax, [ebp + 0x20]
push eax
call fcn.004ba9b0
add esp, 8
mov ecx, dword [ebp - 0xe3c]
mov edx, dword [ebp - 0xe3c]
mov eax, dword [ecx + 0x28]
cmp eax, dword [edx + 0x34]
je 0x4981b3
push ecx
mov ecx, esp
mov dword [ebp - 0xe14], esp
lea edx, [ebp + 0x20]
push edx
call fcn.004096c0
mov dword [ebp - 0xe68], eax
lea eax, [ebp - 0xe18]
push eax
mov ecx, dword [ebp - 0xe3c]
call fcn.00495620
mov dword [ebp - 0xe6c], eax
mov ecx, dword [ebp - 0xe6c]
mov dword [ebp - 0xe70], ecx
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0xe70]
push edx
lea ecx, [ebp + 0x20]
call fcn.00409760
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xe18]
call fcn.00408fa0
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp - 0xe3c]
fld qword [ecx + 0x70]
fstp qword [eax + 0x30]
lea ecx, [ebp + 0x20]
call fcn.004a7b60
push eax
lea edx, [ebp - 0x8b4]
push edx
call fcn.00526960
add esp, 8
mov eax, dword [ebp - 0xe3c]
mov ecx, dword [eax + 0x48]
push ecx
mov ecx, dword [ebp - 0x4a8]
call dword [sym.imp.gsio.dll_public:_void___thiscall_CDwgExport::SetDpi_int_]
cmp dword [ebp - 0x4b0], 0
je 0x498238
mov edx, dword [ebp - 0xe3c]
mov eax, dword [edx + 0x98]
push eax
mov ecx, dword [ebp - 0xe3c]
sub esp, 8
fld qword [ecx + 0xa8]
fstp qword [esp]
mov edx, dword [ebp - 0xe3c]
sub esp, 8
fld qword [edx + 0xa0]
fstp qword [esp]
mov ecx, dword [ebp - 0x4b0]
call fcn.004450b0
mov eax, dword [ebp + 8]
push eax
fild dword [ebp + 0x10]
sub esp, 8
fstp qword [esp]
fild dword [ebp + 0xc]
sub esp, 8
fstp qword [esp]
push 0x573464
lea ecx, [ebp - 0x8b4]
push ecx
lea edx, [ebp - 0x49c]
push edx
mov eax, dword [ebp - 0x4a8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x4a8]
mov eax, dword [edx + 0xc]
call eax
movzx ecx, al
test ecx, ecx
je 0x4984f4
push 1
mov ecx, dword [ebp - 0x4a8]
call dword [sym.imp.gsio.dll_public:_void___thiscall_CDwgExport::SetOpt_bool_]
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x84]
call edx
mov eax, dword [ebp - 0xe3c]
movzx ecx, byte [eax + 0x7c]
test ecx, ecx
je 0x49830a
lea edx, [ebp - 0xdd4]
push edx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x20]
call eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x94]
call eax
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x98]
call eax
push eax
lea ecx, [ebp - 0xdd4]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x4a8]
push ecx
mov edx, dword [ebp - 0xe3c]
mov eax, dword [edx + 0x78]
push eax
call dword [sym.imp.GsUI.dll_drawWaterMark]
add esp, 0x18
mov byte [ebp - 0xcc5], 1
call fcn.00417620
movzx ecx, al
test ecx, ecx
je 0x498333
lea edx, [ebp - 0x9c]
push edx
call fcn.00437640
add esp, 4
movzx eax, al
test eax, eax
jne 0x498359
sub esp, 8
fld1
fstp qword [esp]
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x4a8]
push eax
call dword [sym.imp.GsUI.dll_beginExportObject]
add esp, 0x14
mov byte [ebp - 0xcc5], al
push 1
mov ecx, dword [ebp - 0x4a8]
call dword [sym.imp.gsio.dll_public:_void___thiscall_CDwgExport::SetOpt_bool_]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x94]
call eax
test eax, eax
jle 0x4983b6
mov ecx, dword [ebp - 0xe3c]
movzx edx, byte [ecx + 0x82]
test edx, edx
je 0x498396
fld1
fstp qword [ebp - 0xe78]
jmp 0x4983a8
mov eax, dword [ebp - 0xe3c]
fld qword [eax + 0x88]
fstp qword [ebp - 0xe78]
fld qword [ebp - 0xe78]
fstp qword [ebp - 0xe80]
jmp 0x4983c8
mov ecx, dword [ebp - 0xe3c]
fld qword [ecx + 0x88]
fstp qword [ebp - 0xe80]
push 0
push 1
sub esp, 8
fld qword [ebp - 0xe80]
fstp qword [esp]
mov edx, dword [ebp - 0xe3c]
movzx eax, byte [edx + 0x83]
push eax
mov ecx, dword [ebp - 0xe3c]
movzx edx, byte [ecx + 0x81]
push edx
mov eax, dword [ebp - 0xe3c]
movzx ecx, byte [eax + 0x80]
push ecx
mov edx, dword [ebp - 0xe3c]
mov eax, dword [edx + 0x60]
push eax
push 0
push 0
push 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x5c]
call eax
movzx ecx, byte [ebp - 0xcc5]
test ecx, ecx
jne 0x498454
push 0
mov ecx, dword [ebp - 0x4a8]
call dword [sym.imp.gsio.dll_public:_void___thiscall_CDwgExport::SetOpt_bool_]
push 0xc8c8c8
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x4a8]
push ecx
call fcn.00417690
add esp, 0x10
push 0
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x58]
call edx
mov eax, dword [ebp - 0x4a8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x4a8]
mov eax, dword [edx + 0x10]
call eax
movzx ecx, al
test ecx, ecx
jne 0x4984f4
mov edx, dword [ebp - 0x4a8]
mov dword [ebp - 0xe20], edx
mov eax, dword [ebp - 0xe20]
mov dword [ebp - 0xe1c], eax
cmp dword [ebp - 0xe1c], 0
je 0x4984ba
push 1
mov ecx, dword [ebp - 0xe1c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xe1c]
mov eax, dword [edx]
call eax
mov dword [ebp - 0xe84], eax
jmp 0x4984c4
mov dword [ebp - 0xe84], 0
lea ecx, [ebp + 0x20]
push ecx
mov ecx, dword [ebp + 0x24]
call fcn.00409760
mov dword [ebp - 0xe24], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x20]
call fcn.00408fa0
mov eax, dword [ebp - 0xe24]
jmp 0x498607
mov edx, dword [ebp - 0xe3c]
mov eax, dword [ebp - 0xe3c]
mov ecx, dword [edx + 0x28]
cmp ecx, dword [eax + 0x34]
jne 0x498596
movzx edx, byte [ebp - 0x49d]
test edx, edx
je 0x498596
mov eax, dword [ebp - 0xe3c]
movzx ecx, byte [eax + 0xb3]
test ecx, ecx
jne 0x498596
mov edx, dword [ebp - 0xe3c]
mov eax, dword [edx + 0x10]
push eax
lea ecx, [ebp + 0x20]
call fcn.004a7b60
push eax
mov ecx, dword [ebp + 0x18]
push ecx
call fcn.004bb6b0
add esp, 0xc
test eax, eax
je 0x498552
mov dword [ebp - 0x14], 0
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0xe2c], edx
mov eax, dword [ebp - 0xe2c]
mov dword [ebp - 0xe28], eax
cmp dword [ebp - 0xe28], 0
je 0x49858c
push 1
mov ecx, dword [ebp - 0xe28]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xe28]
mov eax, dword [edx]
call eax
mov dword [ebp - 0xe88], eax
jmp 0x498596
mov dword [ebp - 0xe88], 0
mov ecx, dword [ebp - 0x4a8]
mov dword [ebp - 0xe34], ecx
mov edx, dword [ebp - 0xe34]
mov dword [ebp - 0xe30], edx
cmp dword [ebp - 0xe30], 0
je 0x4985d3
push 1
mov eax, dword [ebp - 0xe30]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xe30]
mov eax, dword [edx]
call eax
mov dword [ebp - 0xe8c], eax
jmp 0x4985dd
mov dword [ebp - 0xe8c], 0
lea ecx, [ebp + 0x20]
push ecx
mov ecx, dword [ebp + 0x24]
call fcn.00409760
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0xe38], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x20]
call fcn.00408fa0
mov eax, dword [ebp - 0xe38]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.005255a0
mov esp, ebp
pop ebp
ret 0x20