4135ec:	f7 f1                	div    %ecx
4135ee:	89 d3                	mov    %edx,%ebx
4135f0:	b9 f1 ff 00 00       	mov    $0xfff1,%ecx
4135f5:	8b c7                	mov    %edi,%eax
4135f7:	33 d2                	xor    %edx,%edx
4135f9:	f7 f1                	div    %ecx
4135fb:	89 d7                	mov    %edx,%edi
4135fd:	85 ed                	test   %ebp,%ebp
4135ff:	0f 87 14 ff ff ff    	ja     0x413519
413605:	8b c7                	mov    %edi,%eax
413607:	c1 e0 10             	shl    $0x10,%eax
41360a:	0b c3                	or     %ebx,%eax
41360c:	5d                   	pop    %ebp
41360d:	5f                   	pop    %edi
41360e:	5e                   	pop    %esi
41360f:	5b                   	pop    %ebx
413610:	c3                   	ret
413611:	8d 40 00             	lea    0x0(%eax),%eax
413614:	53                   	push   %ebx
413615:	56                   	push   %esi
413616:	8b f2                	mov    %edx,%esi
413618:	8b d8                	mov    %eax,%ebx
41361a:	85 c9                	test   %ecx,%ecx
41361c:	74 05                	je     0x413623
41361e:	8b 43 3c             	mov    0x3c(%ebx),%eax
413621:	89 01                	mov    %eax,(%ecx)
413623:	8b 03                	mov    (%ebx),%eax
413625:	83 f8 04             	cmp    $0x4,%eax
413628:	74 05                	je     0x41362f
41362a:	83 f8 05             	cmp    $0x5,%eax
41362d:	75 09                	jne    0x413638
41362f:	8b 53 0c             	mov    0xc(%ebx),%edx
413632:	8b 46 28             	mov    0x28(%esi),%eax
413635:	ff 56 24             	call   *0x24(%esi)
413638:	83 3b 06             	cmpl   $0x6,(%ebx)
41363b:	75 0a                	jne    0x413647
41363d:	8b d6                	mov    %esi,%edx
41363f:	8b 43 04             	mov    0x4(%ebx),%eax
413642:	e8 ed 16 00 00       	call   0x414d34
413647:	33 d2                	xor    %edx,%edx
413649:	33 c9                	xor    %ecx,%ecx
41364b:	89 13                	mov    %edx,(%ebx)
41364d:	33 c0                	xor    %eax,%eax
41364f:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
413652:	89 43 20             	mov    %eax,0x20(%ebx)
413655:	8b 53 28             	mov    0x28(%ebx),%edx
413658:	89 53 34             	mov    %edx,0x34(%ebx)
41365b:	89 53 30             	mov    %edx,0x30(%ebx)
41365e:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
413662:	74 0f                	je     0x413673
413664:	33 c9                	xor    %ecx,%ecx
413666:	33 d2                	xor    %edx,%edx
413668:	33 c0                	xor    %eax,%eax
41366a:	ff 53 38             	call   *0x38(%ebx)
41366d:	89 43 3c             	mov    %eax,0x3c(%ebx)
413670:	89 46 30             	mov    %eax,0x30(%esi)
413673:	5e                   	pop    %esi
413674:	5b                   	pop    %ebx
413675:	c3                   	ret
413676:	90                   	nop
413677:	90                   	nop
413678:	53                   	push   %ebx
413679:	56                   	push   %esi
41367a:	57                   	push   %edi
41367b:	8b f0                	mov    %eax,%esi
41367d:	51                   	push   %ecx
41367e:	89 14 24             	mov    %edx,(%esp)
413681:	8b f9                	mov    %ecx,%edi
413683:	b9 40 00 00 00       	mov    $0x40,%ecx
413688:	ba 01 00 00 00       	mov    $0x1,%edx
41368d:	8b 46 28             	mov    0x28(%esi),%eax
413690:	ff 56 20             	call   *0x20(%esi)
413693:	8b d8                	mov    %eax,%ebx
413695:	85 c0                	test   %eax,%eax
413697:	75 04                	jne    0x41369d
413699:	8b c3                	mov    %ebx,%eax
41369b:	eb 6b                	jmp    0x413708
41369d:	b9 a0 05 00 00       	mov    $0x5a0,%ecx
4136a2:	ba 08 00 00 00       	mov    $0x8,%edx
4136a7:	8b 46 28             	mov    0x28(%esi),%eax
4136aa:	ff 56 20             	call   *0x20(%esi)
4136ad:	89 43 24             	mov    %eax,0x24(%ebx)
4136b0:	85 c0                	test   %eax,%eax
4136b2:	75 0c                	jne    0x4136c0
4136b4:	8b d3                	mov    %ebx,%edx
4136b6:	8b 46 28             	mov    0x28(%esi),%eax
4136b9:	ff 56 24             	call   *0x24(%esi)
4136bc:	33 c0                	xor    %eax,%eax
4136be:	eb 48                	jmp    0x413708
4136c0:	8b cf                	mov    %edi,%ecx
4136c2:	ba 01 00 00 00       	mov    $0x1,%edx
4136c7:	8b 46 28             	mov    0x28(%esi),%eax
4136ca:	ff 56 20             	call   *0x20(%esi)
4136cd:	89 43 28             	mov    %eax,0x28(%ebx)
4136d0:	85 c0                	test   %eax,%eax
4136d2:	75 15                	jne    0x4136e9
4136d4:	8b 53 24             	mov    0x24(%ebx),%edx
4136d7:	8b 46 28             	mov    0x28(%esi),%eax
4136da:	ff 56 24             	call   *0x24(%esi)
4136dd:	8b d3                	mov    %ebx,%edx
4136df:	8b 46 28             	mov    0x28(%esi),%eax
4136e2:	ff 56 24             	call   *0x24(%esi)
4136e5:	33 c0                	xor    %eax,%eax
4136e7:	eb 1f                	jmp    0x413708
4136e9:	8b 53 28             	mov    0x28(%ebx),%edx
4136ec:	33 c0                	xor    %eax,%eax
4136ee:	03 d7                	add    %edi,%edx
4136f0:	89 53 2c             	mov    %edx,0x2c(%ebx)
4136f3:	8b d6                	mov    %esi,%edx
4136f5:	8b 0c 24             	mov    (%esp),%ecx
4136f8:	89 4b 38             	mov    %ecx,0x38(%ebx)
4136fb:	89 03                	mov    %eax,(%ebx)
4136fd:	8b c3                	mov    %ebx,%eax
4136ff:	33 c9                	xor    %ecx,%ecx
413701:	e8 0e ff ff ff       	call   0x413614
413706:	8b c3                	mov    %ebx,%eax
413708:	5a                   	pop    %edx
413709:	5f                   	pop    %edi
41370a:	5e                   	pop    %esi
41370b:	5b                   	pop    %ebx
41370c:	c3                   	ret
41370d:	90                   	nop
41370e:	90                   	nop
41370f:	90                   	nop
413710:	53                   	push   %ebx
413711:	56                   	push   %esi
413712:	57                   	push   %edi
413713:	55                   	push   %ebp
413714:	83 c4 c4             	add    $0xffffffc4,%esp
413717:	8b f2                	mov    %edx,%esi
413719:	8b d8                	mov    %eax,%ebx
41371b:	89 0c 24             	mov    %ecx,(%esp)
41371e:	8b 06                	mov    (%esi),%eax
413720:	89 44 24 0c          	mov    %eax,0xc(%esp)
413724:	8b 56 04             	mov    0x4(%esi),%edx
413727:	89 54 24 10          	mov    %edx,0x10(%esp)
41372b:	8b 4b 20             	mov    0x20(%ebx),%ecx
41372e:	89 4c 24 08          	mov    %ecx,0x8(%esp)
413732:	8b 7b 1c             	mov    0x1c(%ebx),%edi
413735:	8b 43 34             	mov    0x34(%ebx),%eax
413738:	89 44 24 14          	mov    %eax,0x14(%esp)
41373c:	8b 54 24 14          	mov    0x14(%esp),%edx
413740:	3b 53 30             	cmp    0x30(%ebx),%edx
413743:	73 0a                	jae    0x41374f
413745:	8b 6b 30             	mov    0x30(%ebx),%ebp
413748:	2b 6c 24 14          	sub    0x14(%esp),%ebp
41374c:	4d                   	dec    %ebp
41374d:	eb 07                	jmp    0x413756
41374f:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
413752:	2b 6c 24 14          	sub    0x14(%esp),%ebp
413756:	8b 03                	mov    (%ebx),%eax
413758:	83 f8 09             	cmp    $0x9,%eax
41375b:	0f 87 43 0c 00 00    	ja     0x4143a4
413761:	ff 24 85 68 37 41 00 	jmp    *0x413768(,%eax,4)
413768:	90                   	nop
413769:	37                   	aaa
41376a:	41                   	inc    %ecx
41376b:	00 4a 39             	add    %cl,0x39(%edx)
41376e:	41                   	inc    %ecx
41376f:	00 4d 3a             	add    %cl,0x3a(%ebp)
413772:	41                   	inc    %ecx
413773:	00 ed                	add    %ch,%ch
413775:	3b 41 00             	cmp    0x0(%ecx),%eax
413778:	e3 3d                	jecxz  0x4137b7
41377a:	41                   	inc    %ecx
41377b:	00 be 40 41 00 09    	add    %bh,0x9004140(%esi)
413781:	42                   	inc    %edx
413782:	41                   	inc    %ecx
413783:	00 af 42 41 00 2c    	add    %ch,0x2c004142(%edi)
413789:	43                   	inc    %ebx
41378a:	41                   	inc    %ecx
41378b:	00 68 43             	add    %ch,0x43(%eax)
41378e:	41                   	inc    %ecx
41378f:	00 83 ff 03 73 68    	add    %al,0x687303ff(%ebx)
413795:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
41379a:	74 07                	je     0x4137a3
41379c:	33 d2                	xor    %edx,%edx
41379e:	89 14 24             	mov    %edx,(%esp)
4137a1:	eb 38                	jmp    0x4137db
4137a3:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4137a7:	89 4b 20             	mov    %ecx,0x20(%ebx)
4137aa:	89 7b 1c             	mov    %edi,0x1c(%ebx)
4137ad:	8b 44 24 10          	mov    0x10(%esp),%eax
4137b1:	89 46 04             	mov    %eax,0x4(%esi)
4137b4:	8b 54 24 0c          	mov    0xc(%esp),%edx
4137b8:	2b 16                	sub    (%esi),%edx
4137ba:	01 56 08             	add    %edx,0x8(%esi)
4137bd:	8b d6                	mov    %esi,%edx
4137bf:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4137c3:	89 0e                	mov    %ecx,(%esi)
4137c5:	8b 44 24 14          	mov    0x14(%esp),%eax
4137c9:	89 43 34             	mov    %eax,0x34(%ebx)
4137cc:	8b c3                	mov    %ebx,%eax
4137ce:	8b 0c 24             	mov    (%esp),%ecx
4137d1:	e8 6a 15 00 00       	call   0x414d40
4137d6:	e9 03 0c 00 00       	jmp    0x4143de
4137db:	8b cf                	mov    %edi,%ecx
4137dd:	ff 4c 24 10          	decl   0x10(%esp)
4137e1:	8b 54 24 0c          	mov    0xc(%esp),%edx
4137e5:	8a 02                	mov    (%edx),%al
4137e7:	33 d2                	xor    %edx,%edx
4137e9:	8a d0                	mov    %al,%dl
4137eb:	d3 e2                	shl    %cl,%edx
4137ed:	09 54 24 08          	or     %edx,0x8(%esp)
4137f1:	ff 44 24 0c          	incl   0xc(%esp)
4137f5:	83 c7 08             	add    $0x8,%edi
4137f8:	83 ff 03             	cmp    $0x3,%edi
4137fb:	72 98                	jb     0x413795
4137fd:	8b 4c 24 08          	mov    0x8(%esp),%ecx
413801:	83 e1 07             	and    $0x7,%ecx
413804:	89 4c 24 04          	mov    %ecx,0x4(%esp)
413808:	8b 44 24 04          	mov    0x4(%esp),%eax
41380c:	83 e0 01             	and    $0x1,%eax
41380f:	89 43 18             	mov    %eax,0x18(%ebx)
413812:	8b 54 24 04          	mov    0x4(%esp),%edx
413816:	d1 ea                	shr    $1,%edx
413818:	83 ea 01             	sub    $0x1,%edx
41381b:	72 15                	jb     0x413832
41381d:	74 3b                	je     0x41385a
41381f:	4a                   	dec    %edx
413820:	0f 84 bd 00 00 00    	je     0x4138e3
413826:	4a                   	dec    %edx
413827:	0f 84 c9 00 00 00    	je     0x4138f6
41382d:	e9 24 ff ff ff       	jmp    0x413756
413832:	c1 6c 24 08 03       	shrl   $0x3,0x8(%esp)
413837:	83 ef 03             	sub    $0x3,%edi
41383a:	8b cf                	mov    %edi,%ecx
41383c:	83 e1 07             	and    $0x7,%ecx
41383f:	89 4c 24 04          	mov    %ecx,0x4(%esp)
413843:	8b 4c 24 04          	mov    0x4(%esp),%ecx
413847:	d3 6c 24 08          	shrl   %cl,0x8(%esp)
41384b:	2b 7c 24 04          	sub    0x4(%esp),%edi
41384f:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
413855:	e9 fc fe ff ff       	jmp    0x413756
41385a:	8d 44 24 24          	lea    0x24(%esp),%eax
41385e:	50                   	push   %eax
41385f:	56                   	push   %esi
413860:	8d 4c 24 28          	lea    0x28(%esp),%ecx
413864:	8d 54 24 24          	lea    0x24(%esp),%edx
413868:	8d 44 24 20          	lea    0x20(%esp),%eax
41386c:	e8 4b fc ff ff       	call   0x4134bc
413871:	8b 44 24 24          	mov    0x24(%esp),%eax
413875:	50                   	push   %eax
413876:	56                   	push   %esi
413877:	8b 4c 24 28          	mov    0x28(%esp),%ecx
41387b:	8b 54 24 24          	mov    0x24(%esp),%edx
41387f:	8b 44 24 20          	mov    0x20(%esp),%eax
413883:	e8 c0 0b 00 00       	call   0x414448
413888:	89 43 04             	mov    %eax,0x4(%ebx)
41388b:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
41388f:	75 3f                	jne    0x4138d0
413891:	c7 04 24 fc ff ff ff 	movl   $0xfffffffc,(%esp)
413898:	8b 54 24 08          	mov    0x8(%esp),%edx
41389c:	89 53 20             	mov    %edx,0x20(%ebx)
41389f:	89 7b 1c             	mov    %edi,0x1c(%ebx)
4138a2:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4138a6:	89 4e 04             	mov    %ecx,0x4(%esi)
4138a9:	8b 44 24 0c          	mov    0xc(%esp),%eax
4138ad:	2b 06                	sub    (%esi),%eax
4138af:	01 46 08             	add    %eax,0x8(%esi)
4138b2:	8b c3                	mov    %ebx,%eax
4138b4:	8b 54 24 0c          	mov    0xc(%esp),%edx
4138b8:	89 16                	mov    %edx,(%esi)
4138ba:	8b d6                	mov    %esi,%edx
4138bc:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4138c0:	89 4b 34             	mov    %ecx,0x34(%ebx)
4138c3:	8b 0c 24             	mov    (%esp),%ecx
4138c6:	e8 75 14 00 00       	call   0x414d40
4138cb:	e9 0e 0b 00 00       	jmp    0x4143de
4138d0:	c1 6c 24 08 03       	shrl   $0x3,0x8(%esp)
4138d5:	83 ef 03             	sub    $0x3,%edi
4138d8:	c7 03 06 00 00 00    	movl   $0x6,(%ebx)
4138de:	e9 73 fe ff ff       	jmp    0x413756
4138e3:	c1 6c 24 08 03       	shrl   $0x3,0x8(%esp)
4138e8:	83 ef 03             	sub    $0x3,%edi
4138eb:	c7 03 03 00 00 00    	movl   $0x3,(%ebx)
4138f1:	e9 60 fe ff ff       	jmp    0x413756
4138f6:	c1 6c 24 08 03       	shrl   $0x3,0x8(%esp)
4138fb:	c7 03 09 00 00 00    	movl   $0x9,(%ebx)
413901:	83 ef 03             	sub    $0x3,%edi
413904:	c7 46 18 ac 84 42 00 	movl   $0x4284ac,0x18(%esi)
41390b:	c7 04 24 fd ff ff ff 	movl   $0xfffffffd,(%esp)
413912:	8b 44 24 08          	mov    0x8(%esp),%eax
413916:	89 43 20             	mov    %eax,0x20(%ebx)
413919:	89 7b 1c             	mov    %edi,0x1c(%ebx)
41391c:	8b 54 24 10          	mov    0x10(%esp),%edx
413920:	89 56 04             	mov    %edx,0x4(%esi)
413923:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
413927:	2b 0e                	sub    (%esi),%ecx
413929:	01 4e 08             	add    %ecx,0x8(%esi)
41392c:	8b 44 24 0c          	mov    0xc(%esp),%eax
413930:	89 06                	mov    %eax,(%esi)
413932:	8b c3                	mov    %ebx,%eax
413934:	8b 54 24 14          	mov    0x14(%esp),%edx
413938:	89 53 34             	mov    %edx,0x34(%ebx)
41393b:	8b d6                	mov    %esi,%edx
41393d:	8b 0c 24             	mov    (%esp),%ecx
413940:	e8 fb 13 00 00       	call   0x414d40
413945:	e9 94 0a 00 00       	jmp    0x4143de
41394a:	83 ff 20             	cmp    $0x20,%edi
41394d:	73 68                	jae    0x4139b7
41394f:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
413954:	74 07                	je     0x41395d
413956:	33 c9                	xor    %ecx,%ecx
413958:	89 0c 24             	mov    %ecx,(%esp)
41395b:	eb 38                	jmp    0x413995
41395d:	8b 44 24 08          	mov    0x8(%esp),%eax
413961:	89 43 20             	mov    %eax,0x20(%ebx)
413964:	89 7b 1c             	mov    %edi,0x1c(%ebx)
413967:	8b 54 24 10          	mov    0x10(%esp),%edx
41396b:	89 56 04             	mov    %edx,0x4(%esi)
41396e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
413972:	2b 0e                	sub    (%esi),%ecx
413974:	01 4e 08             	add    %ecx,0x8(%esi)
413977:	8b 44 24 0c          	mov    0xc(%esp),%eax
41397b:	89 06                	mov    %eax,(%esi)
41397d:	8b c3                	mov    %ebx,%eax
41397f:	8b 54 24 14          	mov    0x14(%esp),%edx
413983:	89 53 34             	mov    %edx,0x34(%ebx)
413986:	8b d6                	mov    %esi,%edx
413988:	8b 0c 24             	mov    (%esp),%ecx
41398b:	e8 b0 13 00 00       	call   0x414d40
413990:	e9 49 0a 00 00       	jmp    0x4143de
413995:	8b cf                	mov    %edi,%ecx
413997:	ff 4c 24 10          	decl   0x10(%esp)
41399b:	8b 44 24 0c          	mov    0xc(%esp),%eax
41399f:	8a 10                	mov    (%eax),%dl
4139a1:	33 c0                	xor    %eax,%eax
4139a3:	8a c2                	mov    %dl,%al
4139a5:	d3 e0                	shl    %cl,%eax
4139a7:	09 44 24 08          	or     %eax,0x8(%esp)
4139ab:	ff 44 24 0c          	incl   0xc(%esp)
4139af:	83 c7 08             	add    $0x8,%edi
4139b2:	83 ff 20             	cmp    $0x20,%edi
4139b5:	72 98                	jb     0x41394f
4139b7:	8b 54 24 08          	mov    0x8(%esp),%edx
4139bb:	8b 44 24 08          	mov    0x8(%esp),%eax
4139bf:	f7 d2                	not    %edx
4139c1:	c1 ea 10             	shr    $0x10,%edx
4139c4:	25 ff ff 00 00       	and    $0xffff,%eax
4139c9:	81 e2 ff ff 00 00    	and    $0xffff,%edx
4139cf:	3b c2                	cmp    %edx,%eax
4139d1:	74 4c                	je     0x413a1f
4139d3:	c7 03 09 00 00 00    	movl   $0x9,(%ebx)
4139d9:	c7 46 18 bf 84 42 00 	movl   $0x4284bf,0x18(%esi)
4139e0:	c7 04 24 fd ff ff ff 	movl   $0xfffffffd,(%esp)
4139e7:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4139eb:	89 4b 20             	mov    %ecx,0x20(%ebx)
4139ee:	89 7b 1c             	mov    %edi,0x1c(%ebx)
4139f1:	8b 44 24 10          	mov    0x10(%esp),%eax