41543e:	09 58 04             	or     %ebx,0x4(%eax)
415441:	f6 c1 02             	test   $0x2,%cl
415444:	74 0c                	je     0x415452
415446:	8b 45 08             	mov    0x8(%ebp),%eax
415449:	bf 93 00 00 c0       	mov    $0xc0000093,%edi
41544e:	83 48 04 02          	orl    $0x2,0x4(%eax)
415452:	f6 c1 01             	test   $0x1,%cl
415455:	74 0c                	je     0x415463
415457:	8b 45 08             	mov    0x8(%ebp),%eax
41545a:	bf 91 00 00 c0       	mov    $0xc0000091,%edi
41545f:	83 48 04 04          	orl    $0x4,0x4(%eax)
415463:	f6 c1 04             	test   $0x4,%cl
415466:	74 0c                	je     0x415474
415468:	8b 45 08             	mov    0x8(%ebp),%eax
41546b:	bf 8e 00 00 c0       	mov    $0xc000008e,%edi
415470:	83 48 04 08          	orl    $0x8,0x4(%eax)
415474:	f6 c1 08             	test   $0x8,%cl
415477:	74 0c                	je     0x415485
415479:	8b 45 08             	mov    0x8(%ebp),%eax
41547c:	bf 90 00 00 c0       	mov    $0xc0000090,%edi
415481:	83 48 04 10          	orl    $0x10,0x4(%eax)
415485:	8b 4d 08             	mov    0x8(%ebp),%ecx
415488:	56                   	push   %esi
415489:	8b 75 0c             	mov    0xc(%ebp),%esi
41548c:	8b 06                	mov    (%esi),%eax
41548e:	c1 e0 04             	shl    $0x4,%eax
415491:	f7 d0                	not    %eax
415493:	33 41 08             	xor    0x8(%ecx),%eax
415496:	83 e0 10             	and    $0x10,%eax
415499:	31 41 08             	xor    %eax,0x8(%ecx)
41549c:	8b 4d 08             	mov    0x8(%ebp),%ecx
41549f:	8b 06                	mov    (%esi),%eax
4154a1:	03 c0                	add    %eax,%eax
4154a3:	f7 d0                	not    %eax
4154a5:	33 41 08             	xor    0x8(%ecx),%eax
4154a8:	83 e0 08             	and    $0x8,%eax
4154ab:	31 41 08             	xor    %eax,0x8(%ecx)
4154ae:	8b 4d 08             	mov    0x8(%ebp),%ecx
4154b1:	8b 06                	mov    (%esi),%eax
4154b3:	d1 e8                	shr    $1,%eax
4154b5:	f7 d0                	not    %eax
4154b7:	33 41 08             	xor    0x8(%ecx),%eax
4154ba:	83 e0 04             	and    $0x4,%eax
4154bd:	31 41 08             	xor    %eax,0x8(%ecx)
4154c0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4154c3:	8b 06                	mov    (%esi),%eax
4154c5:	c1 e8 03             	shr    $0x3,%eax
4154c8:	f7 d0                	not    %eax
4154ca:	33 41 08             	xor    0x8(%ecx),%eax
4154cd:	83 e0 02             	and    $0x2,%eax
4154d0:	31 41 08             	xor    %eax,0x8(%ecx)
4154d3:	8b 06                	mov    (%esi),%eax
4154d5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4154d8:	c1 e8 05             	shr    $0x5,%eax
4154db:	f7 d0                	not    %eax
4154dd:	33 41 08             	xor    0x8(%ecx),%eax
4154e0:	23 c3                	and    %ebx,%eax
4154e2:	31 41 08             	xor    %eax,0x8(%ecx)
4154e5:	e8 57 05 00 00       	call   0x415a41
4154ea:	8b d0                	mov    %eax,%edx
4154ec:	f6 c2 01             	test   $0x1,%dl
4154ef:	74 07                	je     0x4154f8
4154f1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4154f4:	83 49 0c 10          	orl    $0x10,0xc(%ecx)
4154f8:	f6 c2 04             	test   $0x4,%dl
4154fb:	74 07                	je     0x415504
4154fd:	8b 45 08             	mov    0x8(%ebp),%eax
415500:	83 48 0c 08          	orl    $0x8,0xc(%eax)
415504:	f6 c2 08             	test   $0x8,%dl
415507:	74 07                	je     0x415510
415509:	8b 45 08             	mov    0x8(%ebp),%eax
41550c:	83 48 0c 04          	orl    $0x4,0xc(%eax)
415510:	f6 c2 10             	test   $0x10,%dl
415513:	74 07                	je     0x41551c
415515:	8b 45 08             	mov    0x8(%ebp),%eax
415518:	83 48 0c 02          	orl    $0x2,0xc(%eax)
41551c:	f6 c2 20             	test   $0x20,%dl
41551f:	74 06                	je     0x415527
415521:	8b 45 08             	mov    0x8(%ebp),%eax
415524:	09 58 0c             	or     %ebx,0xc(%eax)
415527:	8b 06                	mov    (%esi),%eax
415529:	b9 00 0c 00 00       	mov    $0xc00,%ecx
41552e:	23 c1                	and    %ecx,%eax
415530:	74 35                	je     0x415567
415532:	3d 00 04 00 00       	cmp    $0x400,%eax
415537:	74 22                	je     0x41555b
415539:	3d 00 08 00 00       	cmp    $0x800,%eax
41553e:	74 0c                	je     0x41554c
415540:	3b c1                	cmp    %ecx,%eax
415542:	75 29                	jne    0x41556d
415544:	8b 45 08             	mov    0x8(%ebp),%eax
415547:	83 08 03             	orl    $0x3,(%eax)
41554a:	eb 21                	jmp    0x41556d
41554c:	8b 4d 08             	mov    0x8(%ebp),%ecx
41554f:	8b 01                	mov    (%ecx),%eax
415551:	83 e0 fe             	and    $0xfffffffe,%eax
415554:	83 c8 02             	or     $0x2,%eax
415557:	89 01                	mov    %eax,(%ecx)
415559:	eb 12                	jmp    0x41556d
41555b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41555e:	8b 01                	mov    (%ecx),%eax
415560:	83 e0 fd             	and    $0xfffffffd,%eax
415563:	0b c3                	or     %ebx,%eax
415565:	eb f0                	jmp    0x415557
415567:	8b 45 08             	mov    0x8(%ebp),%eax
41556a:	83 20 fc             	andl   $0xfffffffc,(%eax)
41556d:	8b 06                	mov    (%esi),%eax
41556f:	b9 00 03 00 00       	mov    $0x300,%ecx
415574:	23 c1                	and    %ecx,%eax
415576:	74 20                	je     0x415598
415578:	3d 00 02 00 00       	cmp    $0x200,%eax
41557d:	74 0c                	je     0x41558b
41557f:	3b c1                	cmp    %ecx,%eax
415581:	75 22                	jne    0x4155a5
415583:	8b 45 08             	mov    0x8(%ebp),%eax
415586:	83 20 e3             	andl   $0xffffffe3,(%eax)
415589:	eb 1a                	jmp    0x4155a5
41558b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41558e:	8b 01                	mov    (%ecx),%eax
415590:	83 e0 e7             	and    $0xffffffe7,%eax
415593:	83 c8 04             	or     $0x4,%eax
415596:	eb 0b                	jmp    0x4155a3
415598:	8b 4d 08             	mov    0x8(%ebp),%ecx
41559b:	8b 01                	mov    (%ecx),%eax
41559d:	83 e0 eb             	and    $0xffffffeb,%eax
4155a0:	83 c8 08             	or     $0x8,%eax
4155a3:	89 01                	mov    %eax,(%ecx)
4155a5:	8b 45 08             	mov    0x8(%ebp),%eax
4155a8:	8b 4d 14             	mov    0x14(%ebp),%ecx
4155ab:	c1 e1 05             	shl    $0x5,%ecx
4155ae:	33 08                	xor    (%eax),%ecx
4155b0:	81 e1 e0 ff 01 00    	and    $0x1ffe0,%ecx
4155b6:	31 08                	xor    %ecx,(%eax)
4155b8:	8b 45 08             	mov    0x8(%ebp),%eax
4155bb:	09 58 20             	or     %ebx,0x20(%eax)
4155be:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
4155c2:	74 2c                	je     0x4155f0
4155c4:	8b 45 08             	mov    0x8(%ebp),%eax
4155c7:	83 60 20 e1          	andl   $0xffffffe1,0x20(%eax)
4155cb:	8b 45 18             	mov    0x18(%ebp),%eax
4155ce:	d9 00                	flds   (%eax)
4155d0:	8b 45 08             	mov    0x8(%ebp),%eax
4155d3:	d9 58 10             	fstps  0x10(%eax)
4155d6:	8b 45 08             	mov    0x8(%ebp),%eax
4155d9:	09 58 60             	or     %ebx,0x60(%eax)
4155dc:	8b 45 08             	mov    0x8(%ebp),%eax
4155df:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4155e2:	83 60 60 e1          	andl   $0xffffffe1,0x60(%eax)
4155e6:	8b 45 08             	mov    0x8(%ebp),%eax
4155e9:	d9 03                	flds   (%ebx)
4155eb:	d9 58 50             	fstps  0x50(%eax)
4155ee:	eb 3a                	jmp    0x41562a
4155f0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4155f3:	8b 41 20             	mov    0x20(%ecx),%eax
4155f6:	83 e0 e3             	and    $0xffffffe3,%eax
4155f9:	83 c8 02             	or     $0x2,%eax
4155fc:	89 41 20             	mov    %eax,0x20(%ecx)
4155ff:	8b 45 18             	mov    0x18(%ebp),%eax
415602:	dd 00                	fldl   (%eax)
415604:	8b 45 08             	mov    0x8(%ebp),%eax
415607:	dd 58 10             	fstpl  0x10(%eax)
41560a:	8b 45 08             	mov    0x8(%ebp),%eax
41560d:	09 58 60             	or     %ebx,0x60(%eax)
415610:	8b 4d 08             	mov    0x8(%ebp),%ecx
415613:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
415616:	8b 41 60             	mov    0x60(%ecx),%eax
415619:	83 e0 e3             	and    $0xffffffe3,%eax
41561c:	83 c8 02             	or     $0x2,%eax
41561f:	89 41 60             	mov    %eax,0x60(%ecx)
415622:	8b 45 08             	mov    0x8(%ebp),%eax
415625:	dd 03                	fldl   (%ebx)
415627:	dd 58 50             	fstpl  0x50(%eax)
41562a:	e8 7e 03 00 00       	call   0x4159ad
41562f:	8d 45 08             	lea    0x8(%ebp),%eax
415632:	50                   	push   %eax
415633:	6a 01                	push   $0x1
415635:	6a 00                	push   $0x0
415637:	57                   	push   %edi
415638:	ff 15 94 40 42 00    	call   *0x424094
41563e:	8b 4d 08             	mov    0x8(%ebp),%ecx
415641:	8b 41 08             	mov    0x8(%ecx),%eax
415644:	a8 10                	test   $0x10,%al
415646:	74 06                	je     0x41564e
415648:	83 26 fe             	andl   $0xfffffffe,(%esi)
41564b:	8b 41 08             	mov    0x8(%ecx),%eax
41564e:	a8 08                	test   $0x8,%al
415650:	74 06                	je     0x415658
415652:	83 26 fb             	andl   $0xfffffffb,(%esi)
415655:	8b 41 08             	mov    0x8(%ecx),%eax
415658:	a8 04                	test   $0x4,%al
41565a:	74 06                	je     0x415662
41565c:	83 26 f7             	andl   $0xfffffff7,(%esi)
41565f:	8b 41 08             	mov    0x8(%ecx),%eax
415662:	a8 02                	test   $0x2,%al
415664:	74 06                	je     0x41566c
415666:	83 26 ef             	andl   $0xffffffef,(%esi)
415669:	8b 41 08             	mov    0x8(%ecx),%eax
41566c:	a8 01                	test   $0x1,%al
41566e:	74 03                	je     0x415673
415670:	83 26 df             	andl   $0xffffffdf,(%esi)
415673:	8b 01                	mov    (%ecx),%eax
415675:	ba ff f3 ff ff       	mov    $0xfffff3ff,%edx
41567a:	83 e0 03             	and    $0x3,%eax
41567d:	83 e8 00             	sub    $0x0,%eax
415680:	74 35                	je     0x4156b7
415682:	83 e8 01             	sub    $0x1,%eax
415685:	74 22                	je     0x4156a9
415687:	83 e8 01             	sub    $0x1,%eax
41568a:	74 0d                	je     0x415699
41568c:	83 e8 01             	sub    $0x1,%eax
41568f:	75 28                	jne    0x4156b9
415691:	81 0e 00 0c 00 00    	orl    $0xc00,(%esi)
415697:	eb 20                	jmp    0x4156b9
415699:	8b 06                	mov    (%esi),%eax
41569b:	25 ff fb ff ff       	and    $0xfffffbff,%eax
4156a0:	0d 00 08 00 00       	or     $0x800,%eax
4156a5:	89 06                	mov    %eax,(%esi)
4156a7:	eb 10                	jmp    0x4156b9
4156a9:	8b 06                	mov    (%esi),%eax
4156ab:	25 ff f7 ff ff       	and    $0xfffff7ff,%eax
4156b0:	0d 00 04 00 00       	or     $0x400,%eax
4156b5:	eb ee                	jmp    0x4156a5
4156b7:	21 16                	and    %edx,(%esi)
4156b9:	8b 01                	mov    (%ecx),%eax
4156bb:	c1 e8 02             	shr    $0x2,%eax
4156be:	83 e0 07             	and    $0x7,%eax
4156c1:	83 e8 00             	sub    $0x0,%eax
4156c4:	74 19                	je     0x4156df
4156c6:	83 e8 01             	sub    $0x1,%eax
4156c9:	74 09                	je     0x4156d4
4156cb:	83 e8 01             	sub    $0x1,%eax
4156ce:	75 1a                	jne    0x4156ea
4156d0:	21 16                	and    %edx,(%esi)
4156d2:	eb 16                	jmp    0x4156ea
4156d4:	8b 06                	mov    (%esi),%eax
4156d6:	23 c2                	and    %edx,%eax
4156d8:	0d 00 02 00 00       	or     $0x200,%eax
4156dd:	eb 09                	jmp    0x4156e8
4156df:	8b 06                	mov    (%esi),%eax
4156e1:	23 c2                	and    %edx,%eax
4156e3:	0d 00 03 00 00       	or     $0x300,%eax
4156e8:	89 06                	mov    %eax,(%esi)
4156ea:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
4156ee:	5e                   	pop    %esi
4156ef:	74 07                	je     0x4156f8
4156f1:	d9 41 50             	flds   0x50(%ecx)
4156f4:	d9 1b                	fstps  (%ebx)
4156f6:	eb 05                	jmp    0x4156fd
4156f8:	dd 41 50             	fldl   0x50(%ecx)
4156fb:	dd 1b                	fstpl  (%ebx)
4156fd:	5f                   	pop    %edi
4156fe:	5b                   	pop    %ebx
4156ff:	5d                   	pop    %ebp
415700:	c3                   	ret
415701:	8b ff                	mov    %edi,%edi
415703:	55                   	push   %ebp
415704:	8b ec                	mov    %esp,%ebp
415706:	8b 45 08             	mov    0x8(%ebp),%eax
415709:	83 f8 01             	cmp    $0x1,%eax
41570c:	74 15                	je     0x415723
41570e:	83 c0 fe             	add    $0xfffffffe,%eax
415711:	83 f8 01             	cmp    $0x1,%eax
415714:	77 18                	ja     0x41572e
415716:	e8 e0 96 ff ff       	call   0x40edfb
41571b:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
415721:	5d                   	pop    %ebp
415722:	c3                   	ret
415723:	e8 d3 96 ff ff       	call   0x40edfb
415728:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
41572e:	5d                   	pop    %ebp
41572f:	c3                   	ret
415730:	8b ff                	mov    %edi,%edi
415732:	55                   	push   %ebp
415733:	8b ec                	mov    %esp,%ebp
415735:	8b 55 0c             	mov    0xc(%ebp),%edx
415738:	83 ec 20             	sub    $0x20,%esp
41573b:	33 c9                	xor    %ecx,%ecx
41573d:	8b c1                	mov    %ecx,%eax
41573f:	39 14 c5 40 82 42 00 	cmp    %edx,0x428240(,%eax,8)
415746:	74 08                	je     0x415750
415748:	40                   	inc    %eax
415749:	83 f8 1d             	cmp    $0x1d,%eax
41574c:	7c f1                	jl     0x41573f
41574e:	eb 07                	jmp    0x415757
415750:	8b 0c c5 44 82 42 00 	mov    0x428244(,%eax,8),%ecx
415757:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41575a:	85 c9                	test   %ecx,%ecx
41575c:	74 55                	je     0x4157b3
41575e:	8b 45 10             	mov    0x10(%ebp),%eax
415761:	89 45 e8             	mov    %eax,-0x18(%ebp)
415764:	8b 45 14             	mov    0x14(%ebp),%eax
415767:	89 45 ec             	mov    %eax,-0x14(%ebp)
41576a:	8b 45 18             	mov    0x18(%ebp),%eax
41576d:	89 45 f0             	mov    %eax,-0x10(%ebp)
415770:	8b 45 1c             	mov    0x1c(%ebp),%eax
415773:	56                   	push   %esi
415774:	8b 75 08             	mov    0x8(%ebp),%esi
415777:	89 45 f4             	mov    %eax,-0xc(%ebp)
41577a:	8b 45 20             	mov    0x20(%ebp),%eax
41577d:	68 ff ff 00 00       	push   $0xffff
415782:	ff 75 28             	push   0x28(%ebp)
415785:	89 45 f8             	mov    %eax,-0x8(%ebp)
415788:	8b 45 24             	mov    0x24(%ebp),%eax
41578b:	89 75 e0             	mov    %esi,-0x20(%ebp)
41578e:	89 45 fc             	mov    %eax,-0x4(%ebp)
415791:	e8 28 02 00 00       	call   0x4159be
415796:	8d 45 e0             	lea    -0x20(%ebp),%eax
415799:	50                   	push   %eax
41579a:	e8 ea a4 ff ff       	call   0x40fc89
41579f:	83 c4 0c             	add    $0xc,%esp
4157a2:	85 c0                	test   %eax,%eax
4157a4:	75 07                	jne    0x4157ad
4157a6:	56                   	push   %esi
4157a7:	e8 55 ff ff ff       	call   0x415701
4157ac:	59                   	pop    %ecx
4157ad:	dd 45 f8             	fldl   -0x8(%ebp)
4157b0:	5e                   	pop    %esi
4157b1:	c9                   	leave
4157b2:	c3                   	ret
4157b3:	68 ff ff 00 00       	push   $0xffff
4157b8:	ff 75 28             	push   0x28(%ebp)
4157bb:	e8 fe 01 00 00       	call   0x4159be
4157c0:	ff 75 08             	push   0x8(%ebp)
4157c3:	e8 39 ff ff ff       	call   0x415701
4157c8:	dd 45 20             	fldl   0x20(%ebp)
4157cb:	83 c4 0c             	add    $0xc,%esp
4157ce:	c9                   	leave
4157cf:	c3                   	ret
4157d0:	8b ff                	mov    %edi,%edi
4157d2:	55                   	push   %ebp
4157d3:	8b ec                	mov    %esp,%ebp
4157d5:	dd 45 08             	fldl   0x8(%ebp)
4157d8:	d9 ee                	fldz
4157da:	dd e1                	fucom  %st(1)
4157dc:	df e0                	fnstsw %ax
4157de:	56                   	push   %esi
4157df:	f6 c4 44             	test   $0x44,%ah
4157e2:	7a 09                	jp     0x4157ed
4157e4:	dd d9                	fstp   %st(1)
4157e6:	33 f6                	xor    %esi,%esi
4157e8:	e9 ad 00 00 00       	jmp    0x41589a
4157ed:	57                   	push   %edi
4157ee:	66 8b 7d 0e          	mov    0xe(%ebp),%di
4157f2:	0f b7 c7             	movzwl %di,%eax
4157f5:	a9 f0 7f 00 00       	test   $0x7ff0,%eax
4157fa:	75 7a                	jne    0x415876
4157fc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4157ff:	8b 55 08             	mov    0x8(%ebp),%edx
415802:	f7 c1 ff ff 0f 00    	test   $0xfffff,%ecx
415808:	75 04                	jne    0x41580e