410392:	85 ff                	test   %edi,%edi
410394:	75 08                	jne    0x41039e
410396:	83 c8 ff             	or     $0xffffffff,%eax
410399:	e9 80 01 00 00       	jmp    0x41051e
41039e:	ff 37                	push   (%edi)
4103a0:	56                   	push   %esi
4103a1:	e8 3d ff ff ff       	call   0x4102e3
4103a6:	59                   	pop    %ecx
4103a7:	59                   	pop    %ecx
4103a8:	85 c0                	test   %eax,%eax
4103aa:	75 12                	jne    0x4103be
4103ac:	e8 7e a3 ff ff       	call   0x40a72f
4103b1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4103b7:	e8 0d 71 ff ff       	call   0x4074c9
4103bc:	eb d8                	jmp    0x410396
4103be:	83 c0 08             	add    $0x8,%eax
4103c1:	32 db                	xor    %bl,%bl
4103c3:	88 5d e7             	mov    %bl,-0x19(%ebp)
4103c6:	eb 1a                	jmp    0x4103e2
4103c8:	8b c6                	mov    %esi,%eax
4103ca:	83 e8 0f             	sub    $0xf,%eax
4103cd:	74 0a                	je     0x4103d9
4103cf:	83 e8 06             	sub    $0x6,%eax
4103d2:	74 05                	je     0x4103d9
4103d4:	83 e8 01             	sub    $0x1,%eax
4103d7:	75 d3                	jne    0x4103ac
4103d9:	56                   	push   %esi
4103da:	e8 c2 fe ff ff       	call   0x4102a1
4103df:	83 c4 04             	add    $0x4,%esp
4103e2:	89 45 dc             	mov    %eax,-0x24(%ebp)
4103e5:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
4103e9:	84 db                	test   %bl,%bl
4103eb:	74 08                	je     0x4103f5
4103ed:	6a 03                	push   $0x3
4103ef:	e8 98 db ff ff       	call   0x40df8c
4103f4:	59                   	pop    %ecx
4103f5:	83 65 d4 00          	andl   $0x0,-0x2c(%ebp)
4103f9:	c6 45 e6 00          	movb   $0x0,-0x1a(%ebp)
4103fd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
410401:	8b 45 dc             	mov    -0x24(%ebp),%eax
410404:	8b 08                	mov    (%eax),%ecx
410406:	89 4d e0             	mov    %ecx,-0x20(%ebp)
410409:	84 db                	test   %bl,%bl
41040b:	74 0c                	je     0x410419
41040d:	51                   	push   %ecx
41040e:	e8 08 8d ff ff       	call   0x40911b
410413:	59                   	pop    %ecx
410414:	8b c8                	mov    %eax,%ecx
410416:	89 4d e0             	mov    %ecx,-0x20(%ebp)
410419:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
41041c:	83 f9 01             	cmp    $0x1,%ecx
41041f:	0f 94 c7             	sete   %bh
410422:	88 7d e6             	mov    %bh,-0x1a(%ebp)
410425:	84 ff                	test   %bh,%bh
410427:	75 71                	jne    0x41049a
410429:	85 c9                	test   %ecx,%ecx
41042b:	0f 84 fd 00 00 00    	je     0x41052e
410431:	83 fe 08             	cmp    $0x8,%esi
410434:	74 0a                	je     0x410440
410436:	83 fe 0b             	cmp    $0xb,%esi
410439:	74 05                	je     0x410440
41043b:	83 fe 04             	cmp    $0x4,%esi
41043e:	75 29                	jne    0x410469
410440:	8b 47 04             	mov    0x4(%edi),%eax
410443:	89 45 d0             	mov    %eax,-0x30(%ebp)
410446:	83 67 04 00          	andl   $0x0,0x4(%edi)
41044a:	83 fe 08             	cmp    $0x8,%esi
41044d:	75 41                	jne    0x410490
41044f:	e8 59 bf ff ff       	call   0x40c3ad
410454:	8b 40 08             	mov    0x8(%eax),%eax
410457:	89 45 cc             	mov    %eax,-0x34(%ebp)
41045a:	e8 4e bf ff ff       	call   0x40c3ad
41045f:	c7 40 08 8c 00 00 00 	movl   $0x8c,0x8(%eax)
410466:	8b 4d e0             	mov    -0x20(%ebp),%ecx
410469:	83 fe 08             	cmp    $0x8,%esi
41046c:	75 22                	jne    0x410490
41046e:	6b 05 64 a2 41 00 0c 	imul   $0xc,0x41a264,%eax
410475:	03 07                	add    (%edi),%eax
410477:	6b 15 68 a2 41 00 0c 	imul   $0xc,0x41a268,%edx
41047e:	03 d0                	add    %eax,%edx
410480:	89 45 c8             	mov    %eax,-0x38(%ebp)
410483:	3b c2                	cmp    %edx,%eax
410485:	74 13                	je     0x41049a
410487:	83 60 08 00          	andl   $0x0,0x8(%eax)
41048b:	83 c0 0c             	add    $0xc,%eax
41048e:	eb f0                	jmp    0x410480
410490:	a1 c0 10 42 00       	mov    0x4210c0,%eax
410495:	8b 55 dc             	mov    -0x24(%ebp),%edx
410498:	89 02                	mov    %eax,(%edx)
41049a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4104a1:	e8 34 00 00 00       	call   0x4104da
4104a6:	84 ff                	test   %bh,%bh
4104a8:	75 72                	jne    0x41051c
4104aa:	83 fe 08             	cmp    $0x8,%esi
4104ad:	75 3b                	jne    0x4104ea
4104af:	e8 f9 be ff ff       	call   0x40c3ad
4104b4:	ff 70 08             	push   0x8(%eax)
4104b7:	56                   	push   %esi
4104b8:	8b 5d e0             	mov    -0x20(%ebp),%ebx
4104bb:	8b cb                	mov    %ebx,%ecx
4104bd:	ff 15 54 91 41 00    	call   *0x419154
4104c3:	ff d3                	call   *%ebx
4104c5:	59                   	pop    %ecx
4104c6:	eb 2e                	jmp    0x4104f6
4104c8:	8b 75 08             	mov    0x8(%ebp),%esi
4104cb:	8b 7d d8             	mov    -0x28(%ebp),%edi
4104ce:	8a 5d e7             	mov    -0x19(%ebp),%bl
4104d1:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4104d4:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4104d7:	8a 7d e6             	mov    -0x1a(%ebp),%bh
4104da:	84 db                	test   %bl,%bl
4104dc:	74 0b                	je     0x4104e9
4104de:	6a 03                	push   $0x3
4104e0:	e8 ef da ff ff       	call   0x40dfd4
4104e5:	59                   	pop    %ecx
4104e6:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4104e9:	c3                   	ret
4104ea:	56                   	push   %esi
4104eb:	ff 15 54 91 41 00    	call   *0x419154
4104f1:	8b 5d e0             	mov    -0x20(%ebp),%ebx
4104f4:	ff d3                	call   *%ebx
4104f6:	59                   	pop    %ecx
4104f7:	83 fe 08             	cmp    $0x8,%esi
4104fa:	74 0a                	je     0x410506
4104fc:	83 fe 0b             	cmp    $0xb,%esi
4104ff:	74 05                	je     0x410506
410501:	83 fe 04             	cmp    $0x4,%esi
410504:	75 16                	jne    0x41051c
410506:	8b 45 d0             	mov    -0x30(%ebp),%eax
410509:	89 47 04             	mov    %eax,0x4(%edi)
41050c:	83 fe 08             	cmp    $0x8,%esi
41050f:	75 0b                	jne    0x41051c
410511:	e8 97 be ff ff       	call   0x40c3ad
410516:	8b 4d cc             	mov    -0x34(%ebp),%ecx
410519:	89 48 08             	mov    %ecx,0x8(%eax)
41051c:	33 c0                	xor    %eax,%eax
41051e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410521:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410528:	59                   	pop    %ecx
410529:	5f                   	pop    %edi
41052a:	5e                   	pop    %esi
41052b:	5b                   	pop    %ebx
41052c:	c9                   	leave
41052d:	c3                   	ret
41052e:	84 db                	test   %bl,%bl
410530:	74 08                	je     0x41053a
410532:	6a 03                	push   $0x3
410534:	e8 9b da ff ff       	call   0x40dfd4
410539:	59                   	pop    %ecx
41053a:	6a 03                	push   $0x3
41053c:	e8 e1 97 ff ff       	call   0x409d22
410541:	cc                   	int3
410542:	8b ff                	mov    %edi,%edi
410544:	55                   	push   %ebp
410545:	8b ec                	mov    %esp,%ebp
410547:	8b 4d 08             	mov    0x8(%ebp),%ecx
41054a:	8b c1                	mov    %ecx,%eax
41054c:	53                   	push   %ebx
41054d:	83 e0 10             	and    $0x10,%eax
410550:	bb 00 02 00 00       	mov    $0x200,%ebx
410555:	56                   	push   %esi
410556:	c1 e0 03             	shl    $0x3,%eax
410559:	57                   	push   %edi
41055a:	f6 c1 08             	test   $0x8,%cl
41055d:	74 02                	je     0x410561
41055f:	0b c3                	or     %ebx,%eax
410561:	f6 c1 04             	test   $0x4,%cl
410564:	74 05                	je     0x41056b
410566:	0d 00 04 00 00       	or     $0x400,%eax
41056b:	f6 c1 02             	test   $0x2,%cl
41056e:	74 05                	je     0x410575
410570:	0d 00 08 00 00       	or     $0x800,%eax
410575:	f6 c1 01             	test   $0x1,%cl
410578:	74 05                	je     0x41057f
41057a:	0d 00 10 00 00       	or     $0x1000,%eax
41057f:	be 00 01 00 00       	mov    $0x100,%esi
410584:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
41058a:	74 02                	je     0x41058e
41058c:	0b c6                	or     %esi,%eax
41058e:	8b d1                	mov    %ecx,%edx
410590:	bf 00 03 00 00       	mov    $0x300,%edi
410595:	23 d7                	and    %edi,%edx
410597:	74 1f                	je     0x4105b8
410599:	3b d6                	cmp    %esi,%edx
41059b:	74 16                	je     0x4105b3
41059d:	3b d3                	cmp    %ebx,%edx
41059f:	74 0b                	je     0x4105ac
4105a1:	3b d7                	cmp    %edi,%edx
4105a3:	75 13                	jne    0x4105b8
4105a5:	0d 00 60 00 00       	or     $0x6000,%eax
4105aa:	eb 0c                	jmp    0x4105b8
4105ac:	0d 00 40 00 00       	or     $0x4000,%eax
4105b1:	eb 05                	jmp    0x4105b8
4105b3:	0d 00 20 00 00       	or     $0x2000,%eax
4105b8:	ba 00 00 00 03       	mov    $0x3000000,%edx
4105bd:	5f                   	pop    %edi
4105be:	23 ca                	and    %edx,%ecx
4105c0:	5e                   	pop    %esi
4105c1:	5b                   	pop    %ebx
4105c2:	81 f9 00 00 00 01    	cmp    $0x1000000,%ecx
4105c8:	74 18                	je     0x4105e2
4105ca:	81 f9 00 00 00 02    	cmp    $0x2000000,%ecx
4105d0:	74 0b                	je     0x4105dd
4105d2:	3b ca                	cmp    %edx,%ecx
4105d4:	75 11                	jne    0x4105e7
4105d6:	0d 00 80 00 00       	or     $0x8000,%eax
4105db:	5d                   	pop    %ebp
4105dc:	c3                   	ret
4105dd:	83 c8 40             	or     $0x40,%eax
4105e0:	5d                   	pop    %ebp
4105e1:	c3                   	ret
4105e2:	0d 40 80 00 00       	or     $0x8040,%eax
4105e7:	5d                   	pop    %ebp
4105e8:	c3                   	ret
4105e9:	8b ff                	mov    %edi,%edi
4105eb:	55                   	push   %ebp
4105ec:	8b ec                	mov    %esp,%ebp
4105ee:	83 ec 0c             	sub    $0xc,%esp
4105f1:	56                   	push   %esi
4105f2:	dd 7d fc             	fnstsw -0x4(%ebp)
4105f5:	db e2                	fnclex
4105f7:	33 f6                	xor    %esi,%esi
4105f9:	46                   	inc    %esi
4105fa:	39 35 6c 1a 42 00    	cmp    %esi,0x421a6c
410600:	0f 8c 82 00 00 00    	jl     0x410688
410606:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
41060a:	33 c9                	xor    %ecx,%ecx
41060c:	8b d1                	mov    %ecx,%edx
41060e:	57                   	push   %edi
41060f:	bf 00 00 08 00       	mov    $0x80000,%edi
410614:	a8 3f                	test   $0x3f,%al
410616:	74 29                	je     0x410641
410618:	0f b7 d0             	movzwl %ax,%edx
41061b:	23 d6                	and    %esi,%edx
41061d:	c1 e2 04             	shl    $0x4,%edx
410620:	a8 04                	test   $0x4,%al
410622:	74 03                	je     0x410627
410624:	83 ca 08             	or     $0x8,%edx
410627:	a8 08                	test   $0x8,%al
410629:	74 03                	je     0x41062e
41062b:	83 ca 04             	or     $0x4,%edx
41062e:	a8 10                	test   $0x10,%al
410630:	74 03                	je     0x410635
410632:	83 ca 02             	or     $0x2,%edx
410635:	a8 20                	test   $0x20,%al
410637:	74 02                	je     0x41063b
410639:	0b d6                	or     %esi,%edx
41063b:	a8 02                	test   $0x2,%al
41063d:	74 02                	je     0x410641
41063f:	0b d7                	or     %edi,%edx
410641:	0f ae 5d f8          	stmxcsr -0x8(%ebp)
410645:	8b 45 f8             	mov    -0x8(%ebp),%eax
410648:	83 e0 c0             	and    $0xffffffc0,%eax
41064b:	89 45 f4             	mov    %eax,-0xc(%ebp)
41064e:	0f ae 55 f4          	ldmxcsr -0xc(%ebp)
410652:	8b 45 f8             	mov    -0x8(%ebp),%eax
410655:	a8 3f                	test   $0x3f,%al
410657:	74 28                	je     0x410681
410659:	8b c8                	mov    %eax,%ecx
41065b:	23 ce                	and    %esi,%ecx
41065d:	c1 e1 04             	shl    $0x4,%ecx
410660:	a8 04                	test   $0x4,%al
410662:	74 03                	je     0x410667
410664:	83 c9 08             	or     $0x8,%ecx
410667:	a8 08                	test   $0x8,%al
410669:	74 03                	je     0x41066e
41066b:	83 c9 04             	or     $0x4,%ecx
41066e:	a8 10                	test   $0x10,%al
410670:	74 03                	je     0x410675
410672:	83 c9 02             	or     $0x2,%ecx
410675:	a8 20                	test   $0x20,%al
410677:	74 02                	je     0x41067b
410679:	0b ce                	or     %esi,%ecx
41067b:	a8 02                	test   $0x2,%al
41067d:	74 02                	je     0x410681
41067f:	0b cf                	or     %edi,%ecx
410681:	0b ca                	or     %edx,%ecx
410683:	8b c1                	mov    %ecx,%eax
410685:	5f                   	pop    %edi
410686:	eb 3c                	jmp    0x4106c4
410688:	66 8b 4d fc          	mov    -0x4(%ebp),%cx
41068c:	33 c0                	xor    %eax,%eax
41068e:	f6 c1 3f             	test   $0x3f,%cl
410691:	74 31                	je     0x4106c4
410693:	0f b7 c1             	movzwl %cx,%eax
410696:	23 c6                	and    %esi,%eax
410698:	c1 e0 04             	shl    $0x4,%eax
41069b:	f6 c1 04             	test   $0x4,%cl
41069e:	74 03                	je     0x4106a3
4106a0:	83 c8 08             	or     $0x8,%eax
4106a3:	f6 c1 08             	test   $0x8,%cl
4106a6:	74 03                	je     0x4106ab
4106a8:	83 c8 04             	or     $0x4,%eax
4106ab:	f6 c1 10             	test   $0x10,%cl
4106ae:	74 03                	je     0x4106b3
4106b0:	83 c8 02             	or     $0x2,%eax
4106b3:	f6 c1 20             	test   $0x20,%cl
4106b6:	74 02                	je     0x4106ba
4106b8:	0b c6                	or     %esi,%eax
4106ba:	f6 c1 02             	test   $0x2,%cl
4106bd:	74 05                	je     0x4106c4
4106bf:	0d 00 00 08 00       	or     $0x80000,%eax
4106c4:	5e                   	pop    %esi
4106c5:	c9                   	leave
4106c6:	c3                   	ret
4106c7:	8b ff                	mov    %edi,%edi
4106c9:	55                   	push   %ebp
4106ca:	8b ec                	mov    %esp,%ebp
4106cc:	83 ec 10             	sub    $0x10,%esp
4106cf:	9b d9 7d f8          	fstcw  -0x8(%ebp)
4106d3:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
4106d7:	0f b7 c8             	movzwl %ax,%ecx
4106da:	83 e1 01             	and    $0x1,%ecx
4106dd:	c1 e1 04             	shl    $0x4,%ecx
4106e0:	a8 04                	test   $0x4,%al
4106e2:	74 03                	je     0x4106e7
4106e4:	83 c9 08             	or     $0x8,%ecx
4106e7:	a8 08                	test   $0x8,%al
4106e9:	74 03                	je     0x4106ee
4106eb:	83 c9 04             	or     $0x4,%ecx
4106ee:	a8 10                	test   $0x10,%al
4106f0:	74 03                	je     0x4106f5
4106f2:	83 c9 02             	or     $0x2,%ecx
4106f5:	a8 20                	test   $0x20,%al
4106f7:	74 03                	je     0x4106fc
4106f9:	83 c9 01             	or     $0x1,%ecx
4106fc:	a8 02                	test   $0x2,%al
4106fe:	74 06                	je     0x410706
410700:	81 c9 00 00 08 00    	or     $0x80000,%ecx
410706:	53                   	push   %ebx
410707:	56                   	push   %esi
410708:	0f b7 f0             	movzwl %ax,%esi
41070b:	bb 00 0c 00 00       	mov    $0xc00,%ebx
410710:	8b d6                	mov    %esi,%edx
410712:	57                   	push   %edi
410713:	bf 00 02 00 00       	mov    $0x200,%edi
410718:	23 d3                	and    %ebx,%edx
41071a:	74 26                	je     0x410742
41071c:	81 fa 00 04 00 00    	cmp    $0x400,%edx
410722:	74 18                	je     0x41073c
410724:	81 fa 00 08 00 00    	cmp    $0x800,%edx
41072a:	74 0c                	je     0x410738
41072c:	3b d3                	cmp    %ebx,%edx
41072e:	75 12                	jne    0x410742
410730:	81 c9 00 03 00 00    	or     $0x300,%ecx
410736:	eb 0a                	jmp    0x410742
410738:	0b cf                	or     %edi,%ecx
41073a:	eb 06                	jmp    0x410742
41073c:	81 c9 00 01 00 00    	or     $0x100,%ecx
410742:	81 e6 00 03 00 00    	and    $0x300,%esi