411380:	a8 20                	test   $0x20,%al
411382:	74 03                	je     0x411387
411384:	83 ce 01             	or     $0x1,%esi
411387:	a8 02                	test   $0x2,%al
411389:	74 06                	je     0x411391
41138b:	81 ce 00 00 08 00    	or     $0x80000,%esi
411391:	0f b7 d0             	movzwl %ax,%edx
411394:	8b ca                	mov    %edx,%ecx
411396:	23 cb                	and    %ebx,%ecx
411398:	74 2a                	je     0x4113c4
41139a:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4113a0:	74 1c                	je     0x4113be
4113a2:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
4113a8:	74 0c                	je     0x4113b6
4113aa:	3b cb                	cmp    %ebx,%ecx
4113ac:	75 16                	jne    0x4113c4
4113ae:	81 ce 00 03 00 00    	or     $0x300,%esi
4113b4:	eb 0e                	jmp    0x4113c4
4113b6:	81 ce 00 02 00 00    	or     $0x200,%esi
4113bc:	eb 06                	jmp    0x4113c4
4113be:	81 ce 00 01 00 00    	or     $0x100,%esi
4113c4:	81 e2 00 03 00 00    	and    $0x300,%edx
4113ca:	74 10                	je     0x4113dc
4113cc:	81 fa 00 02 00 00    	cmp    $0x200,%edx
4113d2:	75 0e                	jne    0x4113e2
4113d4:	81 ce 00 00 01 00    	or     $0x10000,%esi
4113da:	eb 06                	jmp    0x4113e2
4113dc:	81 ce 00 00 02 00    	or     $0x20000,%esi
4113e2:	ba 00 10 00 00       	mov    $0x1000,%edx
4113e7:	66 85 c2             	test   %ax,%dx
4113ea:	74 06                	je     0x4113f2
4113ec:	81 ce 00 00 04 00    	or     $0x40000,%esi
4113f2:	83 3d 14 3e 42 00 01 	cmpl   $0x1,0x423e14
4113f9:	0f 8c 89 01 00 00    	jl     0x411588
4113ff:	81 e7 1f 03 08 03    	and    $0x308031f,%edi
411405:	0f ae 5d f0          	stmxcsr -0x10(%ebp)
411409:	8b 45 f0             	mov    -0x10(%ebp),%eax
41140c:	33 c9                	xor    %ecx,%ecx
41140e:	84 c0                	test   %al,%al
411410:	79 03                	jns    0x411415
411412:	6a 10                	push   $0x10
411414:	59                   	pop    %ecx
411415:	a9 00 02 00 00       	test   $0x200,%eax
41141a:	74 03                	je     0x41141f
41141c:	83 c9 08             	or     $0x8,%ecx
41141f:	a9 00 04 00 00       	test   $0x400,%eax
411424:	74 03                	je     0x411429
411426:	83 c9 04             	or     $0x4,%ecx
411429:	a9 00 08 00 00       	test   $0x800,%eax
41142e:	74 03                	je     0x411433
411430:	83 c9 02             	or     $0x2,%ecx
411433:	85 c2                	test   %eax,%edx
411435:	74 03                	je     0x41143a
411437:	83 c9 01             	or     $0x1,%ecx
41143a:	a9 00 01 00 00       	test   $0x100,%eax
41143f:	74 06                	je     0x411447
411441:	81 c9 00 00 08 00    	or     $0x80000,%ecx
411447:	8b d0                	mov    %eax,%edx
411449:	bb 00 60 00 00       	mov    $0x6000,%ebx
41144e:	23 d3                	and    %ebx,%edx
411450:	74 2a                	je     0x41147c
411452:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
411458:	74 1c                	je     0x411476
41145a:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
411460:	74 0c                	je     0x41146e
411462:	3b d3                	cmp    %ebx,%edx
411464:	75 16                	jne    0x41147c
411466:	81 c9 00 03 00 00    	or     $0x300,%ecx
41146c:	eb 0e                	jmp    0x41147c
41146e:	81 c9 00 02 00 00    	or     $0x200,%ecx
411474:	eb 06                	jmp    0x41147c
411476:	81 c9 00 01 00 00    	or     $0x100,%ecx
41147c:	6a 40                	push   $0x40
41147e:	25 40 80 00 00       	and    $0x8040,%eax
411483:	5b                   	pop    %ebx
411484:	2b c3                	sub    %ebx,%eax
411486:	74 1b                	je     0x4114a3
411488:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
41148d:	74 0c                	je     0x41149b
41148f:	2b c3                	sub    %ebx,%eax
411491:	75 16                	jne    0x4114a9
411493:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
411499:	eb 0e                	jmp    0x4114a9
41149b:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
4114a1:	eb 06                	jmp    0x4114a9
4114a3:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
4114a9:	8b c7                	mov    %edi,%eax
4114ab:	23 7d 08             	and    0x8(%ebp),%edi
4114ae:	f7 d0                	not    %eax
4114b0:	23 c1                	and    %ecx,%eax
4114b2:	0b c7                	or     %edi,%eax
4114b4:	3b c1                	cmp    %ecx,%eax
4114b6:	0f 84 b5 00 00 00    	je     0x411571
4114bc:	50                   	push   %eax
4114bd:	e8 44 fc ff ff       	call   0x411106
4114c2:	50                   	push   %eax
4114c3:	89 45 f4             	mov    %eax,-0xc(%ebp)
4114c6:	e8 74 44 00 00       	call   0x41593f
4114cb:	59                   	pop    %ecx
4114cc:	59                   	pop    %ecx
4114cd:	0f ae 5d f4          	stmxcsr -0xc(%ebp)
4114d1:	8b 45 f4             	mov    -0xc(%ebp),%eax
4114d4:	33 c9                	xor    %ecx,%ecx
4114d6:	84 c0                	test   %al,%al
4114d8:	79 03                	jns    0x4114dd
4114da:	6a 10                	push   $0x10
4114dc:	59                   	pop    %ecx
4114dd:	a9 00 02 00 00       	test   $0x200,%eax
4114e2:	74 03                	je     0x4114e7
4114e4:	83 c9 08             	or     $0x8,%ecx
4114e7:	a9 00 04 00 00       	test   $0x400,%eax
4114ec:	74 03                	je     0x4114f1
4114ee:	83 c9 04             	or     $0x4,%ecx
4114f1:	a9 00 08 00 00       	test   $0x800,%eax
4114f6:	74 03                	je     0x4114fb
4114f8:	83 c9 02             	or     $0x2,%ecx
4114fb:	a9 00 10 00 00       	test   $0x1000,%eax
411500:	74 03                	je     0x411505
411502:	83 c9 01             	or     $0x1,%ecx
411505:	a9 00 01 00 00       	test   $0x100,%eax
41150a:	74 06                	je     0x411512
41150c:	81 c9 00 00 08 00    	or     $0x80000,%ecx
411512:	8b d0                	mov    %eax,%edx
411514:	bf 00 60 00 00       	mov    $0x6000,%edi
411519:	23 d7                	and    %edi,%edx
41151b:	74 2a                	je     0x411547
41151d:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
411523:	74 1c                	je     0x411541
411525:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
41152b:	74 0c                	je     0x411539
41152d:	3b d7                	cmp    %edi,%edx
41152f:	75 16                	jne    0x411547
411531:	81 c9 00 03 00 00    	or     $0x300,%ecx
411537:	eb 0e                	jmp    0x411547
411539:	81 c9 00 02 00 00    	or     $0x200,%ecx
41153f:	eb 06                	jmp    0x411547
411541:	81 c9 00 01 00 00    	or     $0x100,%ecx
411547:	25 40 80 00 00       	and    $0x8040,%eax
41154c:	2b c3                	sub    %ebx,%eax
41154e:	74 1b                	je     0x41156b
411550:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
411555:	74 0c                	je     0x411563
411557:	2b c3                	sub    %ebx,%eax
411559:	75 16                	jne    0x411571
41155b:	81 c9 00 00 00 01    	or     $0x1000000,%ecx
411561:	eb 0e                	jmp    0x411571
411563:	81 c9 00 00 00 03    	or     $0x3000000,%ecx
411569:	eb 06                	jmp    0x411571
41156b:	81 c9 00 00 00 02    	or     $0x2000000,%ecx
411571:	8b c1                	mov    %ecx,%eax
411573:	0b ce                	or     %esi,%ecx
411575:	33 c6                	xor    %esi,%eax
411577:	a9 1f 03 08 00       	test   $0x8031f,%eax
41157c:	74 06                	je     0x411584
41157e:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
411584:	8b c1                	mov    %ecx,%eax
411586:	eb 02                	jmp    0x41158a
411588:	8b c6                	mov    %esi,%eax
41158a:	5f                   	pop    %edi
41158b:	5e                   	pop    %esi
41158c:	5b                   	pop    %ebx
41158d:	8b e5                	mov    %ebp,%esp
41158f:	5d                   	pop    %ebp
411590:	c3                   	ret
411591:	8b ff                	mov    %edi,%edi
411593:	55                   	push   %ebp
411594:	8b ec                	mov    %esp,%ebp
411596:	8b 4d 08             	mov    0x8(%ebp),%ecx
411599:	33 c0                	xor    %eax,%eax
41159b:	f6 c1 10             	test   $0x10,%cl
41159e:	74 01                	je     0x4115a1
4115a0:	40                   	inc    %eax
4115a1:	f6 c1 08             	test   $0x8,%cl
4115a4:	74 03                	je     0x4115a9
4115a6:	83 c8 04             	or     $0x4,%eax
4115a9:	f6 c1 04             	test   $0x4,%cl
4115ac:	74 03                	je     0x4115b1
4115ae:	83 c8 08             	or     $0x8,%eax
4115b1:	f6 c1 02             	test   $0x2,%cl
4115b4:	74 03                	je     0x4115b9
4115b6:	83 c8 10             	or     $0x10,%eax
4115b9:	f6 c1 01             	test   $0x1,%cl
4115bc:	74 03                	je     0x4115c1
4115be:	83 c8 20             	or     $0x20,%eax
4115c1:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
4115c7:	74 03                	je     0x4115cc
4115c9:	83 c8 02             	or     $0x2,%eax
4115cc:	56                   	push   %esi
4115cd:	8b d1                	mov    %ecx,%edx
4115cf:	be 00 03 00 00       	mov    $0x300,%esi
4115d4:	57                   	push   %edi
4115d5:	bf 00 02 00 00       	mov    $0x200,%edi
4115da:	23 d6                	and    %esi,%edx
4115dc:	74 23                	je     0x411601
4115de:	81 fa 00 01 00 00    	cmp    $0x100,%edx
4115e4:	74 16                	je     0x4115fc
4115e6:	3b d7                	cmp    %edi,%edx
4115e8:	74 0b                	je     0x4115f5
4115ea:	3b d6                	cmp    %esi,%edx
4115ec:	75 13                	jne    0x411601
4115ee:	0d 00 0c 00 00       	or     $0xc00,%eax
4115f3:	eb 0c                	jmp    0x411601
4115f5:	0d 00 08 00 00       	or     $0x800,%eax
4115fa:	eb 05                	jmp    0x411601
4115fc:	0d 00 04 00 00       	or     $0x400,%eax
411601:	8b d1                	mov    %ecx,%edx
411603:	81 e2 00 00 03 00    	and    $0x30000,%edx
411609:	74 0c                	je     0x411617
41160b:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
411611:	75 06                	jne    0x411619
411613:	0b c7                	or     %edi,%eax
411615:	eb 02                	jmp    0x411619
411617:	0b c6                	or     %esi,%eax
411619:	5f                   	pop    %edi
41161a:	5e                   	pop    %esi
41161b:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
411621:	74 05                	je     0x411628
411623:	0d 00 10 00 00       	or     $0x1000,%eax
411628:	5d                   	pop    %ebp
411629:	c3                   	ret
41162a:	8b ff                	mov    %edi,%edi
41162c:	55                   	push   %ebp
41162d:	8b ec                	mov    %esp,%ebp
41162f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
411633:	75 15                	jne    0x41164a
411635:	e8 cd 66 ff ff       	call   0x407d07
41163a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
411640:	e8 e9 65 ff ff       	call   0x407c2e
411645:	83 c8 ff             	or     $0xffffffff,%eax
411648:	5d                   	pop    %ebp
411649:	c3                   	ret
41164a:	ff 75 08             	push   0x8(%ebp)
41164d:	6a 00                	push   $0x0
41164f:	ff 35 c4 46 42 00    	push   0x4246c4
411655:	ff 15 80 b0 41 00    	call   *0x41b080
41165b:	5d                   	pop    %ebp
41165c:	c3                   	ret
41165d:	8b ff                	mov    %edi,%edi
41165f:	55                   	push   %ebp
411660:	8b ec                	mov    %esp,%ebp
411662:	57                   	push   %edi
411663:	8b 7d 08             	mov    0x8(%ebp),%edi
411666:	85 ff                	test   %edi,%edi
411668:	75 0b                	jne    0x411675
41166a:	ff 75 0c             	push   0xc(%ebp)
41166d:	e8 ec 81 ff ff       	call   0x40985e
411672:	59                   	pop    %ecx
411673:	eb 24                	jmp    0x411699
411675:	56                   	push   %esi
411676:	8b 75 0c             	mov    0xc(%ebp),%esi
411679:	85 f6                	test   %esi,%esi
41167b:	75 09                	jne    0x411686
41167d:	57                   	push   %edi
41167e:	e8 a1 81 ff ff       	call   0x409824
411683:	59                   	pop    %ecx
411684:	eb 10                	jmp    0x411696
411686:	83 fe e0             	cmp    $0xffffffe0,%esi
411689:	76 25                	jbe    0x4116b0
41168b:	e8 77 66 ff ff       	call   0x407d07
411690:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
411696:	33 c0                	xor    %eax,%eax
411698:	5e                   	pop    %esi
411699:	5f                   	pop    %edi
41169a:	5d                   	pop    %ebp
41169b:	c3                   	ret
41169c:	e8 98 7f ff ff       	call   0x409639
4116a1:	85 c0                	test   %eax,%eax
4116a3:	74 e6                	je     0x41168b
4116a5:	56                   	push   %esi
4116a6:	e8 6f 7b ff ff       	call   0x40921a
4116ab:	59                   	pop    %ecx
4116ac:	85 c0                	test   %eax,%eax
4116ae:	74 db                	je     0x41168b
4116b0:	56                   	push   %esi
4116b1:	57                   	push   %edi
4116b2:	6a 00                	push   $0x0
4116b4:	ff 35 c4 46 42 00    	push   0x4246c4
4116ba:	ff 15 7c b0 41 00    	call   *0x41b07c
4116c0:	85 c0                	test   %eax,%eax
4116c2:	74 d8                	je     0x41169c
4116c4:	eb d2                	jmp    0x411698
4116c6:	8b ff                	mov    %edi,%edi
4116c8:	55                   	push   %ebp
4116c9:	8b ec                	mov    %esp,%ebp
4116cb:	51                   	push   %ecx
4116cc:	51                   	push   %ecx
4116cd:	66 8b 45 08          	mov    0x8(%ebp),%ax
4116d1:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4116d6:	66 3b c1             	cmp    %cx,%ax
4116d9:	75 04                	jne    0x4116df
4116db:	33 c0                	xor    %eax,%eax
4116dd:	eb 42                	jmp    0x411721
4116df:	b9 00 01 00 00       	mov    $0x100,%ecx
4116e4:	66 3b c1             	cmp    %cx,%ax
4116e7:	73 0e                	jae    0x4116f7
4116e9:	0f b7 c8             	movzwl %ax,%ecx
4116ec:	a1 c4 37 42 00       	mov    0x4237c4,%eax
4116f1:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4116f5:	eb 24                	jmp    0x41171b
4116f7:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
4116fb:	33 c0                	xor    %eax,%eax
4116fd:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
411701:	8d 45 fc             	lea    -0x4(%ebp),%eax
411704:	50                   	push   %eax
411705:	6a 01                	push   $0x1
411707:	8d 45 f8             	lea    -0x8(%ebp),%eax
41170a:	50                   	push   %eax
41170b:	6a 01                	push   $0x1
41170d:	ff 15 ec b0 41 00    	call   *0x41b0ec
411713:	85 c0                	test   %eax,%eax
411715:	74 c4                	je     0x4116db
411717:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
41171b:	0f b7 4d 0c          	movzwl 0xc(%ebp),%ecx
41171f:	23 c1                	and    %ecx,%eax
411721:	8b e5                	mov    %ebp,%esp
411723:	5d                   	pop    %ebp
411724:	c3                   	ret
411725:	8b ff                	mov    %edi,%edi
411727:	55                   	push   %ebp
411728:	8b ec                	mov    %esp,%ebp
41172a:	83 ec 24             	sub    $0x24,%esp
41172d:	a1 0c 30 42 00       	mov    0x42300c,%eax
411732:	33 c5                	xor    %ebp,%eax
411734:	89 45 fc             	mov    %eax,-0x4(%ebp)
411737:	53                   	push   %ebx
411738:	ff 75 10             	push   0x10(%ebp)
41173b:	8b 5d 08             	mov    0x8(%ebp),%ebx
41173e:	8d 4d e0             	lea    -0x20(%ebp),%ecx
411741:	e8 6b 3f ff ff       	call   0x4056b1
411746:	8d 43 01             	lea    0x1(%ebx),%eax
411749:	3d 00 01 00 00       	cmp    $0x100,%eax
41174e:	77 0b                	ja     0x41175b
411750:	8b 45 e4             	mov    -0x1c(%ebp),%eax
411753:	8b 00                	mov    (%eax),%eax
411755:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
411759:	eb 7a                	jmp    0x4117d5
41175b:	8b c3                	mov    %ebx,%eax
41175d:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
411760:	c1 f8 08             	sar    $0x8,%eax
411763:	89 45 dc             	mov    %eax,-0x24(%ebp)
411766:	51                   	push   %ecx
411767:	0f b6 c0             	movzbl %al,%eax
41176a:	50                   	push   %eax
41176b:	e8 87 00 00 00       	call   0x4117f7
411770:	59                   	pop    %ecx
411771:	59                   	pop    %ecx
411772:	85 c0                	test   %eax,%eax
411774:	74 13                	je     0x411789
411776:	8b 45 dc             	mov    -0x24(%ebp),%eax
411779:	88 45 f0             	mov    %al,-0x10(%ebp)