Jump to content

10.4.9 Source Released


tops
 Share

65 posts in this topic

Recommended Posts

I've included a utility that will detect your CPU and provide some detialed information so no need to install windows and run cpuid-z as there is now a native Mac tool to perform this task.

 

--BuildSmart

 

Thank you, that is very useful. :thumbsup_anim:

Link to comment
Share on other sites

Baah, i just found this thread again. SaberSHO, obviously you dont know what you are talking about so just shut your mouth fool. Firstly, i never hacked the IRC network, i was given the password from a person there.

 

Secondly, i had a SSE2 Kernel working 2 days before the IRC incident, me and buildsmart were working on it. We didnt release it as i didnt think the cpùid was good enough, thirdly i didnt steal any tool as i was also given the password for it. I never hacked anything (IRC), so once again you are just regurgitating the {censored} semthex and his co-workers (or whatver u call them) shove down ur throat.

 

I'm nit denying what i did was wrong, and I'm sorry for the whole IRC incident, and the other {censored} i have done over the past months, but i will not be accused of stealing and being a thief/skript kiddie, especially when it comes from un-educated bigots like you.

 

 

I for one would not have any issue in releasing all of the sse3 emulator knowledge and the associated scripts, but have not done so in hope that the other side were able to behave like decent humans, which as of late certain members have :thumbsup_anim:.

 

And thanks for the tool buildsmart, we've been need one of those :P. If i get some time, we should make a gui for it then we'd have a CPU-Z for mac.

 

 

 

 

And concerning the EFI, it is possible, i have seen it. But dont expect a release date soon, we are facing some issues

Link to comment
Share on other sites

Okay, now that everything has been said and done, and all the craziness has been finished, can you get back to why this thread was started? The 10.4.9 kernel sources are out, there are a bunch of amd/sse2 user who need a functional kernel. Apparently kiko has one working, so without further ado can we just a get some info on where and when it will be live.

Link to comment
Share on other sites

I agree with you kernalzero, i really dont care for politics all that much, ánd i dont think people care if i made a kernel or the pope did, as long as it works. As for finding the kernel either go to hackint0sh or hang around a bit till i make a sse2 one

Link to comment
Share on other sites

  • 2 weeks later...
Guest BuildSmart

READ IT ALL

YOU MIGHT MISS SOMETHING IF YOU DON'T!!!

THIS IS NOT MY OWN WORK.

Now that the files and information are becoming public, you can expect further advancements in the kernel project as others take on the challenge to produce a better kernel.

 

The kernel source is available from Apple's site and getting a diff to modify the kernel source for basic building shouldn't be too difficult, hopefully someone like DaemonES will provide the diff for his 10.4.8 kernel source since it is a good reference point to work from but he seems to be ignoring my requests for the diff (he had already stated he would provide it to me but hasn't yet, maybe you might be luckier in your request).

 

I've spent a considerable amount of time rewriting semthex's sse3 Intel syntax source file to AT&T syntax cause it doesn't integrate well in an attempt to make a kernel source that requires no bin-patching because NASM isn't natively supported by the makefile process.

 

After a discussion with another (unamed) person, it appears that the semthex original sse3 code appears to have been borrowed from another project with some minor rewrites but I have not personally confirmed this but given my source believe it to be true.

 

Today, I successfully built my kernel and it only required a single edit (I have to locate and modify one line in the kernel source to resolve this) and I'm amazed that semthex in his infinite (infintile) wisdom didn't do this before.

 

Armed with his Intel syntax source file I began building it using NASM thinking that it was complete, made my global references to addresses and could build without issues as part of the kernel source package.

 

I tried to boot the new kernel and it didn't work, puzzled because I was under the impression that if I generated the same data for the 0xFFFF4000 space it should work but it didn't.

 

Examining his latest bin-patch binary I found some code tucked away and this source was neither mentioned or provided so I broke out my old trusty (self written) disassembler and decided to grab the obscure code and see what was going on.

 

I'm working on streamlining the code since there are far too many duplicate functions for my liking.

 

Here it is, the source you're never shown, told about or provided, it resides at 0xFFFF5300.

 

Since no one has been provided with the natural source I've used generic names to reference each function (cleaned and and formated for easy reading).

/*
* sse3_part2.s (code starting at ffff5000)
*
* True author unknown.
*
*/

.org 0xffff5000

.globl	part2_start
.globl	code_slot_stuff
.globl	cs0
.globl	cs1
.globl	cs1_counter
.globl	cs2
.globl	cs2_counter
.globl	cs3
.globl	cs3_counter
.globl	cs4
.globl	cs4_counter
.globl	cs5
.globl	cs5_counter
.globl	cs6
.globl	cs6_counter
.globl	counta
.globl	countb

part2_start: /* ffff5000 */
.byte	0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d
.byte	0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d
.byte	0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d
.byte	0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d
.byte	0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d
.byte	0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d
.byte	0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d
.byte	0x05, 0x0d, 0x15, 0x1d, 0x25, 0x2d, 0x35, 0x3d
.byte	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdd
.byte	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdd
.byte	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdd
.byte	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdd
.byte	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdd
.byte	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdd
.byte	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdd
.byte	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdd
.byte	0xc3, 0xcb, 0xd3, 0xdb, 0xe3, 0xeb, 0xf3, 0xfb
.byte	0xc3, 0xcb, 0xd3, 0xdb, 0xe3, 0xeb, 0xf3, 0xfb
.byte	0xc3, 0xcb, 0xd3, 0xdb, 0xe3, 0xeb, 0xf3, 0xfb
.byte	0xc3, 0xcb, 0xd3, 0xdb, 0xe3, 0xeb, 0xf3, 0xfb
.byte	0xc3, 0xcb, 0xd3, 0xdb, 0xe3, 0xeb, 0xf3, 0xfb
.byte	0xc3, 0xcb, 0xd3, 0xdb, 0xe3, 0xeb, 0xf3, 0xfb
.byte	0xc3, 0xcb, 0xd3, 0xdb, 0xe3, 0xeb, 0xf3, 0xfb
.byte	0xc3, 0xcb, 0xd3, 0xdb, 0xe3, 0xeb, 0xf3, 0xfb

/* 0x0c0 */
.byte	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
.byte	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01

code_slot_stuff:
/* additional fill */
cs0:
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00

cs1:
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00

cs1_counter:
.word	0xFFFF, 0xFFFF
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000

cs2:
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00

cs2_counter:
.word	0xFFFF, 0xFFFF
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000

cs3:
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00

cs3_counter:
.word	0xFFFF, 0xFFFF
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000

cs4:
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00

cs4_counter:
.word	0xFFFF, 0xFFFF
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000

cs5:
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00

cs5_counter:
.word	0xFFFF, 0xFFFF
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000
.word	0x0000, 0x0000

cs6:
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00, 0x00, 0x00, 0x00

cs6_counter:
.word	0xFFFF, 0xFFFF
.word	0x4242, 0x4242

counta:
.word	0x0000, 0x0000

countb:
.word	0x0000, 0x0000

emu3_foo01:
movlpd  %xmm1, 0xffff5100
movlps  %xmm0, 0xffff5100
movhpd  0xffff5100, %xmm0
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo02:
movapd  %xmm1, 0xffff5100
movlpd  %xmm1, 0xffff5110
movhpd  %xmm0, 0xffff5100
movhpd  0xffff5110, %xmm0
addpd   0xffff5100, %xmm0
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo03:
movlpd  %xmm0, 0xffff5100
movhpd  %xmm1, 0xffff5108
movhpd  0xffff5100, %xmm1
movlps  %xmm0, 0xffff5108
subpd   %xmm0, %xmm1
movlps  %xmm0, 0xffff5100
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo04:
movlpd  %xmm0, 0xffff5100
addpd   %xmm1, %xmm0
movhpd  %xmm0, 0xffff5108
movlps  %xmm0, 0xffff5100
subpd   %xmm1, %xmm0
movhpd  0xffff5108, %xmm0
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo05:
movaps  %xmm1, 0xffff5100
movl	0xFFFF510C, %eax
movl	%eax, 0xFFFF5108
movl	0xFFFF5104, %eax
movl	%eax, 0xFFFF5100
movaps  0xffff5100, %xmm2
pop	 %eax
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo06:
movaps  %xmm1, 0xffff5100
movl	0xFFFF5108, %eax
movl	%eax, 0xFFFF510C
movl	0xFFFF5100, %eax
movl	%eax, 0xFFFF5104
movaps  0xffff5100, %xmm2
pop	 %eax
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo07:
movaps  %xmm1, 0xffff5100
movaps  %xmm1, 0xffff5120
movaps  %xmm0, 0xffff5110
movl	0xFFFF5114, %eax
movl	%eax, 0xFFFF5100
movl	0xFFFF511C, %eax
movl	%eax, 0xFFFF5104
movl	0xFFFF5124, %eax
movl	%eax, 0xFFFF5108
movl	0xFFFF5118, %eax
movl	%eax, 0xFFFF5114
movl	0xFFFF5128, %eax
movl	%eax, 0xFFFF511C
movl	0xFFFF5120, %eax
movl	%eax, 0xFFFF5118
movaps  0xffff5100, %xmm1
movaps  0xffff5110, %xmm0
addps   %xmm1, %xmm0
movaps  0xffff5120, %xmm1
pop	 %eax
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo08:
movaps  %xmm1, 0xffff5100
movaps  %xmm1, 0xffff5120
movaps  %xmm0, 0xffff5110
movl	0xFFFF5114, %eax
movl	%eax, 0xFFFF5100
movl	0xFFFF511C, %eax
movl	%eax, 0xFFFF5104
movl	0xFFFF5124, %eax
movl	%eax, 0xFFFF5108
movl	0xFFFF5118, %eax
movl	%eax, 0xFFFF5114
movl	0xFFFF5128, %eax
movl	%eax, 0xFFFF511C
movl	0xFFFF5120, %eax
movl	%eax, 0xFFFF5118
movaps  0xffff5100, %xmm1
movaps  0xffff5110, %xmm0
subps   %xmm1, %xmm0
movaps  0xffff5120, %xmm1
pop	 %eax
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo09:
movaps  %xmm0, 0xffff5100
addps   %xmm1, %xmm0
movaps  %xmm0, 0xffff5110
movaps  0xffff5100, %xmm0
subps   %xmm1, %xmm0
movaps  %xmm0, 0xffff5120
movl	0xFFFF5114, %eax
movl	%eax, 0xFFFF5124
movl	0xFFFF511C, %eax
movl	%eax, 0xFFFF512C
movaps  0xffff5120, %xmm0
pop	 %eax
addl	$0x00000004, 0xffff5138
pushl   0xffff5138
movl	$0xFFFFFFFF, 0xffff513c
ret

emu3_foo10:
movlpd  %xmm1, 0xffff5140
movlps  %xmm0, 0xffff5140
movhpd  0xffff5140, %xmm0
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo11:
movapd  %xmm1, 0xffff5140
movlpd  %xmm1, 0xffff5150
movhpd  %xmm0, 0xffff5140
movhpd  0xffff5150, %xmm0
addpd   0xffff5140, %xmm0
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo12:
movlpd  %xmm0, 0xffff5140
movhpd  %xmm1, 0xffff5148
movhpd  0xffff5140, %xmm1
movlps  %xmm0, 0xffff5148
subpd   %xmm0, %xmm1
movlps  %xmm0, 0xffff5140
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo13:
movlpd  %xmm0, 0xffff5140
addpd   %xmm1, %xmm0
movhpd  %xmm0, 0xffff5148
movlps  %xmm0, 0xffff5140
subpd   %xmm1, %xmm0
movhpd  0xffff5148, %xmm0
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo14:
movaps  %xmm1, 0xffff5140
movl	0xFFFF514C, %eax
movl	%eax, 0xFFFF5148
movl	0xFFFF5144, %eax
movl	%eax, 0xFFFF5140
movaps  0xffff5140, %xmm2
pop	 %eax
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo15:
movaps  %xmm1, 0xffff5140
movl	0xFFFF5148, %eax
movl	%eax, 0xFFFF514C
movl	0xFFFF5140, %eax
movl	%eax, 0xFFFF5144
movaps  0xffff5140, %xmm2
pop	 %eax
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo16:
movaps  %xmm1, 0xffff5140
movaps  %xmm1, 0xffff5160
movaps  %xmm0, 0xffff5150
movl	0xFFFF5154, %eax
movl	%eax, 0xFFFF5140
movl	0xFFFF515C, %eax
movl	%eax, 0xFFFF5144
movl	0xFFFF5164, %eax
movl	%eax, 0xFFFF5148
movl	0xFFFF5158, %eax
movl	%eax, 0xFFFF5154
movl	0xFFFF5168, %eax
movl	%eax, 0xFFFF515C
movl	0xFFFF5160, %eax
movl	%eax, 0xFFFF5158
movaps  0xffff5140, %xmm1
movaps  0xffff5150, %xmm0
addps   %xmm1, %xmm0
movaps  0xffff5160, %xmm1
pop	 %eax
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo17:
movaps  %xmm1, 0xffff5140
movaps  %xmm1, 0xffff5160
movaps  %xmm0, 0xffff5150
movl	0xFFFF5154, %eax
movl	%eax, 0xFFFF5140
movl	0xFFFF515C, %eax
movl	%eax, 0xFFFF5144
movl	0xFFFF5164, %eax
movl	%eax, 0xFFFF5148
movl	0xFFFF5158, %eax
movl	%eax, 0xFFFF5154
movl	0xFFFF5168, %eax
movl	%eax, 0xFFFF515C
movl	0xFFFF5160, %eax
movl	%eax, 0xFFFF5158
movaps  0xffff5140, %xmm1
movaps  0xffff5150, %xmm0
subps   %xmm1, %xmm0
movaps  0xffff5160, %xmm1
pop	 %eax
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo18:
movaps  %xmm0, 0xffff5140
addps   %xmm1, %xmm0
movaps  %xmm0, 0xffff5150
movaps  0xffff5140, %xmm0
subps   %xmm1, %xmm0
movaps  %xmm0, 0xffff5160
movl	0xFFFF5154, %eax
movl	%eax, 0xFFFF5164
movl	0xFFFF515C, %eax
movl	%eax, 0xFFFF516C
movaps  0xffff5160, %xmm0
pop	 %eax
addl	$0x00000004, 0xffff5178
pushl   0xffff5178
movl	$0xFFFFFFFF, 0xffff517c
ret

emu3_foo19:
movlpd  %xmm1, 0xffff5180
movlps  %xmm0, 0xffff5180
movhpd  0xffff5180, %xmm0
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo20:
movapd  %xmm1, 0xffff5180
movlpd  %xmm1, 0xffff5190
movhpd  %xmm0, 0xffff5180
movhpd  0xffff5190, %xmm0
addpd   0xffff5180, %xmm0
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo21:
movlpd  %xmm0, 0xffff5180
movhpd  %xmm1, 0xffff5188
movhpd  0xffff5180, %xmm1
movlps  %xmm0, 0xffff5188
subpd   %xmm0, %xmm1
movlps  %xmm0, 0xffff5180
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo22:
movlpd  %xmm0, 0xffff5180
addpd   %xmm1, %xmm0
movhpd  %xmm0, 0xffff5188
movlps  %xmm0, 0xffff5180
subpd   %xmm1, %xmm0
movhpd  0xffff5188, %xmm0
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo23:
movaps  %xmm1, 0xffff5180
movl	0xFFFF518C, %eax
movl	%eax, 0xFFFF5188
movl	0xFFFF5184, %eax
movl	%eax, 0xFFFF5180
movaps  0xffff5180, %xmm2
pop	 %eax
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo24:
movaps  %xmm1, 0xffff5180
movl	0xFFFF5188, %eax
movl	%eax, 0xFFFF518C
movl	0xFFFF5180, %eax
movl	%eax, 0xFFFF5184
movaps  0xffff5180, %xmm2
pop	 %eax
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo25:
movaps  %xmm1, 0xffff5180
movaps  %xmm1, 0xffff51a0
movaps  %xmm0, 0xffff5190
movl	0xFFFF5194, %eax
movl	%eax, 0xFFFF5180
movl	0xFFFF519C, %eax
movl	%eax, 0xFFFF5184
movl	0xFFFF51A4, %eax
movl	%eax, 0xFFFF5188
movl	0xFFFF5198, %eax
movl	%eax, 0xFFFF5194
movl	0xFFFF51A8, %eax
movl	%eax, 0xFFFF519C
movl	0xFFFF51A0, %eax
movl	%eax, 0xFFFF5198
movaps  0xffff5180, %xmm1
movaps  0xffff5190, %xmm0
addps   %xmm1, %xmm0
movaps  0xffff51a0, %xmm1
pop	 %eax
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo26:
movaps  %xmm1, 0xffff5180
movaps  %xmm1, 0xffff51a0
movaps  %xmm0, 0xffff5190
movl	0xFFFF5194, %eax
movl	%eax, 0xFFFF5180
movl	0xFFFF519C, %eax
movl	%eax, 0xFFFF5184
movl	0xFFFF51A4, %eax
movl	%eax, 0xFFFF5188
movl	0xFFFF5198, %eax
movl	%eax, 0xFFFF5194
movl	0xFFFF51A8, %eax
movl	%eax, 0xFFFF519C
movl	0xFFFF51A0, %eax
movl	%eax, 0xFFFF5198
movaps  0xffff5180, %xmm1
movaps  0xffff5190, %xmm0
subps   %xmm1, %xmm0
movaps  0xffff51a0, %xmm1
pop	 %eax
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo27:
movaps  %xmm0, 0xffff5180
addps   %xmm1, %xmm0
movaps  %xmm0, 0xffff5190
movaps  0xffff5180, %xmm0
subps   %xmm1, %xmm0
movaps  %xmm0, 0xffff51a0
movl	0xFFFF5194, %eax
movl	%eax, 0xFFFF51A4
movl	0xFFFF519C, %eax
movl	%eax, 0xFFFF51AC
movaps  0xffff51a0, %xmm0
pop	 %eax
addl	$0x00000004, 0xffff51b8
pushl   0xffff51b8
movl	$0xFFFFFFFF, 0xffff51bc
ret

emu3_foo28:
movlpd  %xmm1, 0xffff51c0
movlps  %xmm0, 0xffff51c0
movhpd  0xffff51c0, %xmm0
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

emu3_foo29:
movapd  %xmm1, 0xffff51c0
movlpd  %xmm1, 0xffff51d0
movhpd  %xmm0, 0xffff51c0
movhpd  0xffff51d0, %xmm0
addpd   0xffff51c0, %xmm0
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

emu3_foo30:
movlpd  %xmm0, 0xffff51c0
movhpd  %xmm1, 0xffff51c8
movhpd  0xffff51c0, %xmm1
movlps  %xmm0, 0xffff51c8
subpd   %xmm0, %xmm1
movlps  %xmm0, 0xffff51c0
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

emu3_foo31:
movlpd  %xmm0, 0xffff51c0
addpd   %xmm1, %xmm0
movhpd  %xmm0, 0xffff51c8
movlps  %xmm0, 0xffff51c0
subpd   %xmm1, %xmm0
movhpd  0xffff51c8, %xmm0
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

emu3_foo32:
movaps  %xmm1, 0xffff51c0
movl	0xFFFF51CC, %eax
movl	%eax, 0xFFFF51C8
movl	0xFFFF51C4, %eax
movl	%eax, 0xFFFF51C0
movaps  0xffff51c0, %xmm2
pop	 %eax
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

emu3_foo33:
movaps  %xmm1, 0xffff51c0
movl	0xFFFF51C8, %eax
movl	%eax, 0xFFFF51CC
movl	0xFFFF51C0, %eax
movl	%eax, 0xFFFF51C4
movaps  0xffff51c0, %xmm2
pop	 %eax
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

emu3_foo34:
movaps  %xmm1, 0xffff51c0
movaps  %xmm1, 0xffff51e0
movaps  %xmm0, 0xffff51d0
movl	0xFFFF51D4, %eax
movl	%eax, 0xFFFF51C0
movl	0xFFFF51DC, %eax
movl	%eax, 0xFFFF51C4
movl	0xFFFF51E4, %eax
movl	%eax, 0xFFFF51C8
movl	0xFFFF51D8, %eax
movl	%eax, 0xFFFF51D4
movl	0xFFFF51E8, %eax
movl	%eax, 0xFFFF51DC
movl	0xFFFF51E0, %eax
movl	%eax, 0xFFFF51D8
movaps  0xffff51c0, %xmm1
movaps  0xffff51d0, %xmm0
addps   %xmm1, %xmm0
movaps  0xffff51e0, %xmm1
pop	 %eax
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

emu3_foo35:
movaps  %xmm1, 0xffff51c0
movaps  %xmm1, 0xffff51e0
movaps  %xmm0, 0xffff51d0
movl	0xFFFF51D4, %eax
movl	%eax, 0xFFFF51C0
movl	0xFFFF51DC, %eax
movl	%eax, 0xFFFF51C4
movl	0xFFFF51E4, %eax
movl	%eax, 0xFFFF51C8
movl	0xFFFF51D8, %eax
movl	%eax, 0xFFFF51D4
movl	0xFFFF51E8, %eax
movl	%eax, 0xFFFF51DC
movl	0xFFFF51E0, %eax
movl	%eax, 0xFFFF51D8
movaps  0xffff51c0, %xmm1
movaps  0xffff51d0, %xmm0
subps   %xmm1, %xmm0
movaps  0xffff51e0, %xmm1
pop	 %eax
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

emu3_foo36:
movaps  %xmm0, 0xffff51c0
addps   %xmm1, %xmm0
movaps  %xmm0, 0xffff51d0
movaps  0xffff51c0, %xmm0
subps   %xmm1, %xmm0
movaps  %xmm0, 0xffff51e0
movl	0xFFFF51D4, %eax
movl	%eax, 0xFFFF51E4
movl	0xFFFF51DC, %eax
movl	%eax, 0xFFFF51EC
movaps  0xffff51e0, %xmm0
pop	 %eax
addl	$0x00000004, 0xffff51f8
pushl   0xffff51f8
movl	$0xFFFFFFFF, 0xffff51fc
ret

.align 12, 0x0
some_text: /* code at 0xffff6000 */
.ascii "semthex - rufus SSE3-Emulator  v1.0 Alpha MSEINC"
.ascii "FISTTP:Incomplete "
.ascii "MOVSLUP:Incomplete "
.ascii "LDDQU:Incomplete "
.ascii "HADDPD:Beta "
.ascii "HADDPS:n/a "
.ascii "HSUBPD:n/a "
.ascii "HSUBPS:n/a "
.ascii "ADDSUBPD:n/a "
.ascii "ADDSUBPS:n/a "
.ascii "MOVSHDUP:n/a "
.ascii "MOVSLDUP:n/a"

If you want to check the code or disassembler something else and get a decent starting point I've attached my disassembler, it's not perfect and has gone through some considerable changes and only works on code-blocks (I don't have the time to make it decode data blocks).

 

You can compile it with:

./configure --disable-shared && make && sudo make install

If you have the emu-5000.bin file you can disassembler it with the following command:

disasmx86 -r 768 2940 -f emu-5000.bin -O sse3_part2.s -f att

disasmx86_0.22.0.tar.gz

sse3_part2.tar.gz

Link to comment
Share on other sites

Guest BuildSmart
BuildSmart, hmm..bad guy...don't try to looks good, you didn't develop sse3emu, you just pirated it.

it made by semthex and rufus, don't forget it.

 

p.s. it never was open source, cause there was no source

netkas, you're an idiot, I pirated nothing, I don't believe that semthex wrote this code, someone else who saw it claims that most of it it came from another emu project, funny but nothing in the source header claims that it's closed source and I don't claim it as my own.

Link to comment
Share on other sites

netkas, he never said it was his, and if it was made by semthex and rufus, he still has the message at 0xffff6000.

 

 

If you want to get the emu-xxxx.bin files, dump the memory from commpage or open a sse2 kernel and find the arrays

Link to comment
Share on other sites

  • 2 weeks later...
Guest BuildSmart

It seems that people are still not willing to share their kernel source and I'm tired of whinning babies who try to trick me into doing the entire integration for them but refuse to give me their source so I can see how to integrate it.

 

What is wrong with people who have the kernel source, why do they wish to hamper development?

 

All they're really doing by not sharing is preventing anyone else who can contribute from assisting in the development because they think they are better, how sad it is that they prevent development out of shear ignorance and stupidity.

 

Very simple, if you can't make it work don't ask me to help unless you're willing to provide your entire source, there are issues with integration using the DaemonES 10.4.8 source, I haven't seen a real DaemonES 10.4.9 source just the .8 source patches applied to the .9 source.

 

This is a rewrite of the code (semthex and rufus are not the original authors) and since I don't know who the real original author is I am unable to provide proper credit to this individual(s) and this source file is incomplete.

 

I am currently compiling the source without bin-patching or editing of any kind and it appears to work.

 

I can be found on irc.moofspeak.net if you require any assistance but I have no interest in explaining how to go about integration or answering any dumb question.

 

At this time I'm not releasing the entire source since I see no advantage sharing my work with people who are not willing to share with me unless this changes.

 

/*
* sse2_asm.s (code at ffff4000 + rewrites for optimization and speed)
*
* The code is targted for 0xffff4000
*
* True author unknown.
*
*/


freedom:
push		%eax;

loc_FFFF4001:
lock
incl		cs1_counter-freedom+0xffff4000
jnz 		loc_FFFF4020
mov			4(%esp), %eax
mov			%eax, cs1-freedom+0xffff4000 /* store invalid opcode at this memory location */
pop			%eax
movl		$loc_FFFF4100-freedom+0xffff4000, (%esp)
iret
nop

loc_FFFF4020:
lock
incl		cs2_counter-freedom+0xffff4000
jnz			loc_FFFF403C
mov			4(%esp), %eax
mov			%eax, (cs2)-freedom+0xffff4000
pop			%eax
movl		$loc_FFFF450C-freedom+0xffff4000, (%esp)
iret

loc_FFFF403C:
lock
incl		cs3_counter-freedom+0xffff4000
jnz			loc_FFFF4058
mov			4(%esp), %eax
mov			%eax, (cs3)-freedom+0xffff4000
pop			%eax
movl		$loc_FFFF4918-freedom+0x0ffff4000, (%esp)
iret

loc_FFFF4058:
lock
incl		cs4_counter-freedom+0xffff4000
jnz			loc_FFFF4074
mov			4(%esp), %eax
mov			%eax, (cs4)-freedom+0xffff4000
pop			%eax
movl		$loc_FFFF4640-freedom+0xffff4000, (%esp)
iret

loc_FFFF4074:
lock
incl		cs5_counter-freedom+0xffff4000
jnz			loc_FFFF4090
mov			4(%esp), %eax
mov			%eax, (cs5)-freedom+0xffff4000
pop			%eax
movl		$loc_FFFF4800-freedom+0xffff4000, (%esp)
iret

loc_FFFF4090:
lock
incl		cs6_counter-freedom+0xffff4000
jnz			loc_FFFF40AC
mov			4(%esp), %eax
mov			%eax, (cs6)-freedom+0xffff4000
pop			%eax
movl		$loc_FFFF49BD-freedom+0x03+0xffff4000, (%esp)
iret

loc_FFFF40AC:
movl		$counta-freedom+0xffff4000, %eax
incl		(%eax)
mov			(%eax), %eax
and			$0x0000ffff, %eax
jnz			loc_FFFF4001
incl		(countb)-freedom+0xffff4000
xor			%eax, %eax
dec			%eax
mov			%eax, cs1_counter-freedom+0xffff4000
mov			%eax, cs2_counter-freedom+0xffff4000
mov			%eax, cs3_counter-freedom+0xffff4000
mov			%eax, cs4_counter-freedom+0xffff4000
mov			%eax, cs5_counter-freedom+0xffff4000
mov			%eax, cs6_counter-freedom+0xffff4000
jmp			loc_FFFF4001
nop
nop
nop
nop

loc_FFFF4100:
pushfl
push		%eax
push		%ecx
push		%edx
push		%ebx
mov			cs1-freedom+0xffff4000, %edx
mov			(%edx), %ecx
cmpw		$0x04ddd, %cx
jnz			loc_FFFF4154
movl		$code_slot_store01-freedom+0xffff4000, %ebx
add			$0x03, 0x38(%ebx)
movsx		2(%edx), %ecx

loc_FFFF4121:
fnstcw		0x10(%ebx)
mov			0x10(%ebx), %ax
or			$0xc00, %ax
mov			%ax, 0x12(%ebx)
fldcw		0x12(%ebx)
add			%ecx, %ebp
fistpq		(%ebp)
sub			%ecx, %ebp
fldcw		0x10(%ebx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF427A
nop

loc_FFFF4154:
cmpw		$0x8ddd, %cx
jnz			loc_FFFF4180
movl		$code_slot_store01-freedom+0xffff4000, %ebx
add			$0x06, 0x38(%ebx)
mov			0x2(%edx), %ecx
jmp			loc_FFFF4121
nop

loc_FFFF416C:
or			$0x18, %ch
cmp			$0xdf, %cl
jz			loc_FFFF418D
cmp			$0xdb, %cl
jz			loc_FFFF418D
mov			%eax,% ecx
jmp			loc_FFFF41EC
nop

loc_FFFF4180:
mov			%ecx, %eax
cmp			$0xdd, %cl
jnz			loc_FFFF416C
or			$0x380f, %cx

loc_FFFF418D:
mov			%ah, %al
mov			$loc_FFFF4EC0-freedom+0xffff4000, %ebx
xlat
mov			$code_slot_store01-freedom+0xffff4000, %ebx
movzx		%al, %eax
mov			%ecx, (%ebx)
mov			0x04(%edx), %ecx
mov			%ecx, 0x04(%ebx)
movw		$0x25ff, (%eax, %ebx)
movl		$address01-freedom+0xffff4000, 0x02(%ebx, %eax)
add			%eax, 0x38(%ebx)
fnstcw		0x10(%ebx)
mov			0x10(%ebx), %ax
orw			$0x0c00, %ax
mov			%ax, 0x12(%ebx)
fldcw		0x12(%ebx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			code_slot_store01
nop

loc_FFFF41D4:
fldcw		code_slot_store02-freedom+0xffff4000
jmp			loc_FFFF427A
nop

loc_FFFF41EC:
and			$0x00ffffff, %ecx
cmp			$0x00f00ff2, %ecx
jnz			loc_FFFF4254
mov			%eax, %ecx
and			$0xff000000, %ecx
or			$0x006f0ff3, %ecx

loc_FFFF4208:
shr			$0x18, %eax
mov			$loc_FFFF4EC0-freedom+0xffff4000, %ebx
xlat
add			$0x2, %al
mov			$code_slot_store01-freedom+0xffff4000, %ebx
movzx		%al, %eax
mov			%ecx, (%ebx)
mov			0x04(%edx), %ecx
mov			%ecx, 0x04(%ebx)
movw		$0x25ff, (%ebx, %eax)
movl		$address09-freedom+0xffff4000, 0x02(%ebx, %eax)
add			%eax, 0x38(%ebx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			code_slot_store01
nop

loc_FFFF4254:
and			$0x00ffffff, %ecx /* get last 6 bytes */
cmp			$0x00120ff2, %ecx /* check if its MOVddUP opcode */
jz			loc_FFFF42BA
jnz			loc_FFFF428E

loc_FFFF4264:
mov			%eax, %ecx
or			$0x007e0ff3, %ecx
cmp			$0xc1120ff2, %eax /* check if its MOVddUP xmm1,xmm0 opcode */
jz			loc_FFFF4208
mov			%ecx, (%edx)

loc_FFFF4275:
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl

loc_FFFF427A:
push		cs1-freedom+0xffff4000
movl		$0xffffffff, cs1_counter-freedom+0xffff4000 /* clear cs1_counter */
ret
nop

loc_FFFF428E:
cmp			$0x007e0ff3, %ecx
jz			loc_FFFF4264
cmp			$0x007c0f66, %ecx /* check for haddpd xmm1,xmm0 */
jz			loc_FFFF42E9
jmp			loc_FFFF4322

loc_FFFF42A4:
jnz			loc_FFFF42B0
add			$0x04, cs1-freedom+0xffff4000
jmp			loc_FFFF4275

loc_FFFF42B0:
mov			$cs1_counter-freedom+0xffff4000, %ebx
jmp			loc_FFFF4D69

loc_FFFF42BA:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5308-freedom+0x03+0xffff4000
mov			%al, loc_FFFF5310-freedom+0x03+0xffff4000
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF5300-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF5300


loc_FFFF42E9:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5343-freedom+0x03+0xffff4000
mov			%al, loc_FFFF534B-freedom+0x03+0xffff4000
mov			%al, loc_FFFF5353-freedom+0x03+0xffff4000
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF5333-freedom+0x03+0xffff4000
mov			%al, loc_FFFF533B-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF5333

loc_FFFF4322:
cmp			$0x007d0f66, %ecx
jz			loc_FFFF4337
cmp			$0x0d00f66, %ecx
jz			loc_FFFF4375
jmp			loc_FFFF43AB

loc_FFFF4337:
shr			$0x18, %eax
mov			%al, loc_FFFF5396-freedom+0x03+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF537E-freedom+0x03+0xffff4000
mov			%al, loc_FFFF5386-freedom+0x03+0xffff4000
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF5376-freedom+0x03+0xffff4000
mov			%al, loc_FFFF538E-freedom+0x03+0xffff4000
mov			%al, loc_FFFF539A-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF5376

loc_FFFF4375:
shr			$0x18, %eax
mov			%al, loc_FFFF53C5-freedom+0x03+0xffff4000
mov			%al, loc_FFFF53D9-freedom+0x03+0xffff4000
sub			$0xc0, %eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF53BD-freedom+0x03+0xffff4000
mov			%al, loc_FFFF53C9-freedom+0x03+0xffff4000
mov			%al, loc_FFFF53D1-freedom+0x03+0xffff4000
mov			%al, loc_FFFF53DD-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF53BD

loc_FFFF43AB:
cmp			$0x00160ff3, %ecx
jz			loc_FFFF43C0
cmp			$0x00120ff3, %ecx
jz			loc_FFFF43EB
jmp			loc_FFFF4416

loc_FFFF43C0:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5400-freedom+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF541B-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF5400

loc_FFFF43EB:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF543E-freedom+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5459-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF543E

loc_FFFF4416:
cmp			$0x007c0ff2, %ecx
jz			loc_FFFF442B
cmp			$0x007d0ff2, %ecx
jz			loc_FFFF446F
jmp			loc_FFFF44B3

loc_FFFF442B:
shr			$0x18, %eax
mov			%al, loc_FFFF54DB-freedom+0x02+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF547C+0x02+0xffff4000
mov			%al, loc_FFFF5483+0x02+0xffff4000
mov			%al, loc_FFFF54CD+0x02+0xffff4000
mov			%al, loc_FFFF54DE+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF548A+0x02+0xffff4000
mov			%al, loc_FFFF54D4+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF547C

loc_FFFF446F:
shr			$0x18, %eax
mov			%al, loc_FFFF5560-freedom+0x02+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5501-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5508-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5552-freedom+0x02+0xffff4000
mov			%al, loc_FFFF54DE-freedom+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF550F-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5559-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF5501

loc_FFFF44B3:
cmp			$0x00d00ff2, %ecx
jz			loc_FFFF44C5
mov			$loc_FFFF42A4, %ebx
jmp			loc_FFFF4D24

loc_FFFF44C5:
shr			$0x18, %eax
mov			%al, loc_FFFF558D-freedom+0x02+0xffff4000
mov			%al, loc_FFFF559E-freedom+0x02+0xffff4000
sub			$0xc0, %eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5586-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5590-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5597-freedom+0x02+0xffff4000
mov			%al, loc_FFFF55A1-freedom+0x02+0xffff4000
mov			%al, loc_FFFF55BC-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF5586
nop

loc_FFFF450C:
pushfl
push		%eax
push		%ecx
push		%edx
push		%ebx
mov			cs2-freedom+0xffff4000, %edx
mov			(%edx), %ecx
cmp			$0x4ddd, %cx
jnz			loc_FFFF4560
movl		$cs1_counter-freedom+0x04+0xffff4000, %ebx
add			$0x03, 0x38(%ebx)
movsx		0x02(%edx), %ecx

loc_FFFF452D:
fnstcw		0x10(%ebx)
mov			0x10(%ebx), %ax
or			$0xc00, %ax
mov			%ax, 0x12(%ebx)
fldcw		0x12(%ebx)
add			%ecx, %ebp
fistpq		(%ebp)
sub			%ecx, %ebp
fldcw		0x10(%ebx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF464C
nop

loc_FFFF4560:
cmp			$0x8ddd, %cx
jnz			loc_FFFF458C
movl		$cs1_counter_store01-freedom+0xffff4000, %ebx
add			$0x06, 0x38(%ebx)
mov			0x02(%edx), %ecx
jmp			loc_FFFF452D
nop

loc_FFFF4578:
or			$0x18, %ch
cmp			$0xdf, %cl
jz			loc_FFFF4599
cmp			$0xdb, %cl
jz			loc_FFFF4599
mov			%eax, %ecx
jmp			loc_FFFF45F8
nop

loc_FFFF458C:
mov			%ecx, %eax
cmp			$0xdd, %cl /* is the opcode fISTTP dd */
jnz			loc_FFFF4578
or			$0x380f, %cx

loc_FFFF4599:
mov			%ah, %al
mov			$loc_FFFF4EC0-freedom+0xffff4000, %ebx
xlat
movl		$cs1_counter_store01-freedom+0xffff4000, %ebx
movzx		%al, %eax
mov			%ecx, (%ebx)
mov			0x04(%edx), %ecx
mov			%ecx, 0x04(%ebx)
movw		$0x25ff, (%ebx,%eax)
movl		$address02-freedom+0xffff4000, 0x02(%ebx,%eax) /* Need TO fIX */
add			%eax, 0x38(%ebx)
fnstcw		0x10(%ebx)
mov			0x10(%ebx), %ax
or			$0xc00, %ax
mov			%ax, 0x12(%ebx)
fldcw		0x12(%ebx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			cs1_counter_store01
nop

loc_FFFF45E0:
fldcw		cs1_counter_store02-freedom+0xffff4000
jmp			loc_FFFF464C
nop

loc_FFFF45F8:
and			$0x00ffffff, %ecx
cmp			$0x00f00ff2, %ecx
jnz			loc_FFFF4660
mov			%eax, %ecx
and			$0xff000000, %ecx
or			$0x006f0ff3, %ecx

loc_FFFF4614:
shr			$0x18, %eax
mov			loc_FFFF4EC0-freedom+0xffff4000, %ebx
xlat
add			$0x2, %al
mov			cs1_counter_store01-freedom+0xffff4000, %ebx
movzx		%al, %eax
mov			%ecx, (%ebx)
mov			0x04(%edx), %ecx
mov			%ecx, 0x04(%ebx)
movw		$0x25ff, (%ebx,%eax)
movl		$address10-freedom+0xffff4000, 0x02(%ebx,%eax) /*Need TO fIX */
add			%eax, 0x14(%ebx)

loc_FFFF4640:
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			cs1_counter_store01
nop

loc_FFFF464C:
push		cs2-freedom+0xffff4000
movl		$0xffffffff, cs2_counter-freedom+0xffff4000 /* clear cs2_counter */
ret
nop

loc_FFFF4660:
and			$0x00ffffff, %ecx /* get last 6 bytes */
cmp			$0x00120ff2, %ecx /* check if its MOVddUP opcode */
jz			loc_FFFF46C6
jnz			loc_FFFF469A

loc_FFFF4670:
mov			%eax, %ecx
or			$0x007e0ff3, %ecx
cmp			$0xc1120ff2, %eax /* check if its MOVddUP xmm1,xmm0 opcode */
jz			loc_FFFF4614
mov			%ecx, (%edx)

loc_FFFF4681:
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF464C

loc_FFFF469A:
cmp			$0x007e0ff3, %ecx
jz			loc_FFFF4670
cmp			$0x007c0f66, %ecx
jz			loc_FFFF46F5
jmp			loc_FFFF472E

loc_FFFF46B0:
jnz			loc_FFFF46BC
addl		$0x04, cs2-freedom+0xffff4000
jmp			loc_FFFF4681

loc_FFFF46BC:
movl		%ebx, cs2_counter-freedom+0xffff4000
jmp			loc_FFFF4D69

loc_FFFF46C6:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF55E7-freedom+0x02+0xffff4000
mov			%al, loc_FFFF55EF-freedom+0x03+0xffff4000
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF55DF-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF55DF

loc_FFFF46F5:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5622-freedom+0x03+0xffff4000
mov			%al, loc_FFFF562A-freedom+0x03+0xffff4000
mov			%al, loc_FFFF5632-freedom+0x03+0xffff4000

loc_FFFF4713:
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF5612-freedom+0x03+0xffff4000
mov			%al, loc_FFFF561A-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF5612

loc_FFFF472E:
cmp			$0x007d0f66, %ecx
jz			loc_FFFF4743
cmp			$0x00d00f66, %ecx
jz			loc_FFFF4781
jmp			loc_FFFF47B7

loc_FFFF4743:
shr			$0x18, %eax
mov			%al, loc_FFFF5675-freedom+0x03+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF565D-freedom+0x03+0xffff4000
mov			%al, loc_FFFF5665-freedom+0x03+0xffff4000
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF5655-freedom+0x03+0xffff4000
mov			%al, loc_FFFF566D-freedom+0x03+0xffff4000
mov			%al, loc_FFFF5679-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF5655

loc_FFFF4781:
shr			$0x18, %eax
mov			%al, loc_FFFF56A4-freedom+0x03+0xffff4000
mov			%al, loc_FFFF56B8-freedom+0x03+0xffff4000
sub			$0xc0, %eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF569C-freedom+0x03+0xffff4000
mov			%al, loc_FFFF56A8-freedom+0x03+0xffff4000
mov			%al, loc_FFFF56B0-freedom+0x03+0xffff4000
mov			%al, loc_FFFF56BC-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF569C

loc_FFFF47B7:
cmp			$0x00160ff3, %ecx
jz			loc_FFFF47CC
cmp			$0x00120ff3, %ecx
jz			loc_FFFF47F7
jmp			loc_FFFF4822

loc_FFFF47CC:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF56DF-freedom+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF56FA-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF56DF

loc_FFFF47F7:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax

loc_FFFF4800:
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF571D-freedom+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5738-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF571D

loc_FFFF4822:
cmp			$0x007c0ff2, %ecx
jz			loc_FFFF4837
cmp			$0x007d0ff2, %ecx
jz			loc_FFFF487B
jmp			loc_FFFF48BF

loc_FFFF4837:
shr			$0x18, %eax
mov			%al, loc_FFFF57BA-freedom+0x02+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF575B-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5762-freedom+0x02+0xffff4000
mov			%al, loc_FFFF57AC-freedom+0x02+0xffff4000
mov			%al, loc_FFFF57BD-freedom+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5769-freedom+0x02+0xffff4000
mov			%al, loc_FFFF57B3-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF575B

loc_FFFF487B:
shr			$0x18, %eax
mov			%al, loc_FFFF583F-freedom+0x02+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF57E0-freedom+0x02+0xffff4000
mov			%al, loc_FFFF57E7-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5831-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5842-freedom+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF57EE-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5838-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF57E0

loc_FFFF48BF:
cmp			$0x00d00ff2, %ecx
jz			loc_FFFF48D1
mov			loc_FFFF46B0-freedom+0xffff4000, %ebx
jmp			loc_FFFF4D24

loc_FFFF48D1:
shr			$0x18, %eax

loc_FFFF48D4:
mov			%al, loc_FFFF586C-freedom+0x02+0xffff4000
mov			%al, loc_FFFF587D-freedom+0x02+0xffff4000
sub			$0xc0, %eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5865-freedom+0x02+0xffff4000
mov			%al, loc_FFFF586F-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5876-freedom+0x02+0xffff4000
mov			%al, loc_FFFF5880-freedom+0x02+0xffff4000
mov			%al, loc_FFFF589B-freedom+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF5865

loc_FFFF4918:
pushfl
push		%eax
push		%ecx
push		%edx
push		%ebx
mov			cs3-freedom+0xffff4000, %edx
mov			(%edx), %ecx
cmp			$0x4ddd, %cx
jnz			loc_FFFF496C
movl		$cs2_counter-freedom+0x04+0xffff4000, %ebx
add			$0x03, 0x38(%ebx)
movsx		0x02(%edx), %ecx

loc_FFFF4939:
fnstcw		0x10(%ebx)
mov			0x10(%ebx), %ax

loc_FFFF4940:
or			$0xc00, %ax
mov			%ax, 0x12(%ebx)
fldcw		0x12(%ebx)
add			%ecx, %ebp
fistpq		(%ebp)
sub			%ecx, %ebp
fldcw		0x10(%ebx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF4A94

loc_FFFF496C:
cmp			$0x8ddd, %cx
jnz			loc_FFFF4998
movl		$cs2_counter-freedom+0x04+0xffff4000, %ebx
add			$0x03, 0x38(%ebx)
mov			0x02(%edx), %ecx
jmp			loc_FFFF4939

loc_FFFF4984:
or			$0x18, %ch
cmp			$0xdf, %cl
jz			loc_FFFF49A5
cmp			$0xdb, %cl
jz			loc_FFFF49A5
mov			%eax,% ecx
jmp			loc_FFFF4A04

loc_FFFF4998:
mov			%ecx, %eax
cmp			$0xdd, %cl /* is the opcode fISTTP dd */
jnz			loc_FFFF4984
or			$0x380f, %cx

loc_FFFF49A5:
mov			%ah, %al
mov			$loc_FFFF4EC0-freedom+0xffff4000, %ebx /* fixed so that the table can move without harm! */
xlat
movl		$cs2_counter-freedom+0x04+0xffff4000, %ebx
movzx		%al, %eax
mov			%ecx, (%ebx)
mov			0x04(%edx), %ecx
mov			%ecx, 0x04(%ebx)
loc_FFFF49BD:
movw		$0x25ff, (%ebx,%eax)
movl		$address03-freedom+0xffff4000, 0x02(%ebx,%eax) /* Need TO fIX */
add			%eax, 0x38(%ebx)
fnstcw		0x10(%ebx)
mov			0x10(%ebx), %ax
or			$0xc00, %ax
mov			%ax, 0x12(%ebx)
fldcw		0x12(%ebx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			cs2_counter+0x04

loc_FFFF49EC:
fldcw		cs2_counter-freedom+0xffff4000
jmp			loc_FFFF4A94
nop

loc_FFFF4A04:
and			$0x00ffffff, %ecx
cmp			$0x00f00ff2, %ecx
jnz			loc_FFFF4A6C
mov			%eax, %ecx
and			$0xff000000, %ecx
or			$0x006f0ff3, %ecx

loc_FFFF4A20:
shr			$0x18, %eax
mov			$loc_FFFF4EC0-freedom+0xffff4000, %ebx
xlat
add			$0x2, %al
mov			$code_slot_store01+0xffff4000, %ebx
movzx		%al, %eax
mov			%ecx, (%ebx)
mov			0x04(%edx), %ecx
mov			%ecx, 0x04(%ebx)
movw		$0x25ff, (%ebx, %eax)
movl		$address11-freedom+0xffff4000, 0x02(%ebx, %eax)
add			%eax, 0x38(%ebx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			cs2_counter+0x04

loc_FFFF4A6C:
and			$0x00ffffff, %ecx
cmp			$0x00120ff2, %ecx
jz			loc_FFFF4AD2
jnz			loc_FFFF4AA6

loc_FFFF4A7C:
mov			%eax, %ecx
or			$0x007e0ff3, %ecx
cmp			$0xc1120ff2, %eax
jz			loc_FFFF4A20
mov			%ecx, (%edx)

loc_FFFF4A8D:
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl

loc_FFFF4A94:
push		cs3-freedom+0xffff4000
movl		$0xffffffff, cs3_counter-freedom+0xffff4000 /* clear cs3_counter */
ret
nop

loc_FFFF4AA6:
cmp			$0x007e0ff3, %ecx
jz			loc_FFFF4A7C
cmp			$0x007c0f66, %ecx /* check for haddpd xmm1,xmm0 */
jz			loc_FFFF4B01
jmp			loc_FFFF4B3A

loc_FFFF4ABC:
jnz			loc_FFFF4AC8
add			$0x04, cs3-freedom+0xffff4000
jmp			loc_FFFF4A8D

loc_FFFF4AC8:
movl		cs3_counter-freedom+0xffff4000, %ebx
jmp			loc_FFFF4D69

loc_FFFF4AD2:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF58C6-freedom+0x03+0xffff4000
mov			%al, loc_FFFF58CE-freedom+0x03+0xffff4000
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF58BE-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF58BE


loc_FFFF4B01:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5901+0x03+0xffff4000
mov			%al, loc_FFFF5909+0x03+0xffff4000
mov			%al, loc_FFFF5911+0x03+0xffff4000
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF58F1-freedom+0x03+0xffff4000
mov			%al, loc_FFFF58F9-freedom+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF58F1

loc_FFFF4B3A:
cmp			$0x007d0f66, %ecx
jz			loc_FFFF4B4F
cmp			$0x00d00f66, %ecx
jz			loc_FFFF4B8D
jmp			loc_FFFF4BC3

loc_FFFF4B4F:
shr			$0x18, %eax
mov			%al, loc_FFFF5954+0x03+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF593C+0x03+0xffff4000
mov			%al, loc_FFFF5944+0x03+0xffff4000
mov			$reality-freedom+0xffff4000, %ebx
pop			%eax
xlat
mov			%al, loc_FFFF5934+0x03+0xffff4000
mov			%al, loc_FFFF594C+0x03+0xffff4000
mov			%al, loc_FFFF5958+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF5934

loc_FFFF4B8D:
shr			$0x18, %eax
mov			%al, loc_FFFF5983+0x03+0xffff4000
mov			%al, loc_FFFF5997+0x03+0xffff4000
sub			$0xc0, %eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF597B+0x03+0xffff4000
mov			%al, loc_FFFF5987+0x03+0xffff4000
mov			%al, loc_FFFF598F+0x03+0xffff4000
mov			%al, loc_FFFF599B+0x03+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
jmp			loc_FFFF597B

loc_FFFF4BC3:
cmp			$0x00160ff3, %ecx
jz			loc_FFFF4BD8
cmp			$0x00120ff3, %ecx
jz			loc_FFFF4C03
jmp			loc_FFFF4C2E

loc_FFFF4BD8:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF59BE+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF59D9+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF59BE

loc_FFFF4C03:
shr			$0x18, %eax
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF59FC+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5A17+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF59FC

loc_FFFF4C2E:
cmp			$0x007c0ff2, %ecx
jz			loc_FFFF4C43
cmp			$0x007d0ff2, %ecx
jz			loc_FFFF4C87
jmp			loc_FFFF4CCB

loc_FFFF4C43:
shr			$0x18, %eax
mov			%al, loc_FFFF5A99+0x02+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5A3A+0x02+0xffff4000
mov			%al, loc_FFFF5A41+0x02+0xffff4000
mov			%al, loc_FFFF5A8B+0x02+0xffff4000
mov			%al, loc_FFFF5A9C+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5A48+0x02+0xffff4000
mov			%al, loc_FFFF5A92+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF5A3A

loc_FFFF4C87:
shr			$0x18, %eax
mov			%al, loc_FFFF5B1E+0x02+0xffff4000
sub			$0xc0, %eax
push		%eax
mov			$reality-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5ABF+0x02+0xffff4000
mov			%al, loc_FFFF5AC6+0x02+0xffff4000
mov			%al, loc_FFFF5B10+0x02+0xffff4000
mov			%al, loc_FFFF5B21+0x02+0xffff4000
pop			%eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5ACD+0x02+0xffff4000
mov			%al, loc_FFFF5B17+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF5ABF

loc_FFFF4CCB:
cmpl		$0x00d00ff2, %ecx
jz			loc_FFFF4CDD
mov			$loc_FFFF4ABC-freedom+0xffff4000, %ebx
jmp			loc_FFFF4D24

loc_FFFF4CDD:
shr			$0x18, %eax
mov			%al, loc_FFFF5B4B+0x02+0xffff4000
mov			%al, loc_FFFF5B5C+0x02+0xffff4000
sub			$0xc0, %eax
mov			$loc_FFFF4FC0-freedom+0xffff4000, %ebx
xlat
mov			%al, loc_FFFF5B44+0x02+0xffff4000
mov			%al, loc_FFFF5B4E+0x02+0xffff4000
mov			%al, loc_FFFF5B55+0x02+0xffff4000
mov			%al, loc_FFFF5B5F+0x02+0xffff4000
mov			%al, loc_FFFF5B7A+0x02+0xffff4000
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
push		%eax
jmp			loc_FFFF5B44

loc_FFFF4D24:
mov			%eax, %ecx
shl			$0x08, %ecx
cmp			$0x7c0ff200, %ecx
jz			loc_FFFF4D67
cmp			$0xd00ff200, %ecx
jz			loc_FFFF4D67
cmp			$0x160ff300, %ecx
jz			loc_FFFF4D67
cmp			$0x120ff300, %ecx
jz			loc_FFFF4D67
cmp			$0xd00f6600, %ecx
jz			loc_FFFF4D67
cmp			$0x7d0ff200, %ecx
jz			loc_FFFF4D67
cmp			$0x7d0f6600, %ecx
jz			loc_FFFF4D67
cmp			$0x7c0f6600, %ecx

loc_FFFF4D67:
jmp			*%ebx

loc_FFFF4D69:
mov			$reality-freedom+0xffff4000, %ecx
mov			%edx, 0x1a4(%ecx)
mov			%eax, 0x19c(%ecx)
mov			0x04(%ecx), %eax
mov			%eax, 0x1a8(%ecx)
incl		0x1a8(%ecx)
movl		$0xffffffff, (%ebx)
movb		$0x1, 0x1ac(%ecx)
pop			%ebx
pop			%edx
pop			%ecx
pop			%eax
popfl
int			$0xfd
push		%eax
movl		$reality-freedom+0xffff4000, %eax
incl		0x1b4(%eax)
cmpb		$0x01, 0x1ac(%eax)
movb		$0x00, 0x1ac(%eax)
jnz			loc_FFFF4DD5
mov			0x1a4(%eax), %eax
mov			%eax, 0x04(%esp)
pop			%eax
push		$0x00
push		$0x06
pushal
movl		$ EXT(lo_alltraps), %ebx
mov			$0xffe0181e, %eax
jmp			*%eax

loc_FFFF4DD5:
pop			%eax
push		$0x00
push		$0xfd
pushal
movl		$ EXT(lo_allintrs), %ebx
mov			$0xffe0181e, %eax
jmp			*%eax

loc_FFFF4DEA:
incl		loc_FFFF51B0-freedom+0x0c+0xffff4000
cmp			$0x42424242, %eax
jnz			loc_FFFF4DFD
movl		$cs2_counter_store01-freedom+0xffff4000, %eax
iret

loc_FFFF4DFD:
push		$0x00
push		$0xfc
pushal
movl		$ EXT(lo_allintrs), %ebx
mov			$0xffe0181e, %eax
jmp			*%eax

/* fill */
.word	0x0000, 0x0000, 0x0000
.byte	0x00

address01:
.long	loc_FFFF41D4-freedom+0xffff4000			/* ffff41d4 */

address02:
.long	loc_FFFF45E0-freedom+0xffff4000			/* ffff45e0 */

address03:
.long	loc_FFFF49EC-freedom+0xffff4000			/* ffff9ec */

address04:
.long	loc_FFFF4713-freedom+0x01+0xffff4000	/* ffff4714 */

address05:
.long	loc_FFFF48D4-freedom+0xffff4000			/* ffff48d4 */

address06:
.long	loc_FFFF4A94-freedom+0xffff4000			/* ffff4a94 */

address07:
.long	0x00000000								/* 00000000 */

address08:
.long	0x00000000								/* 00000000 */

address09:
.long	loc_FFFF427A-freedom+0xffff400			/* ffff427A */

address10:
.long	loc_FFFF464C-freedom+0xffff4000			/* ffff464c */

address11:
.long	loc_FFFF4A94-freedom+0xffff400			/* ffff4a58 */

address12:
.long	loc_FFFF4781-freedom-0x1+0xffff4000		/* ffff4780 */

address13:
.long	loc_FFFF4940-freedom+0xffff4000 		/* ffff4940 */

address14:
.long	loc_FFFF4B01-freedom-0x01+0xffff4000	/* ffff4b00 */

address15:
.long	0x00000000								/* 00000000 */

address16:
.long	0x00000000								/* 00000000 */

.byte	0x00, 0x00, 0x00, 0x00
.byte	0x00

loc_FFFF4EC0:
/* link against code above so that if this moves so does the pointers above! */
.byte	0x02, 0x02, 0x02, 0x02, 0x03, 0x06, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x03, 0x06, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x03, 0x06, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x03, 0x06, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x03, 0x06, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x03, 0x06, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x03, 0x06, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x03, 0x06, 0x02, 0x02
.byte	0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03
.byte	0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03
.byte	0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03
.byte	0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03
.byte	0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03
.byte	0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03
.byte	0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03
.byte	0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x03
.byte	0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06
.byte	0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06
.byte	0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06
.byte	0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06
.byte	0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06
.byte	0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06
.byte	0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06
.byte	0x06, 0x06, 0x06, 0x06, 0x07, 0x06, 0x06, 0x06
.byte	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
.byte	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02

loc_FFFF4FC0:
.byte	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
.byte	0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d
.byte	0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15
.byte	0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d
.byte	0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25
.byte	0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d
.byte	0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35
.byte	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d

Link to comment
Share on other sites

Guest BuildSmart
I have 10.4.8 jas ppf1 ppf2.. is the 10.4.9 update well working? I also have an xfi audio card.. will it work 5.1? thanks

If it currently works in 10.4.8 there is no reason why it shouldn't work in 10.4.9.

Link to comment
Share on other sites

Guest BuildSmart
Well, im sure Kiko will be releasing a SSE2 patch very soon, since he + co-conspirators decided that writing one themseleves was way harder then hacking a IRC server and just stealing other peoples hard work. And people wonder why no one wanted to work with Kiko, well, there you are, he is a thief. Even if you werent happy that the source was being kept from some people, do you really think that stealing it and causing havoc on the IRC network was going to fix anything? Anyway, everything is equal now, so can this childish {censored} stop now? please? for the love of all that is good about osx86?
You really are not too bright if you think semthex didn't use any stolen code which he claimed he wrote himself.

 

First, semthex and rufus didn't write the sse2 stuff despite what they claim.

 

Second, I do have a real working source integrated into my kernel source that builds properly and I can say I wrote every line in this file when I converted it from the Intel syntax file to an AT&T syntax file before I started modifying the code to fix some programming errors that semthex and rufus introduced when they copied the code from another project and modified it to work here.

 

Third, it's a fact that kernel development/progression has been stymied because those involved in the semthex dog and pony show or have the source wont share the source so that those who can program can contribute to a seemingly worth-while cause.

 

Fourth, I believe there is some decent code in the semthex source but can only speculate on this becuase I have not seen any code.

 

Fifth, my code is based on an older 10.4.8 version of the DaemonES source which I believe is a decent base to start with and have applied my changes to this source tree.

 

Sixth, I have no issues sharing my bin-patch-less source but have reservation about sharing everything with a community that isn't willing to share and thus by releasing my source under the GNU-GPL I would expect that anyone using it would make their source available yet the current kernel dev's have already stated they want my source but are not willing to share theirs so it looks like I will be the only one producing a bin-patch-less kernel unless this changes.

 

Seventh, don't even try to defend the current kernel dev's position on their NO-RELEASE policy and cry that I'm not releasing my entire source, when everything is openly available, I will quickly follow suite by releasing my entire source.

 

 

 

I have included the DaemonES 10.4.9 diff for those who would like to know how I integrated the source which wasn't rocket science and any first year programmer would have already known how to do this.

 

I have also included an updated cpuid utility, thanks to those who supplied me with data for some AMD and Intel CPU's (see output from "cpuid -d") which helped me update the tables for greater detection.

 

I'm on windows now.. I'd like to know if it will be recognised by mac os..

As I said, if it currently works in 10.4.8 then it should work in 10.4.9.

 

If it doesn't work in 10.4.8 then a driver would be required, this can be achieved by either modifying an existing one to recognize the hardware or writting one from scratch.

daemones.tar.gz

cpuid_0.1.1.tar.gz

Link to comment
Share on other sites

 Share

×
×
  • Create New...