4143c8:	6a 02                	push   $0x2
4143ca:	0f b6 88 08 03 00 00 	movzbl 0x308(%eax),%ecx
4143d1:	b8 00 00 00 80       	mov    $0x80000000,%eax
4143d6:	f7 d9                	neg    %ecx
4143d8:	1b c9                	sbb    %ecx,%ecx
4143da:	23 c8                	and    %eax,%ecx
4143dc:	23 c8                	and    %eax,%ecx
4143de:	8b 45 10             	mov    0x10(%ebp),%eax
4143e1:	89 08                	mov    %ecx,(%eax)
4143e3:	58                   	pop    %eax
4143e4:	eb dc                	jmp    0x4143c2
4143e6:	8b 45 0c             	mov    0xc(%ebp),%eax
4143e9:	33 d2                	xor    %edx,%edx
4143eb:	8b 4d 10             	mov    0x10(%ebp),%ecx
4143ee:	be 00 00 80 7f       	mov    $0x7f800000,%esi
4143f3:	6a 03                	push   $0x3
4143f5:	38 90 08 03 00 00    	cmp    %dl,0x308(%eax)
4143fb:	8b 01                	mov    (%ecx),%eax
4143fd:	0f 94 c2             	sete   %dl
414400:	23 c6                	and    %esi,%eax
414402:	4a                   	dec    %edx
414403:	81 e2 00 00 00 80    	and    $0x80000000,%edx
414409:	03 d6                	add    %esi,%edx
41440b:	0b d0                	or     %eax,%edx
41440d:	81 e2 00 00 80 ff    	and    $0xff800000,%edx
414413:	89 11                	mov    %edx,(%ecx)
414415:	eb cc                	jmp    0x4143e3
414417:	90                   	nop
414418:	ed                   	in     (%dx),%eax
414419:	42                   	inc    %edx
41441a:	41                   	inc    %ecx
41441b:	00 ff                	add    %bh,%bh
41441d:	42                   	inc    %edx
41441e:	41                   	inc    %ecx
41441f:	00 0c 43             	add    %cl,(%ebx,%eax,2)
414422:	41                   	inc    %ecx
414423:	00 2f                	add    %ch,(%edi)
414425:	43                   	inc    %ebx
414426:	41                   	inc    %ecx
414427:	00 5e 43             	add    %bl,0x43(%esi)
41442a:	41                   	inc    %ecx
41442b:	00 7b 43             	add    %bh,0x43(%ebx)
41442e:	41                   	inc    %ecx
41442f:	00 ab 43 41 00 b9    	add    %ch,-0x46ffbebd(%ebx)
414435:	43                   	inc    %ebx
414436:	41                   	inc    %ecx
414437:	00 c5                	add    %al,%ch
414439:	43                   	inc    %ebx
41443a:	41                   	inc    %ecx
41443b:	00 e6                	add    %ah,%dh
41443d:	43                   	inc    %ebx
41443e:	41                   	inc    %ecx
41443f:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
414445:	8b 45 08             	mov    0x8(%ebp),%eax
414448:	83 f8 09             	cmp    $0x9,%eax
41444b:	0f 87 a9 00 00 00    	ja     0x4144fa
414451:	ff 24 85 3c 45 41 00 	jmp    *0x41453c(,%eax,4)
414458:	ff 75 10             	push   0x10(%ebp)
41445b:	ff 75 0c             	push   0xc(%ebp)
41445e:	e8 3f f6 ff ff       	call   0x413aa2
414463:	59                   	pop    %ecx
414464:	59                   	pop    %ecx
414465:	5d                   	pop    %ebp
414466:	c3                   	ret
414467:	ff 75 10             	push   0x10(%ebp)
41446a:	ff 75 0c             	push   0xc(%ebp)
41446d:	e8 72 f6 ff ff       	call   0x413ae4
414472:	eb ef                	jmp    0x414463
414474:	8b 45 0c             	mov    0xc(%ebp),%eax
414477:	33 c9                	xor    %ecx,%ecx
414479:	38 88 08 03 00 00    	cmp    %cl,0x308(%eax)
41447f:	0f 95 c1             	setne  %cl
414482:	c1 e1 1f             	shl    $0x1f,%ecx
414485:	8b 45 10             	mov    0x10(%ebp),%eax
414488:	83 20 00             	andl   $0x0,(%eax)
41448b:	89 48 04             	mov    %ecx,0x4(%eax)
41448e:	33 c0                	xor    %eax,%eax
414490:	5d                   	pop    %ebp
414491:	c3                   	ret
414492:	8b 45 0c             	mov    0xc(%ebp),%eax
414495:	33 c9                	xor    %ecx,%ecx
414497:	38 88 08 03 00 00    	cmp    %cl,0x308(%eax)
41449d:	0f 95 c1             	setne  %cl
4144a0:	c1 e1 1f             	shl    $0x1f,%ecx
4144a3:	81 c9 00 00 f0 7f    	or     $0x7ff00000,%ecx
4144a9:	eb da                	jmp    0x414485
4144ab:	8b 45 0c             	mov    0xc(%ebp),%eax
4144ae:	33 c9                	xor    %ecx,%ecx
4144b0:	38 88 08 03 00 00    	cmp    %cl,0x308(%eax)
4144b6:	8b 45 10             	mov    0x10(%ebp),%eax
4144b9:	0f 95 c1             	setne  %cl
4144bc:	c1 e1 1f             	shl    $0x1f,%ecx
4144bf:	81 c9 ff ff ff 7f    	or     $0x7fffffff,%ecx
4144c5:	83 08 ff             	orl    $0xffffffff,(%eax)
4144c8:	eb c1                	jmp    0x41448b
4144ca:	8b 45 0c             	mov    0xc(%ebp),%eax
4144cd:	ff 75 10             	push   0x10(%ebp)
4144d0:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
4144d7:	50                   	push   %eax
4144d8:	e8 11 f5 ff ff       	call   0x4139ee
4144dd:	59                   	pop    %ecx
4144de:	59                   	pop    %ecx
4144df:	eb ad                	jmp    0x41448e
4144e1:	8b 45 10             	mov    0x10(%ebp),%eax
4144e4:	83 20 00             	andl   $0x0,(%eax)
4144e7:	c7 40 04 00 00 f8 ff 	movl   $0xfff80000,0x4(%eax)
4144ee:	eb 9e                	jmp    0x41448e
4144f0:	8b 45 10             	mov    0x10(%ebp),%eax
4144f3:	83 20 00             	andl   $0x0,(%eax)
4144f6:	83 60 04 00          	andl   $0x0,0x4(%eax)
4144fa:	33 c0                	xor    %eax,%eax
4144fc:	40                   	inc    %eax
4144fd:	5d                   	pop    %ebp
4144fe:	c3                   	ret
4144ff:	8b 45 0c             	mov    0xc(%ebp),%eax
414502:	33 c9                	xor    %ecx,%ecx
414504:	6a 02                	push   $0x2
414506:	38 88 08 03 00 00    	cmp    %cl,0x308(%eax)
41450c:	0f 95 c1             	setne  %cl
41450f:	c1 e1 1f             	shl    $0x1f,%ecx
414512:	8b 45 10             	mov    0x10(%ebp),%eax
414515:	83 20 00             	andl   $0x0,(%eax)
414518:	89 48 04             	mov    %ecx,0x4(%eax)
41451b:	58                   	pop    %eax
41451c:	5d                   	pop    %ebp
41451d:	c3                   	ret
41451e:	8b 45 0c             	mov    0xc(%ebp),%eax
414521:	33 c9                	xor    %ecx,%ecx
414523:	6a 03                	push   $0x3
414525:	38 88 08 03 00 00    	cmp    %cl,0x308(%eax)
41452b:	0f 95 c1             	setne  %cl
41452e:	c1 e1 1f             	shl    $0x1f,%ecx
414531:	81 c9 00 00 f0 7f    	or     $0x7ff00000,%ecx
414537:	eb d9                	jmp    0x414512
414539:	8d 49 00             	lea    0x0(%ecx),%ecx
41453c:	58                   	pop    %eax
41453d:	44                   	inc    %esp
41453e:	41                   	inc    %ecx
41453f:	00 67 44             	add    %ah,0x44(%edi)
414542:	41                   	inc    %ecx
414543:	00 74 44 41          	add    %dh,0x41(%esp,%eax,2)
414547:	00 92 44 41 00 ab    	add    %dl,-0x54ffbebc(%edx)
41454d:	44                   	inc    %esp
41454e:	41                   	inc    %ecx
41454f:	00 ca                	add    %cl,%dl
414551:	44                   	inc    %esp
414552:	41                   	inc    %ecx
414553:	00 e1                	add    %ah,%cl
414555:	44                   	inc    %esp
414556:	41                   	inc    %ecx
414557:	00 f0                	add    %dh,%al
414559:	44                   	inc    %esp
41455a:	41                   	inc    %ecx
41455b:	00 ff                	add    %bh,%bh
41455d:	44                   	inc    %esp
41455e:	41                   	inc    %ecx
41455f:	00 1e                	add    %bl,(%esi)
414561:	45                   	inc    %ebp
414562:	41                   	inc    %ecx
414563:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
414569:	83 ec 28             	sub    $0x28,%esp
41456c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41456f:	53                   	push   %ebx
414570:	56                   	push   %esi
414571:	57                   	push   %edi
414572:	e8 55 3d 00 00       	call   0x4182cc
414577:	84 c0                	test   %al,%al
414579:	0f 84 43 02 00 00    	je     0x4147c2
41457f:	8b 75 2c             	mov    0x2c(%ebp),%esi
414582:	85 f6                	test   %esi,%esi
414584:	74 46                	je     0x4145cc
414586:	83 fe 02             	cmp    $0x2,%esi
414589:	7c 05                	jl     0x414590
41458b:	83 fe 24             	cmp    $0x24,%esi
41458e:	7e 3c                	jle    0x4145cc
414590:	8b 45 08             	mov    0x8(%ebp),%eax
414593:	33 db                	xor    %ebx,%ebx
414595:	50                   	push   %eax
414596:	53                   	push   %ebx
414597:	53                   	push   %ebx
414598:	53                   	push   %ebx
414599:	53                   	push   %ebx
41459a:	53                   	push   %ebx
41459b:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41459f:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
4145a6:	e8 c6 8d ff ff       	call   0x40d371
4145ab:	8b 4d 24             	mov    0x24(%ebp),%ecx
4145ae:	83 c4 18             	add    $0x18,%esp
4145b1:	85 c9                	test   %ecx,%ecx
4145b3:	0f 84 1a 02 00 00    	je     0x4147d3
4145b9:	8b 45 1c             	mov    0x1c(%ebp),%eax
4145bc:	0b 45 20             	or     0x20(%ebp),%eax
4145bf:	0f 85 0e 02 00 00    	jne    0x4147d3
4145c5:	88 19                	mov    %bl,(%ecx)
4145c7:	e9 07 02 00 00       	jmp    0x4147d3
4145cc:	8b 45 1c             	mov    0x1c(%ebp),%eax
4145cf:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4145d2:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
4145d6:	33 ff                	xor    %edi,%edi
4145d8:	89 45 d8             	mov    %eax,-0x28(%ebp)
4145db:	8b 45 20             	mov    0x20(%ebp),%eax
4145de:	89 45 dc             	mov    %eax,-0x24(%ebp)
4145e1:	e8 d5 32 00 00       	call   0x4178bb
4145e6:	8a d8                	mov    %al,%bl
4145e8:	8b 45 08             	mov    0x8(%ebp),%eax
4145eb:	88 5d f8             	mov    %bl,-0x8(%ebp)
4145ee:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
4145f2:	75 0a                	jne    0x4145fe
4145f4:	8b c8                	mov    %eax,%ecx
4145f6:	e8 c5 d2 ff ff       	call   0x4118c0
4145fb:	8b 45 08             	mov    0x8(%ebp),%eax
4145fe:	83 c0 0c             	add    $0xc,%eax
414601:	50                   	push   %eax
414602:	89 45 f4             	mov    %eax,-0xc(%ebp)
414605:	0f b6 c3             	movzbl %bl,%eax
414608:	6a 08                	push   $0x8
41460a:	50                   	push   %eax
41460b:	e8 dc e2 ff ff       	call   0x4128ec
414610:	83 c4 0c             	add    $0xc,%esp
414613:	85 c0                	test   %eax,%eax
414615:	74 26                	je     0x41463d
414617:	8b 75 f4             	mov    -0xc(%ebp),%esi
41461a:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41461d:	e8 99 32 00 00       	call   0x4178bb
414622:	8a d8                	mov    %al,%bl
414624:	56                   	push   %esi
414625:	0f b6 c3             	movzbl %bl,%eax
414628:	6a 08                	push   $0x8
41462a:	50                   	push   %eax
41462b:	88 5d f8             	mov    %bl,-0x8(%ebp)
41462e:	e8 b9 e2 ff ff       	call   0x4128ec
414633:	83 c4 0c             	add    $0xc,%esp
414636:	85 c0                	test   %eax,%eax
414638:	75 e0                	jne    0x41461a
41463a:	8b 75 2c             	mov    0x2c(%ebp),%esi
41463d:	0f b6 45 30          	movzbl 0x30(%ebp),%eax
414641:	89 45 fc             	mov    %eax,-0x4(%ebp)
414644:	80 fb 2d             	cmp    $0x2d,%bl
414647:	75 08                	jne    0x414651
414649:	83 c8 02             	or     $0x2,%eax
41464c:	89 45 fc             	mov    %eax,-0x4(%ebp)
41464f:	eb 05                	jmp    0x414656
414651:	80 fb 2b             	cmp    $0x2b,%bl
414654:	75 0d                	jne    0x414663
414656:	8d 4d 0c             	lea    0xc(%ebp),%ecx
414659:	e8 5d 32 00 00       	call   0x4178bb
41465e:	8a d8                	mov    %al,%bl
414660:	88 5d f8             	mov    %bl,-0x8(%ebp)
414663:	85 f6                	test   %esi,%esi
414665:	74 05                	je     0x41466c
414667:	83 fe 10             	cmp    $0x10,%esi
41466a:	75 76                	jne    0x4146e2
41466c:	8a c3                	mov    %bl,%al
41466e:	2c 30                	sub    $0x30,%al
414670:	3c 09                	cmp    $0x9,%al
414672:	77 08                	ja     0x41467c
414674:	0f be c3             	movsbl %bl,%eax
414677:	83 c0 d0             	add    $0xffffffd0,%eax
41467a:	eb 1e                	jmp    0x41469a
41467c:	8a c3                	mov    %bl,%al
41467e:	2c 61                	sub    $0x61,%al
414680:	3c 19                	cmp    $0x19,%al
414682:	77 08                	ja     0x41468c
414684:	0f be c3             	movsbl %bl,%eax
414687:	83 c0 a9             	add    $0xffffffa9,%eax
41468a:	eb 0e                	jmp    0x41469a
41468c:	8a c3                	mov    %bl,%al
41468e:	2c 41                	sub    $0x41,%al
414690:	3c 19                	cmp    $0x19,%al
414692:	77 47                	ja     0x4146db
414694:	0f be c3             	movsbl %bl,%eax
414697:	83 c0 c9             	add    $0xffffffc9,%eax
41469a:	85 c0                	test   %eax,%eax
41469c:	75 3d                	jne    0x4146db
41469e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4146a1:	e8 15 32 00 00       	call   0x4178bb
4146a6:	88 45 f4             	mov    %al,-0xc(%ebp)
4146a9:	3c 78                	cmp    $0x78,%al
4146ab:	74 18                	je     0x4146c5
4146ad:	3c 58                	cmp    $0x58,%al
4146af:	74 14                	je     0x4146c5
4146b1:	85 f6                	test   %esi,%esi
4146b3:	75 03                	jne    0x4146b8
4146b5:	6a 08                	push   $0x8
4146b7:	5e                   	pop    %esi
4146b8:	ff 75 f4             	push   -0xc(%ebp)
4146bb:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4146be:	e8 88 3b 00 00       	call   0x41824b
4146c3:	eb 1d                	jmp    0x4146e2
4146c5:	85 f6                	test   %esi,%esi
4146c7:	75 03                	jne    0x4146cc
4146c9:	6a 10                	push   $0x10
4146cb:	5e                   	pop    %esi
4146cc:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4146cf:	e8 e7 31 00 00       	call   0x4178bb
4146d4:	8a d8                	mov    %al,%bl
4146d6:	88 5d f8             	mov    %bl,-0x8(%ebp)
4146d9:	eb 07                	jmp    0x4146e2
4146db:	85 f6                	test   %esi,%esi
4146dd:	75 03                	jne    0x4146e2
4146df:	6a 0a                	push   $0xa
4146e1:	5e                   	pop    %esi
4146e2:	8b c6                	mov    %esi,%eax
4146e4:	99                   	cltd
4146e5:	8b ca                	mov    %edx,%ecx
4146e7:	89 45 e8             	mov    %eax,-0x18(%ebp)
4146ea:	51                   	push   %ecx
4146eb:	50                   	push   %eax
4146ec:	6a ff                	push   $0xffffffff
4146ee:	6a ff                	push   $0xffffffff
4146f0:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4146f3:	e8 28 96 01 00       	call   0x42dd20
4146f8:	89 45 e0             	mov    %eax,-0x20(%ebp)
4146fb:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4146fe:	8a c3                	mov    %bl,%al
414700:	2c 30                	sub    $0x30,%al
414702:	3c 09                	cmp    $0x9,%al
414704:	77 08                	ja     0x41470e
414706:	0f be c3             	movsbl %bl,%eax
414709:	83 c0 d0             	add    $0xffffffd0,%eax
41470c:	eb 23                	jmp    0x414731
41470e:	8a c3                	mov    %bl,%al
414710:	2c 61                	sub    $0x61,%al
414712:	3c 19                	cmp    $0x19,%al
414714:	77 08                	ja     0x41471e
414716:	0f be c3             	movsbl %bl,%eax
414719:	83 c0 a9             	add    $0xffffffa9,%eax
41471c:	eb 13                	jmp    0x414731
41471e:	8a c3                	mov    %bl,%al
414720:	2c 41                	sub    $0x41,%al
414722:	3c 19                	cmp    $0x19,%al
414724:	77 08                	ja     0x41472e
414726:	0f be c3             	movsbl %bl,%eax
414729:	83 c0 c9             	add    $0xffffffc9,%eax
41472c:	eb 03                	jmp    0x414731
41472e:	83 c8 ff             	or     $0xffffffff,%eax
414731:	89 45 f4             	mov    %eax,-0xc(%ebp)
414734:	3b c6                	cmp    %esi,%eax
414736:	73 6a                	jae    0x4147a2
414738:	8b 5d f0             	mov    -0x10(%ebp),%ebx
41473b:	57                   	push   %edi
41473c:	53                   	push   %ebx
41473d:	ff 75 ec             	push   -0x14(%ebp)
414740:	ff 75 e8             	push   -0x18(%ebp)
414743:	e8 78 58 ff ff       	call   0x409fc0
414748:	89 45 f0             	mov    %eax,-0x10(%ebp)
41474b:	8b ca                	mov    %edx,%ecx
41474d:	8b 45 f4             	mov    -0xc(%ebp),%eax
414750:	33 d2                	xor    %edx,%edx
414752:	03 45 f0             	add    -0x10(%ebp),%eax