41a486:	74 e8                	je     0x41a470
41a488:	8b 41 fc             	mov    -0x4(%ecx),%eax
41a48b:	84 c0                	test   %al,%al
41a48d:	74 32                	je     0x41a4c1
41a48f:	84 e4                	test   %ah,%ah
41a491:	74 24                	je     0x41a4b7
41a493:	a9 00 00 ff 00       	test   $0xff0000,%eax
41a498:	74 13                	je     0x41a4ad
41a49a:	a9 00 00 00 ff       	test   $0xff000000,%eax
41a49f:	74 02                	je     0x41a4a3
41a4a1:	eb cd                	jmp    0x41a470
41a4a3:	8d 41 ff             	lea    -0x1(%ecx),%eax
41a4a6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a4aa:	2b c1                	sub    %ecx,%eax
41a4ac:	c3                   	ret
41a4ad:	8d 41 fe             	lea    -0x2(%ecx),%eax
41a4b0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a4b4:	2b c1                	sub    %ecx,%eax
41a4b6:	c3                   	ret
41a4b7:	8d 41 fd             	lea    -0x3(%ecx),%eax
41a4ba:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a4be:	2b c1                	sub    %ecx,%eax
41a4c0:	c3                   	ret
41a4c1:	8d 41 fc             	lea    -0x4(%ecx),%eax
41a4c4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a4c8:	2b c1                	sub    %ecx,%eax
41a4ca:	c3                   	ret
41a4cb:	cc                   	int3
41a4cc:	cc                   	int3
41a4cd:	cc                   	int3
41a4ce:	cc                   	int3
41a4cf:	cc                   	int3
41a4d0:	51                   	push   %ecx
41a4d1:	8d 4c 24 04          	lea    0x4(%esp),%ecx
41a4d5:	2b c8                	sub    %eax,%ecx
41a4d7:	1b c0                	sbb    %eax,%eax
41a4d9:	f7 d0                	not    %eax
41a4db:	23 c8                	and    %eax,%ecx
41a4dd:	8b c4                	mov    %esp,%eax
41a4df:	25 00 f0 ff ff       	and    $0xfffff000,%eax
41a4e4:	3b c8                	cmp    %eax,%ecx
41a4e6:	72 0a                	jb     0x41a4f2
41a4e8:	8b c1                	mov    %ecx,%eax
41a4ea:	59                   	pop    %ecx
41a4eb:	94                   	xchg   %eax,%esp
41a4ec:	8b 00                	mov    (%eax),%eax
41a4ee:	89 04 24             	mov    %eax,(%esp)
41a4f1:	c3                   	ret
41a4f2:	2d 00 10 00 00       	sub    $0x1000,%eax
41a4f7:	85 00                	test   %eax,(%eax)
41a4f9:	eb e9                	jmp    0x41a4e4
41a4fb:	cc                   	int3
41a4fc:	cc                   	int3
41a4fd:	cc                   	int3
41a4fe:	cc                   	int3
41a4ff:	cc                   	int3
41a500:	57                   	push   %edi
41a501:	56                   	push   %esi
41a502:	53                   	push   %ebx
41a503:	33 ff                	xor    %edi,%edi
41a505:	8b 44 24 14          	mov    0x14(%esp),%eax
41a509:	0b c0                	or     %eax,%eax
41a50b:	7d 14                	jge    0x41a521
41a50d:	47                   	inc    %edi
41a50e:	8b 54 24 10          	mov    0x10(%esp),%edx
41a512:	f7 d8                	neg    %eax
41a514:	f7 da                	neg    %edx
41a516:	83 d8 00             	sbb    $0x0,%eax
41a519:	89 44 24 14          	mov    %eax,0x14(%esp)
41a51d:	89 54 24 10          	mov    %edx,0x10(%esp)
41a521:	8b 44 24 1c          	mov    0x1c(%esp),%eax
41a525:	0b c0                	or     %eax,%eax
41a527:	7d 14                	jge    0x41a53d
41a529:	47                   	inc    %edi
41a52a:	8b 54 24 18          	mov    0x18(%esp),%edx
41a52e:	f7 d8                	neg    %eax
41a530:	f7 da                	neg    %edx
41a532:	83 d8 00             	sbb    $0x0,%eax
41a535:	89 44 24 1c          	mov    %eax,0x1c(%esp)
41a539:	89 54 24 18          	mov    %edx,0x18(%esp)
41a53d:	0b c0                	or     %eax,%eax
41a53f:	75 18                	jne    0x41a559
41a541:	8b 4c 24 18          	mov    0x18(%esp),%ecx
41a545:	8b 44 24 14          	mov    0x14(%esp),%eax
41a549:	33 d2                	xor    %edx,%edx
41a54b:	f7 f1                	div    %ecx
41a54d:	8b d8                	mov    %eax,%ebx
41a54f:	8b 44 24 10          	mov    0x10(%esp),%eax
41a553:	f7 f1                	div    %ecx
41a555:	8b d3                	mov    %ebx,%edx
41a557:	eb 41                	jmp    0x41a59a
41a559:	8b d8                	mov    %eax,%ebx
41a55b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
41a55f:	8b 54 24 14          	mov    0x14(%esp),%edx
41a563:	8b 44 24 10          	mov    0x10(%esp),%eax
41a567:	d1 eb                	shr    $1,%ebx
41a569:	d1 d9                	rcr    $1,%ecx
41a56b:	d1 ea                	shr    $1,%edx
41a56d:	d1 d8                	rcr    $1,%eax
41a56f:	0b db                	or     %ebx,%ebx
41a571:	75 f4                	jne    0x41a567
41a573:	f7 f1                	div    %ecx
41a575:	8b f0                	mov    %eax,%esi
41a577:	f7 64 24 1c          	mull   0x1c(%esp)
41a57b:	8b c8                	mov    %eax,%ecx
41a57d:	8b 44 24 18          	mov    0x18(%esp),%eax
41a581:	f7 e6                	mul    %esi
41a583:	03 d1                	add    %ecx,%edx
41a585:	72 0e                	jb     0x41a595
41a587:	3b 54 24 14          	cmp    0x14(%esp),%edx
41a58b:	77 08                	ja     0x41a595
41a58d:	72 07                	jb     0x41a596
41a58f:	3b 44 24 10          	cmp    0x10(%esp),%eax
41a593:	76 01                	jbe    0x41a596
41a595:	4e                   	dec    %esi
41a596:	33 d2                	xor    %edx,%edx
41a598:	8b c6                	mov    %esi,%eax
41a59a:	4f                   	dec    %edi
41a59b:	75 07                	jne    0x41a5a4
41a59d:	f7 da                	neg    %edx
41a59f:	f7 d8                	neg    %eax
41a5a1:	83 da 00             	sbb    $0x0,%edx
41a5a4:	5b                   	pop    %ebx
41a5a5:	5e                   	pop    %esi
41a5a6:	5f                   	pop    %edi
41a5a7:	c2 10 00             	ret    $0x10
41a5aa:	cc                   	int3
41a5ab:	cc                   	int3
41a5ac:	cc                   	int3
41a5ad:	cc                   	int3
41a5ae:	cc                   	int3
41a5af:	cc                   	int3
41a5b0:	8b 44 24 08          	mov    0x8(%esp),%eax
41a5b4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41a5b8:	0b c8                	or     %eax,%ecx
41a5ba:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
41a5be:	75 09                	jne    0x41a5c9
41a5c0:	8b 44 24 04          	mov    0x4(%esp),%eax
41a5c4:	f7 e1                	mul    %ecx
41a5c6:	c2 10 00             	ret    $0x10
41a5c9:	53                   	push   %ebx
41a5ca:	f7 e1                	mul    %ecx
41a5cc:	8b d8                	mov    %eax,%ebx
41a5ce:	8b 44 24 08          	mov    0x8(%esp),%eax
41a5d2:	f7 64 24 14          	mull   0x14(%esp)
41a5d6:	03 d8                	add    %eax,%ebx
41a5d8:	8b 44 24 08          	mov    0x8(%esp),%eax
41a5dc:	f7 e1                	mul    %ecx
41a5de:	03 d3                	add    %ebx,%edx
41a5e0:	5b                   	pop    %ebx
41a5e1:	c2 10 00             	ret    $0x10
41a5e4:	8b ff                	mov    %edi,%edi
41a5e6:	55                   	push   %ebp
41a5e7:	8b ec                	mov    %esp,%ebp
41a5e9:	56                   	push   %esi
41a5ea:	57                   	push   %edi
41a5eb:	8b 7d 10             	mov    0x10(%ebp),%edi
41a5ee:	8b c7                	mov    %edi,%eax
41a5f0:	83 e8 00             	sub    $0x0,%eax
41a5f3:	0f 84 e5 15 00 00    	je     0x41bbde
41a5f9:	48                   	dec    %eax
41a5fa:	0f 84 cd 15 00 00    	je     0x41bbcd
41a600:	48                   	dec    %eax
41a601:	0f 84 98 15 00 00    	je     0x41bb9f
41a607:	48                   	dec    %eax
41a608:	0f 84 49 15 00 00    	je     0x41bb57
41a60e:	48                   	dec    %eax
41a60f:	0f 84 b9 14 00 00    	je     0x41bace
41a615:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41a618:	8b 45 08             	mov    0x8(%ebp),%eax
41a61b:	53                   	push   %ebx
41a61c:	6a 20                	push   $0x20
41a61e:	5a                   	pop    %edx
41a61f:	e9 72 04 00 00       	jmp    0x41aa96
41a624:	8b 30                	mov    (%eax),%esi
41a626:	3b 31                	cmp    (%ecx),%esi
41a628:	74 7c                	je     0x41a6a6
41a62a:	0f b6 30             	movzbl (%eax),%esi
41a62d:	0f b6 19             	movzbl (%ecx),%ebx
41a630:	2b f3                	sub    %ebx,%esi
41a632:	74 15                	je     0x41a649
41a634:	33 db                	xor    %ebx,%ebx
41a636:	85 f6                	test   %esi,%esi
41a638:	0f 9f c3             	setg   %bl
41a63b:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a63f:	8b f3                	mov    %ebx,%esi
41a641:	85 f6                	test   %esi,%esi
41a643:	0f 85 69 04 00 00    	jne    0x41aab2
41a649:	0f b6 70 01          	movzbl 0x1(%eax),%esi
41a64d:	0f b6 59 01          	movzbl 0x1(%ecx),%ebx
41a651:	2b f3                	sub    %ebx,%esi
41a653:	74 15                	je     0x41a66a
41a655:	33 db                	xor    %ebx,%ebx
41a657:	85 f6                	test   %esi,%esi
41a659:	0f 9f c3             	setg   %bl
41a65c:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a660:	8b f3                	mov    %ebx,%esi
41a662:	85 f6                	test   %esi,%esi
41a664:	0f 85 48 04 00 00    	jne    0x41aab2
41a66a:	0f b6 70 02          	movzbl 0x2(%eax),%esi
41a66e:	0f b6 59 02          	movzbl 0x2(%ecx),%ebx
41a672:	2b f3                	sub    %ebx,%esi
41a674:	74 15                	je     0x41a68b
41a676:	33 db                	xor    %ebx,%ebx
41a678:	85 f6                	test   %esi,%esi
41a67a:	0f 9f c3             	setg   %bl
41a67d:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a681:	8b f3                	mov    %ebx,%esi
41a683:	85 f6                	test   %esi,%esi
41a685:	0f 85 27 04 00 00    	jne    0x41aab2
41a68b:	0f b6 70 03          	movzbl 0x3(%eax),%esi
41a68f:	0f b6 59 03          	movzbl 0x3(%ecx),%ebx
41a693:	2b f3                	sub    %ebx,%esi
41a695:	74 11                	je     0x41a6a8
41a697:	33 db                	xor    %ebx,%ebx
41a699:	85 f6                	test   %esi,%esi
41a69b:	0f 9f c3             	setg   %bl
41a69e:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a6a2:	8b f3                	mov    %ebx,%esi
41a6a4:	eb 02                	jmp    0x41a6a8
41a6a6:	33 f6                	xor    %esi,%esi
41a6a8:	85 f6                	test   %esi,%esi
41a6aa:	0f 85 02 04 00 00    	jne    0x41aab2
41a6b0:	8b 70 04             	mov    0x4(%eax),%esi
41a6b3:	3b 71 04             	cmp    0x4(%ecx),%esi
41a6b6:	74 7e                	je     0x41a736
41a6b8:	0f b6 70 04          	movzbl 0x4(%eax),%esi
41a6bc:	0f b6 59 04          	movzbl 0x4(%ecx),%ebx
41a6c0:	2b f3                	sub    %ebx,%esi
41a6c2:	74 15                	je     0x41a6d9
41a6c4:	33 db                	xor    %ebx,%ebx
41a6c6:	85 f6                	test   %esi,%esi
41a6c8:	0f 9f c3             	setg   %bl
41a6cb:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a6cf:	8b f3                	mov    %ebx,%esi
41a6d1:	85 f6                	test   %esi,%esi
41a6d3:	0f 85 d9 03 00 00    	jne    0x41aab2
41a6d9:	0f b6 70 05          	movzbl 0x5(%eax),%esi
41a6dd:	0f b6 59 05          	movzbl 0x5(%ecx),%ebx
41a6e1:	2b f3                	sub    %ebx,%esi
41a6e3:	74 15                	je     0x41a6fa
41a6e5:	33 db                	xor    %ebx,%ebx
41a6e7:	85 f6                	test   %esi,%esi
41a6e9:	0f 9f c3             	setg   %bl
41a6ec:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a6f0:	8b f3                	mov    %ebx,%esi
41a6f2:	85 f6                	test   %esi,%esi
41a6f4:	0f 85 b8 03 00 00    	jne    0x41aab2
41a6fa:	0f b6 70 06          	movzbl 0x6(%eax),%esi
41a6fe:	0f b6 59 06          	movzbl 0x6(%ecx),%ebx
41a702:	2b f3                	sub    %ebx,%esi
41a704:	74 15                	je     0x41a71b
41a706:	33 db                	xor    %ebx,%ebx
41a708:	85 f6                	test   %esi,%esi
41a70a:	0f 9f c3             	setg   %bl
41a70d:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a711:	8b f3                	mov    %ebx,%esi
41a713:	85 f6                	test   %esi,%esi
41a715:	0f 85 97 03 00 00    	jne    0x41aab2
41a71b:	0f b6 70 07          	movzbl 0x7(%eax),%esi
41a71f:	0f b6 59 07          	movzbl 0x7(%ecx),%ebx
41a723:	2b f3                	sub    %ebx,%esi
41a725:	74 11                	je     0x41a738
41a727:	33 db                	xor    %ebx,%ebx
41a729:	85 f6                	test   %esi,%esi
41a72b:	0f 9f c3             	setg   %bl
41a72e:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a732:	8b f3                	mov    %ebx,%esi
41a734:	eb 02                	jmp    0x41a738
41a736:	33 f6                	xor    %esi,%esi
41a738:	85 f6                	test   %esi,%esi
41a73a:	0f 85 72 03 00 00    	jne    0x41aab2
41a740:	8b 70 08             	mov    0x8(%eax),%esi
41a743:	3b 71 08             	cmp    0x8(%ecx),%esi
41a746:	74 7e                	je     0x41a7c6
41a748:	0f b6 70 08          	movzbl 0x8(%eax),%esi
41a74c:	0f b6 59 08          	movzbl 0x8(%ecx),%ebx
41a750:	2b f3                	sub    %ebx,%esi
41a752:	74 15                	je     0x41a769
41a754:	33 db                	xor    %ebx,%ebx
41a756:	85 f6                	test   %esi,%esi
41a758:	0f 9f c3             	setg   %bl
41a75b:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a75f:	8b f3                	mov    %ebx,%esi
41a761:	85 f6                	test   %esi,%esi
41a763:	0f 85 49 03 00 00    	jne    0x41aab2
41a769:	0f b6 70 09          	movzbl 0x9(%eax),%esi
41a76d:	0f b6 59 09          	movzbl 0x9(%ecx),%ebx
41a771:	2b f3                	sub    %ebx,%esi
41a773:	74 15                	je     0x41a78a
41a775:	33 db                	xor    %ebx,%ebx
41a777:	85 f6                	test   %esi,%esi
41a779:	0f 9f c3             	setg   %bl
41a77c:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a780:	8b f3                	mov    %ebx,%esi
41a782:	85 f6                	test   %esi,%esi
41a784:	0f 85 28 03 00 00    	jne    0x41aab2
41a78a:	0f b6 70 0a          	movzbl 0xa(%eax),%esi
41a78e:	0f b6 59 0a          	movzbl 0xa(%ecx),%ebx
41a792:	2b f3                	sub    %ebx,%esi
41a794:	74 15                	je     0x41a7ab
41a796:	33 db                	xor    %ebx,%ebx
41a798:	85 f6                	test   %esi,%esi
41a79a:	0f 9f c3             	setg   %bl
41a79d:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a7a1:	8b f3                	mov    %ebx,%esi
41a7a3:	85 f6                	test   %esi,%esi
41a7a5:	0f 85 07 03 00 00    	jne    0x41aab2
41a7ab:	0f b6 70 0b          	movzbl 0xb(%eax),%esi
41a7af:	0f b6 59 0b          	movzbl 0xb(%ecx),%ebx
41a7b3:	2b f3                	sub    %ebx,%esi
41a7b5:	74 11                	je     0x41a7c8
41a7b7:	33 db                	xor    %ebx,%ebx
41a7b9:	85 f6                	test   %esi,%esi
41a7bb:	0f 9f c3             	setg   %bl
41a7be:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a7c2:	8b f3                	mov    %ebx,%esi
41a7c4:	eb 02                	jmp    0x41a7c8
41a7c6:	33 f6                	xor    %esi,%esi
41a7c8:	85 f6                	test   %esi,%esi
41a7ca:	0f 85 e2 02 00 00    	jne    0x41aab2
41a7d0:	8b 70 0c             	mov    0xc(%eax),%esi
41a7d3:	3b 71 0c             	cmp    0xc(%ecx),%esi
41a7d6:	74 7e                	je     0x41a856
41a7d8:	0f b6 70 0c          	movzbl 0xc(%eax),%esi
41a7dc:	0f b6 59 0c          	movzbl 0xc(%ecx),%ebx
41a7e0:	2b f3                	sub    %ebx,%esi
41a7e2:	74 15                	je     0x41a7f9
41a7e4:	33 db                	xor    %ebx,%ebx
41a7e6:	85 f6                	test   %esi,%esi
41a7e8:	0f 9f c3             	setg   %bl
41a7eb:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a7ef:	8b f3                	mov    %ebx,%esi
41a7f1:	85 f6                	test   %esi,%esi
41a7f3:	0f 85 b9 02 00 00    	jne    0x41aab2
41a7f9:	0f b6 70 0d          	movzbl 0xd(%eax),%esi
41a7fd:	0f b6 59 0d          	movzbl 0xd(%ecx),%ebx
41a801:	2b f3                	sub    %ebx,%esi
41a803:	74 15                	je     0x41a81a
41a805:	33 db                	xor    %ebx,%ebx
41a807:	85 f6                	test   %esi,%esi
41a809:	0f 9f c3             	setg   %bl
41a80c:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
41a810:	8b f3                	mov    %ebx,%esi
41a812:	85 f6                	test   %esi,%esi
41a814:	0f 85 98 02 00 00    	jne    0x41aab2
41a81a:	0f b6 70 0e          	movzbl 0xe(%eax),%esi
41a81e:	0f b6 59 0e          	movzbl 0xe(%ecx),%ebx
41a822:	2b f3                	sub    %ebx,%esi
41a824:	74 15                	je     0x41a83b