Function at 0x45f660
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5e818b
mov eax, dword fs:[0]
push eax
sub esp, 0x618
mov eax, dword [0x704dd8]
xor eax, esp
mov dword [esp + 0x610], eax
push ebx
push esi
push edi
mov eax, dword [0x704dd8]
xor eax, esp
push eax
lea eax, [esp + 0x628]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 1
push eax
mov edi, ecx
mov dword [esp + 0x34], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
push 0
mov dword [esp + 0x18], 0
call fcn.004eac95
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb8]
push eax
mov dword [esp + 0xc0], edx
call fcn.004eac6e
push 0x11c
lea ecx, [esp + 0xf8]
push 0
push ecx
mov esi, eax
mov dword [esp + 0x38], 4
call fcn.004e9ba0
add esp, 0x14
lea edx, [esp + 0xec]
push edx
mov dword [esp + 0xf0], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, 2
cmp dword [esp + 0xfc], eax
jne 0x45f732
cmp dword [esp + 0xf0], 5
jne 0x45f732
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x844]
fild dword [eax + 0x44]
mov ebx, dword [esi + 0x10]
inc ebx
mov dword [esp + 0x40], ebx
fmul qword [0x609388]
fstp dword [esp + 0x34]
fild dword [eax + 0x40]
mov eax, dword [esi + 0x14]
add eax, 0x76c
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0xc]
fstp dword [esp + 0x44]
mov dword [esp + 0x38], eax
call fcn.004a7e40
fstp dword [esp + 0x10]
fld dword [edi + 0x768]
xor ecx, ecx
fld dword [esp + 0x10]
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
fld qword [0x605f10]
test ah, 0x44
jnp 0x45f7a4
fld dword [edi + 0x768]
fsubp st(2)
fmul st(1), st(0)
fxch st(1)
call fcn.004e8d20
mov ecx, eax
jmp 0x45f7a6
fstp st(1)
fld dword [edi + 0x818]
fld dword [edi + 0x814]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x45f7d2
fld dword [edi + 0x818]
fsub dword [edi + 0x768]
fmulp st(1)
call fcn.004e8d20
mov ecx, eax
jmp 0x45f7d4
fstp st(0)
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
shl edx, 4
sub edx, eax
add edx, edx
add edx, edx
sub ecx, edx
mov edx, dword [esi + 8]
mov esi, dword [esi + 4]
add edx, eax
mov eax, dword [esp + 0x3c]
push ebx
push eax
mov dword [esp + 0x28], edx
add esi, ecx
call fcn.00404090
add esp, 8
test esi, esi
jge 0x45f82b
dec dword [esp + 0x20]
mov edx, 1
mov ecx, dword [esp + 0x20]
test ecx, ecx
jge 0x45f83b
sub dword [esp + 0x38], edx
jmp 0x45f844
cmp esi, 0x3c
jl 0x45f818
mov edx, 1
add dword [esp + 0x20], edx
jmp 0x45f81d
cmp ecx, 0x18
jl 0x45f844
add dword [esp + 0x38], edx
mov ecx, dword [esp + 0x38]
cmp ecx, edx
jge 0x45f873
sub ebx, edx
cmp ebx, edx
mov dword [esp + 0x40], ebx
jge 0x45f863
sub dword [esp + 0x3c], edx
mov ebx, 0xc
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x3c]
push ebx
push ecx
call fcn.00404090
add esp, 8
jmp 0x45f88f
cmp ecx, eax
jle 0x45f893
mov eax, 1
add ebx, eax
cmp ebx, 0xc
mov dword [esp + 0x40], ebx
jle 0x45f88f
add dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x54]
push edx
xor esi, esi
push eax
mov dword [esp + 0x5c], esi
call sub.gdiplus.dll_GdipCreateFromHDC
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
push 2
push eax
mov dword [esp + 0x638], esi
call sub.gdiplus.dll_GdipSetSmoothingMode
cmp eax, esi
je 0x45f8cb
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x758], esi
mov dword [esp + 0x50], esi
jle 0x460cf2
fld qword [0x609380]
mov ebx, dword [esp + 0x2c]
fldz
jmp 0x45f8f1
fld qword [0x609380]
fxch st(1)
mov esi, dword [esp + 0x50]
lea esi, [esi + esi*2]
shl esi, 7
add esi, dword [edi + 0x75c]
cmp byte [esi + 9], 0
jne 0x45f90e
fstp st(1)
jmp 0x460cc5
lea ecx, [esi + 0x74]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0xc]
lea eax, [esi + 0x54]
lea edx, [esi + 0x64]
mov dword [esp + 0x20], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], 0
cmp ecx, dword [esp + 0x3c]
jne 0x45f962
mov edx, dword [esi + 0x10]
cmp edx, dword [esp + 0x40]
jne 0x45f962
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esp + 0x38]
jne 0x45f962
cmp byte [edi + 0x4f8], 0
je 0x45f95a
mov byte [esi + 7], 1
mov byte [edi + 0x4f8], 0
mov dword [esp + 0x28], 1
mov dl, byte [esi + 8]
test dl, dl
jne 0x45f972
cmp dword [edi + 0x774], 0
je 0x45f907
cmp byte [esi + 1], 0
je 0x45fa40
cmp dword [esi + 0x140], 2
fild dword [eax]
mov ecx, dword [edi + 0x81c]
fsub st(2)
fstp dword [esp + 0x64]
fild dword [eax + 4]
fstp dword [esp + 0x68]
fild dword [ecx + 0x40]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x6c]
fild dword [ecx + 0x44]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
faddp st(4)
fxch st(3)
fstp dword [esp + 0x70]
jbe 0x45f9da
fld dword [esp + 0x64]
fsub qword [0x609378]
fstp dword [esp + 0x64]
fld dword [esp + 0x6c]
fadd qword [0x609370]
fstp dword [esp + 0x6c]
cmp byte [esi + 7], 0
jne 0x45fa3e
cmp byte [esi], 0
jne 0x45fa3e
cmp dword [esp + 0x28], 0
jne 0x45fa3e
push 0
fxch st(2)
push 0
push 0
push 2
sub esp, 0x10
fstp dword [esp + 0xc]
fxch st(1)
fstp dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
cmp dl, 1
jne 0x45fa2e
lea edx, [esp + 0x84]
push edx
call fcn.0047e6c0
push eax
lea ecx, [esp + 0x40]
call fcn.00405e60
fldz
mov eax, dword [esp + 0x20]
jmp 0x45fa42
mov ecx, dword [edi + 0x824]
lea eax, [esp + 0x84]
push eax
jmp 0x45fa17
fstp st(0)
fstp st(1)
cmp byte [esi + 2], 0
je 0x45fb42
cmp dword [esi + 0x140], 2
fild dword [eax]
fld qword [0x609380]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x74]
fild dword [eax + 4]
mov eax, dword [edi + 0x81c]
fstp dword [esp + 0x78]
fild dword [eax + 0x40]
fstp dword [esp + 0x7c]
fild dword [eax + 0x44]
fadd st(1)
fstp dword [esp + 0x80]
jbe 0x45faa1
fld dword [esp + 0x74]
fsub qword [0x609378]
fstp dword [esp + 0x74]
fld dword [esp + 0x7c]
fadd qword [0x609370]
fstp dword [esp + 0x7c]
cmp byte [esi + 7], 0
jne 0x45fb40
cmp byte [esi], 0
jne 0x45fb55
cmp dword [esp + 0x28], 0
fstp st(0)
jne 0x45fb42
push 0
push 0
push 0
push 2
sub esp, 0x10
cmp byte [esi + 8], 1
jne 0x45fb06
mov ecx, dword [edi + 0x820]
fild dword [ecx + 0x44]
lea edx, [esp + 0x94]
fstp dword [esp + 0xc]
fild dword [ecx + 0x40]
fstp dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push edx
call fcn.0047e6c0
push eax
lea ecx, [esp + 0x40]
call fcn.00405e60
jmp 0x45fb44
mov eax, dword [edi + 0x820]
fild dword [eax + 0x44]
mov ecx, dword [edi + 0x828]
fstp dword [esp + 0xc]
fild dword [eax + 0x40]
lea eax, [esp + 0x94]
fstp dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push eax
call fcn.0047e6c0
push eax
lea ecx, [esp + 0x40]
call fcn.00405e60
jmp 0x45fb44
fstp st(1)
fstp st(0)
cmp byte [esi], 0
je 0x45fc35
fld qword [0x609380]
jmp 0x45fb57
fstp st(1)
mov ecx, dword [esi + 0x34]
dec ecx
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
call fcn.004e8d20
mov edx, dword [esi + 0x38]
dec edx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov dword [esp + 0x84], eax
call fcn.004e8d20
fadd dword [esp + 0x34]
mov dword [esp + 0x88], eax
mov eax, dword [edi + 0x844]
mov ebx, dword [eax + 0x40]
add ebx, 2
call fcn.004e8d20
mov ecx, dword [edi + 0x844]
mov dword [esp + 0x90], eax
call fcn.0047e6c0
test eax, eax
je 0x45fbbb
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
jmp 0x45fbc3
mov dword [esp + 0x30], 0
fld dword [esp + 0x34]
push 0
push 0
fld st(0)
push 0
push 2
call fcn.004e8d20
fld dword [esp + 0x54]
push eax
call fcn.004e8d20
fmul qword [0x609368]
push eax
call fcn.004e8d20
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0xa0]
push 0
push ecx
mov ecx, dword [esp + 0x54]
push ebx
push edx
mov edx, dword [esp + 0x44]
push eax
push ecx
push edx
call sub.gdiplus.dll_GdipDrawImageRectRectI
test eax, eax
je 0x45fc1f
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x7a0]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, dword [esp + 0x2c]
mov edx, dword [edi + 0x784]
push edx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0x28], 0
je 0x45fd62
mov eax, dword [edi + 0x7e0]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [esi + 0x34]
dec edx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
call fcn.004e8d20
mov dword [esp + 0x94], eax
mov eax, dword [esi + 0x38]
dec eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
call fcn.004e8d20
fld dword [esp + 0x34]
fadd qword [0x609380]
mov dword [esp + 0x98], eax
mov eax, dword [edi + 0x844]
mov ebx, dword [eax + 0x40]
add ebx, 2
call fcn.004e8d20
mov ecx, dword [edi + 0x844]
mov dword [esp + 0xa0], eax
call fcn.0047e6c0
test eax, eax
je 0x45fcca
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
jmp 0x45fcd2
mov dword [esp + 0x30], 0
fld dword [esp + 0x34]
push 0
push 0
fld st(0)
push 0
push 2
call fcn.004e8d20
fld dword [esp + 0x54]
push eax
call fcn.004e8d20
fadd st(0), st(0)
push eax
call fcn.004e8d20
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xb4]
push 0
push edx
mov edx, dword [esp + 0x54]
push ebx
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push eax
call sub.gdiplus.dll_GdipDrawImageRectRectI
test eax, eax
je 0x45fd2a
mov dword [esp + 0x1c], eax
cmp dword [esi + 0x9c], 8
jb 0x45fd3b
mov eax, dword [esi + 0x88]
jmp 0x45fd41
lea eax, [esi + 0x88]
mov ecx, dword [edi + 0x840]
push ecx
push eax
lea eax, [esi + 0x44]
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.0045ee40
mov ebx, dword [esp + 0x2c]
jmp 0x4600b7
cmp byte [esi + 8], 1
je 0x45ff06
cmp byte [esi + 7], 0
je 0x45fe40
mov eax, dword [edi + 0x7a4]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [esi + 0x34]
dec edx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
call fcn.004e8d20
mov dword [esp + 0xa4], eax
mov eax, dword [esi + 0x38]
dec eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
call fcn.004e8d20
fld dword [esp + 0x34]
fadd qword [0x609380]
mov dword [esp + 0xa8], eax
mov eax, dword [edi + 0x844]
mov ebx, dword [eax + 0x40]
add ebx, 2
call fcn.004e8d20
mov ecx, dword [edi + 0x844]
mov dword [esp + 0xb0], eax
call fcn.0047e6c0
test eax, eax
je 0x45fdf2
mov ecx, dword [eax + 4]
mov dword [esp + 0x10], ecx
jmp 0x45fdfa
mov dword [esp + 0x10], 0
fld dword [esp + 0x34]
call fcn.004e8d20
fld dword [esp + 0x44]
push 0
push 0
push 0
push 2
push eax
mov dword [esp + 0x44], eax
call fcn.004e8d20
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc0]
push 0
push eax
mov eax, dword [esp + 0x34]
jmp 0x45ffd5
cmp byte [esi], 0
je 0x45fe70
cmp dword [esi + 0x9c], 8
jb 0x45fe5f
mov eax, dword [esi + 0x88]
mov ecx, dword [edi + 0x840]
jmp 0x4600a5
mov ecx, dword [edi + 0x840]
lea eax, [esi + 0x88]
jmp 0x4600a5
mov eax, dword [edi + 0x500]
test eax, eax
jne 0x45fed7
cmp dword [esp + 0x14], 5
jge 0x45feac
cmp dword [esi + 0x9c], 8
jb 0x45fe9b
mov eax, dword [esi + 0x88]
mov ecx, dword [edi + 0x834]
jmp 0x4600a5
mov ecx, dword [edi + 0x834]
lea eax, [esi + 0x88]
jmp 0x4600a5
cmp dword [esi + 0x9c], 8
jb 0x45fec6
mov eax, dword [esi + 0x88]
mov ecx, dword [edi + 0x83c]
jmp 0x4600a5
mov ecx, dword [edi + 0x83c]
lea eax, [esi + 0x88]
jmp 0x4600a5
cmp eax, 1
jne 0x45feeb
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45feac
cmp eax, 6
je 0x45feac
jmp 0x45fe81
cmp eax, 2
jne 0x4600b7
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45feac
cmp eax, 1
je 0x45feac
jmp 0x45fe81
cmp byte [esi + 7], 0
je 0x460023
mov eax, dword [edi + 0x7a4]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [esi + 0x34]
dec edx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
call fcn.004e8d20
mov dword [esp + 0xbc], eax
mov eax, dword [esi + 0x38]
dec eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
call fcn.004e8d20
fld dword [esp + 0x34]
fadd qword [0x609380]
mov dword [esp + 0xc0], eax
mov eax, dword [edi + 0x844]
mov ebx, dword [eax + 0x40]
add ebx, 2
call fcn.004e8d20
mov ecx, dword [edi + 0x844]
mov dword [esp + 0xc8], eax
call fcn.0047e6c0
test eax, eax
je 0x45ff8c
mov ecx, dword [eax + 4]
mov dword [esp + 0x10], ecx
jmp 0x45ff94
mov dword [esp + 0x10], 0
fld dword [esp + 0x34]
call fcn.004e8d20
fld dword [esp + 0x44]
push 0
push 0
push 0
push 2
push eax
mov dword [esp + 0x44], eax
call fcn.004e8d20
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0xd4]
push eax
mov eax, dword [esp + 0xe0]
push edx
mov edx, dword [esp + 0xd8]
push 0
push eax
mov eax, dword [esp + 0x34]
push ebx
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
push ecx
call sub.gdiplus.dll_GdipDrawImageRectRectI
test eax, eax
je 0x45ffeb
mov dword [esp + 0x1c], eax
cmp dword [esi + 0x9c], 8
jb 0x45fffc
mov eax, dword [esi + 0x88]
jmp 0x460002
lea eax, [esi + 0x88]
mov edx, dword [edi + 0x840]
push edx
push eax
lea eax, [esi + 0x44]
push eax
lea eax, [esp + 0x24]
push eax
mov ecx, edi
call fcn.0045ee40
mov ebx, dword [esp + 0x2c]
jmp 0x4600b7
cmp byte [esi], 0
jne 0x45fe45
mov eax, dword [edi + 0x500]
test eax, eax
jne 0x460062
cmp dword [esp + 0x14], 5
jge 0x460088
cmp dword [esi + 0x9c], 8
jb 0x460054
mov eax, dword [esi + 0x88]
mov ecx, dword [edi + 0x830]
jmp 0x4600a5
mov ecx, dword [edi + 0x830]
lea eax, [esi + 0x88]
jmp 0x4600a5
cmp eax, 1
jne 0x460076
mov eax, dword [esp + 0x14]
test eax, eax
je 0x460088
cmp eax, 6
je 0x460088
jmp 0x46003d
cmp eax, 2
jne 0x4600b7
mov eax, dword [esp + 0x14]
test eax, eax
je 0x460088
cmp eax, 1
jne 0x46003d
cmp dword [esi + 0x9c], 8
jb 0x460099
mov eax, dword [esi + 0x88]
jmp 0x46009f
lea eax, [esi + 0x88]
mov ecx, dword [edi + 0x838]
push ecx
push eax
lea eax, [esi + 0x44]
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.0045ee40
cmp byte [esi + 5], 0
je 0x460158
cmp dword [esp + 0x28], 0
jne 0x460158
cmp byte [esi + 7], 0
jne 0x460158
mov eax, dword [edi + 0x7e0]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
fld dword [0x609360]
mov ecx, dword [edi + 0x848]
push 2
sub esp, 0x18
fst dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [0x60935c]
fstp dword [esp + 0xc]
fldz
fstp dword [esp + 8]
fild dword [esi + 0x38]
fstp dword [esp + 4]
fild dword [esi + 0x34]
fstp dword [esp]
call fcn.0047e6c0
push eax
lea ecx, [esp + 0x38]
call fcn.0045edd0
cmp dword [esi + 0x9c], 8
jb 0x46013a
mov eax, dword [esi + 0x88]
jmp 0x460140
lea eax, [esi + 0x88]
mov ecx, dword [edi + 0x840]
push ecx
push eax
lea eax, [esi + 0x44]
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.0045ee40
cmp byte [esi + 6], 0
je 0x4601ef
cmp dword [esp + 0x28], 0
jne 0x4601ef
cmp byte [esi + 7], 0
jne 0x4601ef
mov eax, dword [edi + 0x7e0]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
fld dword [0x609360]
mov ecx, dword [edi + 0x848]
push 2
sub esp, 0x18
fst dword [esp + 0x14]
fst dword [esp + 0x10]
fstp dword [esp + 0xc]
fldz
fstp dword [esp + 8]
fild dword [esi + 0x38]
fstp dword [esp + 4]
fild dword [esi + 0x34]
fstp dword [esp]
call fcn.0047e6c0
push eax
lea ecx, [esp + 0x38]
call fcn.0045edd0
cmp dword [esi + 0x9c], 8
jb 0x4601d1
mov eax, dword [esi + 0x88]
jmp 0x4601d7
lea eax, [esi + 0x88]
mov ecx, dword [edi + 0x840]
push ecx
push eax
lea eax, [esi + 0x44]
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.0045ee40
cmp byte [esi + 3], 0
jne 0x4601ff
cmp byte [esi + 4], 0
je 0x460335
mov eax, dword [esi + 0x34]
dec eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
call fcn.004e8d20
mov ecx, dword [esi + 0x38]
dec ecx
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
mov dword [esp + 0xdc], eax
call fcn.004e8d20
fld dword [esp + 0x34]
mov edx, dword [edi + 0x844]
fadd qword [0x609380]
mov ebx, dword [edx + 0x40]
mov dword [esp + 0xe0], eax
add ebx, 2
call fcn.004e8d20
mov ecx, eax
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0xdc]
sar eax, 1
lea eax, [eax + edx - 3]
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
lea eax, [ecx + edx - 6]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x10]
fstp dword [esp + 0xcc]
push ecx
fild dword [esp + 0x14]
push 0xffffffffffffffff
mov dword [esp + 0x60], vtable.Gdiplus::SolidBrush.0
mov dword [esp + 0x18], 0
fstp dword [esp + 0xd8]
fld dword [0x609358]
fst dword [esp + 0xdc]
fstp dword [esp + 0xe0]
call sub.gdiplus.dll_GdipCreateSolidFill
cmp byte [esi + 7], 0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], eax
jne 0x4602f9
cmp byte [esi], 0
jne 0x4602f9
cmp dword [esp + 0x28], 0
jne 0x4602f9
cmp byte [esi + 5], 0
jne 0x4602f9
cmp byte [esi + 6], 0
jne 0x4602f9
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], 0xff54a0f8
call fcn.0045eac0
jmp 0x460309
push 0xffffffffffffffff
push eax
call sub.gdiplus.dll_GdipSetSolidFillColor
test eax, eax
je 0x460309
mov dword [esp + 0x60], eax
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x20]
call fcn.0045f5a0
mov edx, dword [esp + 0x5c]
push edx
mov dword [esp + 0x5c], vtable.Gdiplus::Brush.0
call sub.gdiplus.dll_GdipDeleteBrush
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi + 0xec]
push 0
lea ecx, [esi + 0xd8]
push 0x5fd0cc
push eax
push 0
call fcn.00404350
test eax, eax
je 0x460492
mov ecx, dword [edi + 0x78c]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0x28], 0
jne 0x4603f3
cmp byte [esi + 7], 0
jne 0x4603f3
cmp byte [esi], 0
jne 0x4603f3
cmp byte [esi + 5], 0
jne 0x4603f3
cmp byte [esi + 6], 0
jne 0x4603f3
cmp byte [esi + 1], 0
je 0x4603a2
cmp byte [esi + 8], 1
je 0x46039b
push 0xbeebc1
jmp 0x4603fa
push 0x46c64e
jmp 0x4603fa
cmp byte [esi + 2], 0
je 0x4603bc
cmp byte [esi + 8], 1
je 0x4603b5
push 0xa5baff
jmp 0x4603fa
push 0x577efe
jmp 0x4603fa
cmp byte [esi + 8], 1
je 0x4603da
cmp dword [esp + 0x14], 5
jge 0x4603d2
mov edx, dword [edi + 0x7b8]
push edx
jmp 0x4603fa
mov eax, dword [edi + 0x7d0]
jmp 0x4603f9
cmp dword [esp + 0x14], 5
jge 0x4603ea
mov ecx, dword [edi + 0x7d8]
push ecx
jmp 0x4603fa
mov edx, dword [edi + 0x7cc]
push edx
jmp 0x4603fa
mov eax, dword [edi + 0x7ec]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [esi + 0x144], 8
jb 0x460412
mov eax, dword [esi + 0x130]
jmp 0x460418
lea eax, [esi + 0x130]
lea edx, [eax + 2]
jmp 0x460420
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x460420
sub eax, edx
sar eax, 1
cmp eax, 3
ja 0x460465
cmp dword [esi + 0x144], 8
jb 0x460445
mov eax, dword [esi + 0x130]
jmp 0x46044b
lea eax, [esi + 0x130]
movzx edx, byte [esi + 1]
movzx ecx, byte [esi + 2]
or ecx, edx
mov edx, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push eax
jmp 0x460cb5
cmp dword [esi + 0xb8], 8
jb 0x460476
mov eax, dword [esi + 0xa4]
jmp 0x46047c
lea eax, [esi + 0xa4]
movzx ecx, byte [esi + 2]
movzx edx, byte [esi + 1]
or ecx, edx
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push eax
jmp 0x460cb1
mov edx, dword [esi + 0x124]
push 0
lea ecx, [esi + 0x110]
push 0x5fd0cc
push edx
push 0
call fcn.00404350
test eax, eax
je 0x460590
mov eax, dword [edi + 0x78c]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0x28], 0
jne 0x460550
cmp byte [esi + 7], 0
jne 0x460550
cmp byte [esi], 0
jne 0x460550
cmp byte [esi + 5], 0
jne 0x460550
cmp byte [esi + 6], 0
jne 0x460550
cmp byte [esi + 1], 0
je 0x4604ff
cmp byte [esi + 8], 1
je 0x4604f8
push 0xbeebc1
jmp 0x460557
push 0x46c64e
jmp 0x460557
cmp byte [esi + 2], 0
je 0x460519
cmp byte [esi + 8], 1
je 0x460512
push 0xa5baff
jmp 0x460557
push 0x577efe
jmp 0x460557
cmp byte [esi + 8], 1
je 0x460537
cmp dword [esp + 0x14], 5
jge 0x46052f
mov ecx, dword [edi + 0x7b8]
push ecx
jmp 0x460557
mov edx, dword [edi + 0x7d0]
jmp 0x460556
cmp dword [esp + 0x14], 5
jge 0x460547
mov eax, dword [edi + 0x7d8]
push eax
jmp 0x460557
mov ecx, dword [edi + 0x7cc]
push ecx
jmp 0x460557
mov edx, dword [edi + 0x7ec]
push edx
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [esi + 0x144], 8
jb 0x46056f
mov eax, dword [esi + 0x130]
jmp 0x460575
lea eax, [esi + 0x130]
lea edx, [eax + 2]
jmp 0x460580
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x460580
jmp 0x46042b
mov edx, dword [esi + 0x15c]
push 0
lea ecx, [esi + 0x148]
push 0x5fd0cc
push edx
push 0
call fcn.00404350
test eax, eax
je 0x4607c4
mov eax, dword [edi + 0x790]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0x28], 0
jne 0x460715
cmp byte [esi + 7], 0
jne 0x460715
cmp byte [esi], 0
jne 0x460715
cmp byte [esi + 5], 0
jne 0x460715
cmp byte [esi + 6], 0
jne 0x460715
cmp byte [esi + 1], 0
je 0x460613
cmp byte [esi + 8], 1
je 0x460609
push 0xbeebc1
jmp 0x46071c
push 0x46c64e
jmp 0x46071c
cmp byte [esi + 2], 0
je 0x460633
cmp byte [esi + 8], 1
je 0x460629
push 0xa5baff
jmp 0x46071c
push 0x577efe
jmp 0x46071c
cmp byte [esi + 8], 1
mov eax, dword [edi + 0x500]
je 0x4606b2
test eax, eax
jne 0x460661
cmp dword [esp + 0x14], 5
jge 0x460655
mov ecx, dword [edi + 0x7b8]
jmp 0x46071b
mov edx, dword [edi + 0x7d0]
push edx
jmp 0x46071c
cmp eax, 1
jne 0x46068a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46067f
cmp eax, 6
je 0x46067f
mov eax, dword [edi + 0x7b8]
push eax
jmp 0x46071c
mov ecx, dword [edi + 0x7d0]
jmp 0x46071b
cmp eax, 2
jne 0x460723
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4606a9
cmp eax, 1
je 0x4606a9
mov edx, dword [edi + 0x7b8]
push edx
jmp 0x46071c
mov eax, dword [edi + 0x7d0]
push eax
jmp 0x46071c
test eax, eax
jne 0x4606ce
cmp dword [esp + 0x14], 5
jge 0x4606c5
mov ecx, dword [edi + 0x7d8]
jmp 0x46071b
mov edx, dword [edi + 0x7cc]
push edx
jmp 0x46071c
cmp eax, 1
jne 0x4606f1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4606e9
cmp eax, 6
je 0x4606e9
mov eax, dword [edi + 0x7d8]
push eax
jmp 0x46071c
mov ecx, dword [edi + 0x7cc]
jmp 0x46071b
cmp eax, 2
jne 0x460723
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46070c
cmp eax, 1
je 0x46070c
mov edx, dword [edi + 0x7d8]
push edx
jmp 0x46071c
mov eax, dword [edi + 0x7cc]
push eax
jmp 0x46071c
mov ecx, dword [edi + 0x7ec]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [esi + 0x160], 8
jb 0x460734
mov eax, dword [esi + 0x14c]
jmp 0x46073a
lea eax, [esi + 0x14c]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x460740
sub eax, edx
sar eax, 1
cmp eax, 3
ja 0x46078c
cmp dword [esi + 0x160], 8
jb 0x460765
mov eax, dword [esi + 0x14c]
jmp 0x46076b
lea eax, [esi + 0x14c]
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
or edx, ecx
push edx
mov edx, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x54]
push eax
push ebx
lea ecx, [esp + 0x2c]
push ecx
jmp 0x460cbc
cmp dword [esi + 0xb8], 8
jb 0x46079d
mov eax, dword [esi + 0xa4]
jmp 0x4607a3
lea eax, [esi + 0xa4]
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
or edx, ecx
push edx
mov edx, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x2c]
push eax
push ebx
lea ecx, [esp + 0x2c]
push ecx
jmp 0x460cbc
mov edx, dword [esi + 0x108]
push 0
lea ecx, [esi + 0xf4]
push 0x5fd0cc
push edx
push 0
call fcn.00404350
test eax, eax
je 0x4609c1
mov eax, dword [edi + 0x78c]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0x28], 0
jne 0x460949
cmp byte [esi + 7], 0
jne 0x460949
cmp byte [esi], 0
jne 0x460949
cmp byte [esi + 5], 0
jne 0x460949
cmp byte [esi + 6], 0
jne 0x460949
cmp byte [esi + 1], 0
je 0x460847
cmp byte [esi + 8], 1
je 0x46083d
push 0xbeebc1
jmp 0x460950
push 0x46c64e
jmp 0x460950
cmp byte [esi + 2], 0
je 0x460867
cmp byte [esi + 8], 1
je 0x46085d
push 0xa5baff
jmp 0x460950
push 0x577efe
jmp 0x460950
cmp byte [esi + 8], 1
mov eax, dword [edi + 0x500]
je 0x4608e6
test eax, eax
jne 0x460895
cmp dword [esp + 0x14], 5
jge 0x460889
mov ecx, dword [edi + 0x7b8]
jmp 0x46094f
mov edx, dword [edi + 0x7d0]
push edx
jmp 0x460950
cmp eax, 1
jne 0x4608be
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4608b3
cmp eax, 6
je 0x4608b3
mov eax, dword [edi + 0x7b8]
push eax
jmp 0x460950
mov ecx, dword [edi + 0x7d0]
jmp 0x46094f
cmp eax, 2
jne 0x460957
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4608dd
cmp eax, 1
je 0x4608dd
mov edx, dword [edi + 0x7b8]
push edx
jmp 0x460950
mov eax, dword [edi + 0x7d0]
push eax
jmp 0x460950
test eax, eax
jne 0x460902
cmp dword [esp + 0x14], 5
jge 0x4608f9
mov ecx, dword [edi + 0x7d8]
jmp 0x46094f
mov edx, dword [edi + 0x7cc]
push edx
jmp 0x460950
cmp eax, 1
jne 0x460925
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46091d
cmp eax, 6
je 0x46091d
mov eax, dword [edi + 0x7d8]
push eax
jmp 0x460950
mov ecx, dword [edi + 0x7cc]
jmp 0x46094f
cmp eax, 2
jne 0x460957
mov eax, dword [esp + 0x14]
test eax, eax
je 0x460940
cmp eax, 1
je 0x460940
mov edx, dword [edi + 0x7d8]
push edx
jmp 0x460950
mov eax, dword [edi + 0x7cc]
push eax
jmp 0x460950
mov ecx, dword [edi + 0x7ec]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [esi + 0x144], 8
jb 0x460968
mov eax, dword [esi + 0x130]
jmp 0x46096e
lea eax, [esi + 0x130]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x460971
sub eax, edx
sar eax, 1
cmp eax, 3
ja 0x46078c
cmp dword [esi + 0x144], 8
jb 0x46099a
mov eax, dword [esi + 0x130]
jmp 0x4609a0
lea eax, [esi + 0x130]
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
or edx, ecx
push edx
mov edx, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x58]
push eax
push ebx
lea ecx, [esp + 0x2c]
push ecx
jmp 0x460cbc
mov edx, dword [edi + 0x78c]
push edx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0x28], 0
jne 0x460b23
cmp byte [esi + 7], 0
jne 0x460b23
cmp byte [esi], 0
jne 0x460b23
cmp byte [esi + 5], 0
jne 0x460b23
cmp byte [esi + 6], 0
jne 0x460b23
cmp byte [esi + 1], 0
je 0x460a21
cmp byte [esi + 8], 1
je 0x460a17
push 0xbeebc1
jmp 0x460b2a
push 0x46c64e
jmp 0x460b2a
cmp byte [esi + 2], 0
je 0x460a41
cmp byte [esi + 8], 1
je 0x460a37
push 0xa5baff
jmp 0x460b2a
push 0x577efe
jmp 0x460b2a
cmp byte [esi + 8], 1
mov eax, dword [edi + 0x500]
je 0x460ac0
test eax, eax
jne 0x460a6f
cmp dword [esp + 0x14], 5
jge 0x460a63
mov eax, dword [edi + 0x7b8]
jmp 0x460b29
mov ecx, dword [edi + 0x7d0]
push ecx
jmp 0x460b2a
cmp eax, 1
jne 0x460a98
mov eax, dword [esp + 0x14]
test eax, eax
je 0x460a8d
cmp eax, 6
je 0x460a8d
mov edx, dword [edi + 0x7b8]
push edx
jmp 0x460b2a
mov eax, dword [edi + 0x7d0]
jmp 0x460b29
cmp eax, 2
jne 0x460b31
mov eax, dword [esp + 0x14]
test eax, eax
je 0x460ab7
cmp eax, 1
je 0x460ab7
mov ecx, dword [edi + 0x7b8]
push ecx
jmp 0x460b2a
mov edx, dword [edi + 0x7d0]
push edx
jmp 0x460b2a
test eax, eax
jne 0x460adc
cmp dword [esp + 0x14], 5
jge 0x460ad3
mov eax, dword [edi + 0x7d8]
jmp 0x460b29
mov ecx, dword [edi + 0x7cc]
push ecx
jmp 0x460b2a
cmp eax, 1
jne 0x460aff
mov eax, dword [esp + 0x14]
test eax, eax
je 0x460af7
cmp eax, 6
je 0x460af7
mov edx, dword [edi + 0x7d8]
push edx
jmp 0x460b2a
mov eax, dword [edi + 0x7cc]
jmp 0x460b29
cmp eax, 2
jne 0x460b31
mov eax, dword [esp + 0x14]
test eax, eax
je 0x460b1a
cmp eax, 1
je 0x460b1a
mov ecx, dword [edi + 0x7d8]
push ecx
jmp 0x460b2a
mov edx, dword [edi + 0x7cc]
push edx
jmp 0x460b2a
mov eax, dword [edi + 0x7ec]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
lea eax, [esi + 0x164]
push 0x5fd0cc
push eax
mov dword [esp + 0x50], eax
call fcn.004047a0
add esp, 8
push 0x208
push 0
test al, al
je 0x460c0d
lea ecx, [esp + 0x214]
push ecx
call fcn.004e9ba0
add esp, 0xc
cmp byte [esi + 2], 0
je 0x460bab
lea edx, [esp + 0x20c]
push 0x609350
push edx
call fcn.00403b80
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
mov edx, dword [esp + 0x2c]
add esp, 8
or eax, ecx
mov ecx, dword [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x214]
push eax
push ecx
push ebx
lea edx, [esp + 0x2c]
push edx
jmp 0x460cbc
cmp byte [esi + 1], 0
je 0x460be3
lea eax, [esp + 0x20c]
push 0x609348
push eax
call fcn.00403b80
movzx ecx, byte [esi + 2]
movzx edx, byte [esi + 1]
mov eax, dword [esp + 0x2c]
add esp, 8
or ecx, edx
push ecx
push eax
lea ecx, [esp + 0x214]
push ecx
jmp 0x460cb1
mov eax, dword [esp + 0x48]
cmp dword [eax + 0x18], 8
jb 0x460bfd
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
push 0
push ecx
push eax
jmp 0x460cb1
mov ecx, dword [esp + 0x24]
push 0
add eax, 4
push ecx
push eax
jmp 0x460cb1
lea ecx, [esp + 0x41c]
push ecx
call fcn.004e9ba0
add esp, 0xc
cmp byte [esi + 2], 0
je 0x460c5d
lea edx, [esp + 0x414]
push 0x609350
push edx
call fcn.00403b80
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
mov edx, dword [esp + 0x2c]
add esp, 8
or eax, ecx
mov ecx, dword [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x41c]
push eax
push ecx
push ebx
lea edx, [esp + 0x2c]
push edx
jmp 0x460cbc
cmp byte [esi + 1], 0
je 0x460c92
lea eax, [esp + 0x414]
push 0x609348
push eax
call fcn.00403b80
movzx ecx, byte [esi + 2]
movzx edx, byte [esi + 1]
mov eax, dword [esp + 0x2c]
add esp, 8
or ecx, edx
push ecx
push eax
lea ecx, [esp + 0x41c]
push ecx
jmp 0x460cb1
cmp dword [esi + 0xb8], 8
jb 0x460ca3
mov esi, dword [esi + 0xa4]
jmp 0x460ca9
add esi, 0xa4
mov ecx, dword [esp + 0x24]
push 0
push ecx
push esi
mov edx, dword [esp + 0x2c]
push edx
push ebx
lea eax, [esp + 0x2c]
push eax
mov ecx, edi
call fcn.0045efb0
fldz
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 7
mov dword [esp + 0x14], eax
jl 0x460cdb
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x50]
inc eax
cmp eax, dword [edi + 0x758]
mov dword [esp + 0x50], eax
jl 0x45f8e9
fstp st(0)
mov ecx, dword [esp + 0x18]
push ecx
call sub.gdiplus.dll_GdipDeleteGraphics
mov ecx, dword [esp + 0x628]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x610]
xor ecx, esp
call fcn.004e8c89
mov esp, ebp
pop ebp
ret 4