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
4139f5:	89 46 04             	mov    %eax,0x4(%esi)
4139f8:	8b 54 24 0c          	mov    0xc(%esp),%edx
4139fc:	2b 16                	sub    (%esi),%edx
4139fe:	01 56 08             	add    %edx,0x8(%esi)
413a01:	8b d6                	mov    %esi,%edx
413a03:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
413a07:	89 0e                	mov    %ecx,(%esi)
413a09:	8b 44 24 14          	mov    0x14(%esp),%eax
413a0d:	89 43 34             	mov    %eax,0x34(%ebx)
413a10:	8b c3                	mov    %ebx,%eax
413a12:	8b 0c 24             	mov    (%esp),%ecx
413a15:	e8 26 13 00 00       	call   0x414d40
413a1a:	e9 bf 09 00 00       	jmp    0x4143de
413a1f:	8b d0                	mov    %eax,%edx
413a21:	89 53 04             	mov    %edx,0x4(%ebx)
413a24:	33 c9                	xor    %ecx,%ecx
413a26:	89 cf                	mov    %ecx,%edi
413a28:	89 4c 24 08          	mov    %ecx,0x8(%esp)
413a2c:	85 d2                	test   %edx,%edx
413a2e:	74 07                	je     0x413a37
413a30:	b8 02 00 00 00       	mov    $0x2,%eax
413a35:	eb 0f                	jmp    0x413a46
413a37:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
413a3b:	74 07                	je     0x413a44
413a3d:	b8 07 00 00 00       	mov    $0x7,%eax
413a42:	eb 02                	jmp    0x413a46
413a44:	33 c0                	xor    %eax,%eax
413a46:	89 03                	mov    %eax,(%ebx)
413a48:	e9 09 fd ff ff       	jmp    0x413756
413a4d:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
413a52:	75 38                	jne    0x413a8c
413a54:	8b 54 24 08          	mov    0x8(%esp),%edx
413a58:	89 53 20             	mov    %edx,0x20(%ebx)
413a5b:	89 7b 1c             	mov    %edi,0x1c(%ebx)
413a5e:	8b 4c 24 10          	mov    0x10(%esp),%ecx
413a62:	89 4e 04             	mov    %ecx,0x4(%esi)
413a65:	8b 44 24 0c          	mov    0xc(%esp),%eax
413a69:	2b 06                	sub    (%esi),%eax
413a6b:	01 46 08             	add    %eax,0x8(%esi)
413a6e:	8b c3                	mov    %ebx,%eax
413a70:	8b 54 24 0c          	mov    0xc(%esp),%edx
413a74:	89 16                	mov    %edx,(%esi)
413a76:	8b d6                	mov    %esi,%edx
413a78:	8b 4c 24 14          	mov    0x14(%esp),%ecx
413a7c:	89 4b 34             	mov    %ecx,0x34(%ebx)
413a7f:	8b 0c 24             	mov    (%esp),%ecx
413a82:	e8 b9 12 00 00       	call   0x414d40
413a87:	e9 52 09 00 00       	jmp    0x4143de
413a8c:	85 ed                	test   %ebp,%ebp
413a8e:	0f 85 df 00 00 00    	jne    0x413b73
413a94:	8b 44 24 14          	mov    0x14(%esp),%eax
413a98:	3b 43 2c             	cmp    0x2c(%ebx),%eax
413a9b:	75 29                	jne    0x413ac6
413a9d:	8b 53 30             	mov    0x30(%ebx),%edx
413aa0:	3b 53 28             	cmp    0x28(%ebx),%edx
413aa3:	74 21                	je     0x413ac6
413aa5:	8b 4b 28             	mov    0x28(%ebx),%ecx
413aa8:	89 4c 24 14          	mov    %ecx,0x14(%esp)
413aac:	8b 44 24 14          	mov    0x14(%esp),%eax
413ab0:	3b 43 30             	cmp    0x30(%ebx),%eax
413ab3:	73 0a                	jae    0x413abf
413ab5:	8b 6b 30             	mov    0x30(%ebx),%ebp
413ab8:	2b 6c 24 14          	sub    0x14(%esp),%ebp
413abc:	4d                   	dec    %ebp
413abd:	eb 07                	jmp    0x413ac6
413abf:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
413ac2:	2b 6c 24 14          	sub    0x14(%esp),%ebp
413ac6:	85 ed                	test   %ebp,%ebp
413ac8:	0f 85 a5 00 00 00    	jne    0x413b73
413ace:	8b 44 24 14          	mov    0x14(%esp),%eax
413ad2:	8b d6                	mov    %esi,%edx
413ad4:	89 43 34             	mov    %eax,0x34(%ebx)
413ad7:	8b c3                	mov    %ebx,%eax
413ad9:	8b 0c 24             	mov    (%esp),%ecx
413adc:	e8 5f 12 00 00       	call   0x414d40
413ae1:	89 04 24             	mov    %eax,(%esp)
413ae4:	8b 53 34             	mov    0x34(%ebx),%edx
413ae7:	89 54 24 14          	mov    %edx,0x14(%esp)
413aeb:	8b 4c 24 14          	mov    0x14(%esp),%ecx
413aef:	3b 4b 30             	cmp    0x30(%ebx),%ecx
413af2:	73 0a                	jae    0x413afe
413af4:	8b 6b 30             	mov    0x30(%ebx),%ebp
413af7:	2b 6c 24 14          	sub    0x14(%esp),%ebp
413afb:	4d                   	dec    %ebp
413afc:	eb 07                	jmp    0x413b05
413afe:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
413b01:	2b 6c 24 14          	sub    0x14(%esp),%ebp
413b05:	8b 44 24 14          	mov    0x14(%esp),%eax
413b09:	3b 43 2c             	cmp    0x2c(%ebx),%eax
413b0c:	75 29                	jne    0x413b37
413b0e:	8b 53 30             	mov    0x30(%ebx),%edx
413b11:	3b 53 28             	cmp    0x28(%ebx),%edx
413b14:	74 21                	je     0x413b37
413b16:	8b 4b 28             	mov    0x28(%ebx),%ecx
413b19:	89 4c 24 14          	mov    %ecx,0x14(%esp)
413b1d:	8b 44 24 14          	mov    0x14(%esp),%eax
413b21:	3b 43 30             	cmp    0x30(%ebx),%eax
413b24:	73 0a                	jae    0x413b30
413b26:	8b 6b 30             	mov    0x30(%ebx),%ebp
413b29:	2b 6c 24 14          	sub    0x14(%esp),%ebp
413b2d:	4d                   	dec    %ebp
413b2e:	eb 07                	jmp    0x413b37
413b30:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
413b33:	2b 6c 24 14          	sub    0x14(%esp),%ebp
413b37:	85 ed                	test   %ebp,%ebp
413b39:	75 38                	jne    0x413b73
413b3b:	8b 44 24 08          	mov    0x8(%esp),%eax
413b3f:	89 43 20             	mov    %eax,0x20(%ebx)
413b42:	89 7b 1c             	mov    %edi,0x1c(%ebx)
413b45:	8b 54 24 10          	mov    0x10(%esp),%edx
413b49:	89 56 04             	mov    %edx,0x4(%esi)
413b4c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
413b50:	2b 0e                	sub    (%esi),%ecx
413b52:	01 4e 08             	add    %ecx,0x8(%esi)
413b55:	8b 44 24 0c          	mov    0xc(%esp),%eax
413b59:	89 06                	mov    %eax,(%esi)
413b5b:	8b c3                	mov    %ebx,%eax
413b5d:	8b 54 24 14          	mov    0x14(%esp),%edx
413b61:	89 53 34             	mov    %edx,0x34(%ebx)
413b64:	8b d6                	mov    %esi,%edx
413b66:	8b 0c 24             	mov    (%esp),%ecx
413b69:	e8 d2 11 00 00       	call   0x414d40
413b6e:	e9 6b 08 00 00       	jmp    0x4143de
413b73:	33 c9                	xor    %ecx,%ecx
413b75:	89 0c 24             	mov    %ecx,(%esp)
413b78:	8b 43 04             	mov    0x4(%ebx),%eax
413b7b:	89 44 24 04          	mov    %eax,0x4(%esp)
413b7f:	8b 54 24 04          	mov    0x4(%esp),%edx
413b83:	3b 54 24 10          	cmp    0x10(%esp),%edx
413b87:	76 08                	jbe    0x413b91
413b89:	8b 4c 24 10          	mov    0x10(%esp),%ecx
413b8d:	89 4c 24 04          	mov    %ecx,0x4(%esp)
413b91:	3b 6c 24 04          	cmp    0x4(%esp),%ebp
413b95:	73 04                	jae    0x413b9b
413b97:	89 6c 24 04          	mov    %ebp,0x4(%esp)
413b9b:	8b 44 24 04          	mov    0x4(%esp),%eax
413b9f:	50                   	push   %eax
413ba0:	8b 54 24 10          	mov    0x10(%esp),%edx
413ba4:	52                   	push   %edx
413ba5:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
413ba9:	51                   	push   %ecx
413baa:	e8 f5 b7 ff ff       	call   0x40f3a4
413baf:	83 c4 0c             	add    $0xc,%esp
413bb2:	8b 44 24 04          	mov    0x4(%esp),%eax
413bb6:	01 44 24 0c          	add    %eax,0xc(%esp)
413bba:	8b 54 24 04          	mov    0x4(%esp),%edx
413bbe:	29 54 24 10          	sub    %edx,0x10(%esp)
413bc2:	01 44 24 14          	add    %eax,0x14(%esp)
413bc6:	2b 6c 24 04          	sub    0x4(%esp),%ebp
413bca:	8b 4c 24 04          	mov    0x4(%esp),%ecx
413bce:	29 4b 04             	sub    %ecx,0x4(%ebx)
413bd1:	0f 85 7f fb ff ff    	jne    0x413756
413bd7:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
413bdb:	74 07                	je     0x413be4
413bdd:	b8 07 00 00 00       	mov    $0x7,%eax
413be2:	eb 02                	jmp    0x413be6
413be4:	33 c0                	xor    %eax,%eax
413be6:	89 03                	mov    %eax,(%ebx)
413be8:	e9 69 fb ff ff       	jmp    0x413756
413bed:	83 ff 0e             	cmp    $0xe,%edi
413bf0:	73 68                	jae    0x413c5a
413bf2:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
413bf7:	74 07                	je     0x413c00
413bf9:	33 d2                	xor    %edx,%edx
413bfb:	89 14 24             	mov    %edx,(%esp)
413bfe:	eb 38                	jmp    0x413c38
413c00:	8b 4c 24 08          	mov    0x8(%esp),%ecx
413c04:	89 4b 20             	mov    %ecx,0x20(%ebx)
413c07:	89 7b 1c             	mov    %edi,0x1c(%ebx)
413c0a:	8b 44 24 10          	mov    0x10(%esp),%eax
413c0e:	89 46 04             	mov    %eax,0x4(%esi)
413c11:	8b 54 24 0c          	mov    0xc(%esp),%edx
413c15:	2b 16                	sub    (%esi),%edx
413c17:	01 56 08             	add    %edx,0x8(%esi)
413c1a:	8b d6                	mov    %esi,%edx