474822:	e9 dd fc f9 ff       	jmp    0x414504
474827:	e8 4b 6d fd ff       	call   0x44b577
47482c:	8b cf                	mov    %edi,%ecx
47482e:	8b f0                	mov    %eax,%esi
474830:	e8 42 6d fd ff       	call   0x44b577
474835:	3b f0                	cmp    %eax,%esi
474837:	1b c0                	sbb    %eax,%eax
474839:	f7 d8                	neg    %eax
47483b:	e9 c4 fc f9 ff       	jmp    0x414504
474840:	8b cf                	mov    %edi,%ecx
474842:	e8 25 4b f9 ff       	call   0x40936c
474847:	8b 77 08             	mov    0x8(%edi),%esi
47484a:	8b cb                	mov    %ebx,%ecx
47484c:	e8 1b 4b f9 ff       	call   0x40936c
474851:	8b 4b 08             	mov    0x8(%ebx),%ecx
474854:	6a 00                	push   $0x0
474856:	56                   	push   %esi
474857:	e8 02 8b fa ff       	call   0x41d35e
47485c:	33 c9                	xor    %ecx,%ecx
47485e:	85 c0                	test   %eax,%eax
474860:	0f 98 c0             	sets   %al
474863:	e9 9c fc f9 ff       	jmp    0x414504
474868:	e8 26 87 f9 ff       	call   0x40cf93
47486d:	8b cf                	mov    %edi,%ecx
47486f:	8b d8                	mov    %eax,%ebx
474871:	8b f2                	mov    %edx,%esi
474873:	e8 1b 87 f9 ff       	call   0x40cf93
474878:	3b f2                	cmp    %edx,%esi
47487a:	0f 8f 82 fc f9 ff    	jg     0x414502
474880:	0f 8c 9a fc f9 ff    	jl     0x414520
474886:	3b d8                	cmp    %eax,%ebx
474888:	0f 82 92 fc f9 ff    	jb     0x414520
47488e:	e9 6f fc f9 ff       	jmp    0x414502
474893:	8b 75 08             	mov    0x8(%ebp),%esi
474896:	83 7e 0c 01          	cmpl   $0x1,0xc(%esi)
47489a:	74 0a                	je     0x4748a6
47489c:	83 7e 0c 02          	cmpl   $0x2,0xc(%esi)
4748a0:	0f 85 23 fd f9 ff    	jne    0x4145c9
4748a6:	8b ce                	mov    %esi,%ecx
4748a8:	e8 e6 86 f9 ff       	call   0x40cf93
4748ad:	01 03                	add    %eax,(%ebx)
4748af:	11 53 04             	adc    %edx,0x4(%ebx)
4748b2:	e9 b0 fc f9 ff       	jmp    0x414567
4748b7:	8b 03                	mov    (%ebx),%eax
4748b9:	99                   	cltd
4748ba:	03 06                	add    (%esi),%eax
4748bc:	13 56 04             	adc    0x4(%esi),%edx
4748bf:	89 03                	mov    %eax,(%ebx)
4748c1:	89 53 04             	mov    %edx,0x4(%ebx)
4748c4:	89 4b 0c             	mov    %ecx,0xc(%ebx)
4748c7:	e9 9b fc f9 ff       	jmp    0x414567
4748cc:	83 f8 07             	cmp    $0x7,%eax
4748cf:	0f 84 82 00 00 00    	je     0x474957
4748d5:	83 f8 08             	cmp    $0x8,%eax
4748d8:	0f 8e 89 fc f9 ff    	jle    0x414567
4748de:	83 f8 0a             	cmp    $0xa,%eax
4748e1:	0f 8e 56 fc f9 ff    	jle    0x41453d
4748e7:	83 f8 0b             	cmp    $0xb,%eax
4748ea:	0f 85 77 fc f9 ff    	jne    0x414567
4748f0:	8b 75 08             	mov    0x8(%ebp),%esi
4748f3:	39 46 0c             	cmp    %eax,0xc(%esi)
4748f6:	0f 85 cd fc f9 ff    	jne    0x4145c9
4748fc:	8b ce                	mov    %esi,%ecx
4748fe:	e8 9b 6c fd ff       	call   0x44b59e
474903:	8b 0b                	mov    (%ebx),%ecx
474905:	8b f8                	mov    %eax,%edi
474907:	03 39                	add    (%ecx),%edi
474909:	57                   	push   %edi
47490a:	e8 db ab fa ff       	call   0x41f4ea
47490f:	8b 0b                	mov    (%ebx),%ecx
474911:	8b f0                	mov    %eax,%esi
474913:	ff 31                	push   (%ecx)
474915:	ff 71 04             	push   0x4(%ecx)
474918:	56                   	push   %esi
474919:	e8 62 a5 fa ff       	call   0x41ee80
47491e:	8b 4d 08             	mov    0x8(%ebp),%ecx
474921:	83 c4 10             	add    $0x10,%esp
474924:	e8 75 6c fd ff       	call   0x44b59e
474929:	50                   	push   %eax
47492a:	e8 2c 6c fd ff       	call   0x44b55b
47492f:	50                   	push   %eax
474930:	8b 03                	mov    (%ebx),%eax
474932:	8b 00                	mov    (%eax),%eax
474934:	03 c6                	add    %esi,%eax
474936:	50                   	push   %eax
474937:	e8 44 a5 fa ff       	call   0x41ee80
47493c:	8b 03                	mov    (%ebx),%eax
47493e:	ff 70 04             	push   0x4(%eax)
474941:	e8 18 ac fa ff       	call   0x41f55e
474946:	8b 03                	mov    (%ebx),%eax
474948:	83 c4 10             	add    $0x10,%esp
47494b:	89 70 04             	mov    %esi,0x4(%eax)
47494e:	8b 03                	mov    (%ebx),%eax
474950:	89 38                	mov    %edi,(%eax)
474952:	e9 10 fc f9 ff       	jmp    0x414567
474957:	8b 4d 08             	mov    0x8(%ebp),%ecx
47495a:	8b 33                	mov    (%ebx),%esi
47495c:	83 79 0c 01          	cmpl   $0x1,0xc(%ecx)
474960:	75 07                	jne    0x474969
474962:	e8 1f 89 f9 ff       	call   0x40d286
474967:	eb 05                	jmp    0x47496e
474969:	e8 25 86 f9 ff       	call   0x40cf93
47496e:	03 f0                	add    %eax,%esi
474970:	89 33                	mov    %esi,(%ebx)
474972:	e9 f0 fb f9 ff       	jmp    0x414567
474977:	51                   	push   %ecx
474978:	e8 1c e1 f8 ff       	call   0x402a99
47497d:	83 63 08 00          	andl   $0x0,0x8(%ebx)
474981:	e9 ec fb f9 ff       	jmp    0x414572
474986:	0f 88 b1 76 fa ff    	js     0x41c03d
47498c:	3b 81 0c 02 00 00    	cmp    0x20c(%ecx),%eax
474992:	0f 8f a5 76 fa ff    	jg     0x41c03d
474998:	8b 44 81 08          	mov    0x8(%ecx,%eax,4),%eax
47499c:	e9 98 76 fa ff       	jmp    0x41c039
4749a1:	48                   	dec    %eax
4749a2:	89 01                	mov    %eax,(%ecx)
4749a4:	8b 03                	mov    (%ebx),%eax
4749a6:	33 c9                	xor    %ecx,%ecx
4749a8:	8b 30                	mov    (%eax),%esi
4749aa:	8b 40 08             	mov    0x8(%eax),%eax
4749ad:	ba 04 00 00 00       	mov    $0x4,%edx
4749b2:	f7 e2                	mul    %edx
4749b4:	0f 90 c1             	seto   %cl
4749b7:	89 75 fc             	mov    %esi,-0x4(%ebp)
4749ba:	f7 d9                	neg    %ecx
4749bc:	0b c8                	or     %eax,%ecx
4749be:	51                   	push   %ecx
4749bf:	e8 26 ab fa ff       	call   0x41f4ea
4749c4:	8b 0b                	mov    (%ebx),%ecx
4749c6:	6a 04                	push   $0x4
4749c8:	89 01                	mov    %eax,(%ecx)
4749ca:	e8 1b ab fa ff       	call   0x41f4ea
4749cf:	8b c8                	mov    %eax,%ecx
4749d1:	83 c4 08             	add    $0x8,%esp
4749d4:	85 c9                	test   %ecx,%ecx
4749d6:	74 08                	je     0x4749e0
4749d8:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
4749de:	eb 02                	jmp    0x4749e2
4749e0:	33 c9                	xor    %ecx,%ecx
4749e2:	8b 03                	mov    (%ebx),%eax
4749e4:	33 ff                	xor    %edi,%edi
4749e6:	89 48 04             	mov    %ecx,0x4(%eax)
4749e9:	8b 03                	mov    (%ebx),%eax
4749eb:	39 78 08             	cmp    %edi,0x8(%eax)
4749ee:	0f 8e ba d1 f9 ff    	jle    0x411bae
4749f4:	83 3c be 00          	cmpl   $0x0,(%esi,%edi,4)
4749f8:	74 3f                	je     0x474a39
4749fa:	6a 10                	push   $0x10
4749fc:	e8 e9 aa fa ff       	call   0x41f4ea
474a01:	8b f0                	mov    %eax,%esi
474a03:	83 c4 04             	add    $0x4,%esp
474a06:	85 f6                	test   %esi,%esi
474a08:	74 21                	je     0x474a2b
474a0a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
474a0d:	8b 0c b9             	mov    (%ecx,%edi,4),%ecx
474a10:	51                   	push   %ecx
474a11:	8b ce                	mov    %esi,%ecx
474a13:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
474a1a:	e8 01 cd f9 ff       	call   0x411720
474a1f:	8b 03                	mov    (%ebx),%eax
474a21:	8b 00                	mov    (%eax),%eax
474a23:	89 34 b8             	mov    %esi,(%eax,%edi,4)
474a26:	8b 75 fc             	mov    -0x4(%ebp),%esi
474a29:	eb 17                	jmp    0x474a42
474a2b:	8b 03                	mov    (%ebx),%eax
474a2d:	33 f6                	xor    %esi,%esi
474a2f:	8b 00                	mov    (%eax),%eax
474a31:	89 34 b8             	mov    %esi,(%eax,%edi,4)
474a34:	8b 75 fc             	mov    -0x4(%ebp),%esi
474a37:	eb 09                	jmp    0x474a42
474a39:	8b 00                	mov    (%eax),%eax
474a3b:	c7 04 b8 00 00 00 00 	movl   $0x0,(%eax,%edi,4)
474a42:	8b 03                	mov    (%ebx),%eax
474a44:	47                   	inc    %edi
474a45:	3b 78 08             	cmp    0x8(%eax),%edi
474a48:	7c aa                	jl     0x4749f4
474a4a:	e9 5f d1 f9 ff       	jmp    0x411bae
474a4f:	8b 46 08             	mov    0x8(%esi),%eax
474a52:	83 78 04 12          	cmpl   $0x12,0x4(%eax)
474a56:	0f 87 f9 84 f9 ff    	ja     0x40cf55
474a5c:	83 78 04 0a          	cmpl   $0xa,0x4(%eax)
474a60:	e9 0b 85 f9 ff       	jmp    0x40cf70
474a65:	8b 45 fc             	mov    -0x4(%ebp),%eax
474a68:	89 46 04             	mov    %eax,0x4(%esi)
474a6b:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
474a72:	e9 13 85 f9 ff       	jmp    0x40cf8a
474a77:	8b 06                	mov    (%esi),%eax
474a79:	89 03                	mov    %eax,(%ebx)
474a7b:	8b 46 04             	mov    0x4(%esi),%eax
474a7e:	89 43 04             	mov    %eax,0x4(%ebx)
474a81:	e9 b4 cc f9 ff       	jmp    0x41173a
474a86:	83 3e 00             	cmpl   $0x0,(%esi)
474a89:	0f 84 ab cc f9 ff    	je     0x41173a
474a8f:	6a 10                	push   $0x10
474a91:	e8 54 aa fa ff       	call   0x41f4ea
474a96:	83 c4 04             	add    $0x4,%esp
474a99:	89 03                	mov    %eax,(%ebx)
474a9b:	50                   	push   %eax
474a9c:	ff 15 64 d4 48 00    	call   *0x48d464
474aa2:	ff 36                	push   (%esi)
474aa4:	ff 33                	push   (%ebx)
474aa6:	ff 15 48 d4 48 00    	call   *0x48d448
474aac:	85 c0                	test   %eax,%eax
474aae:	0f 89 86 cc f9 ff    	jns    0x41173a
474ab4:	ff 33                	push   (%ebx)
474ab6:	ff 15 4c d4 48 00    	call   *0x48d44c
474abc:	ff 33                	push   (%ebx)
474abe:	e8 9b aa fa ff       	call   0x41f55e
474ac3:	83 c4 04             	add    $0x4,%esp
474ac6:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
474acc:	e9 69 cc f9 ff       	jmp    0x41173a
474ad1:	6a 18                	push   $0x18
474ad3:	e8 12 aa fa ff       	call   0x41f4ea
474ad8:	83 c4 04             	add    $0x4,%esp
474adb:	85 c0                	test   %eax,%eax
474add:	74 0e                	je     0x474aed
474adf:	ff 36                	push   (%esi)
474ae1:	8b c8                	mov    %eax,%ecx
474ae3:	e8 bb 45 fd ff       	call   0x4490a3
474ae8:	e9 4b cc f9 ff       	jmp    0x411738
474aed:	33 c0                	xor    %eax,%eax
474aef:	e9 44 cc f9 ff       	jmp    0x411738
474af4:	6a 08                	push   $0x8
474af6:	e8 ef a9 fa ff       	call   0x41f4ea
474afb:	89 03                	mov    %eax,(%ebx)
474afd:	8b 0e                	mov    (%esi),%ecx
474aff:	83 c4 04             	add    $0x4,%esp
474b02:	8b 09                	mov    (%ecx),%ecx
474b04:	89 08                	mov    %ecx,(%eax)
474b06:	8b 03                	mov    (%ebx),%eax
474b08:	8b 00                	mov    (%eax),%eax
474b0a:	85 c0                	test   %eax,%eax
474b0c:	74 24                	je     0x474b32
474b0e:	50                   	push   %eax
474b0f:	e8 d6 a9 fa ff       	call   0x41f4ea
474b14:	8b 0b                	mov    (%ebx),%ecx
474b16:	89 41 04             	mov    %eax,0x4(%ecx)
474b19:	8b 0b                	mov    (%ebx),%ecx
474b1b:	8b 06                	mov    (%esi),%eax
474b1d:	ff 31                	push   (%ecx)
474b1f:	ff 70 04             	push   0x4(%eax)
474b22:	ff 71 04             	push   0x4(%ecx)
474b25:	e8 56 a3 fa ff       	call   0x41ee80
474b2a:	83 c4 10             	add    $0x10,%esp
474b2d:	e9 08 cc f9 ff       	jmp    0x41173a
474b32:	6a 01                	push   $0x1
474b34:	e8 b1 a9 fa ff       	call   0x41f4ea
474b39:	8b 0b                	mov    (%ebx),%ecx
474b3b:	83 c4 04             	add    $0x4,%esp
474b3e:	89 41 04             	mov    %eax,0x4(%ecx)
474b41:	8b 03                	mov    (%ebx),%eax
474b43:	8b 40 04             	mov    0x4(%eax),%eax
474b46:	c6 00 00             	movb   $0x0,(%eax)
474b49:	e9 ec cb f9 ff       	jmp    0x41173a
474b4e:	6a 14                	push   $0x14
474b50:	e8 95 a9 fa ff       	call   0x41f4ea
474b55:	83 c4 04             	add    $0x4,%esp
474b58:	85 c0                	test   %eax,%eax
474b5a:	74 91                	je     0x474aed
474b5c:	ff 36                	push   (%esi)
474b5e:	8b c8                	mov    %eax,%ecx
474b60:	e8 27 36 fd ff       	call   0x44818c
474b65:	e9 ce cb f9 ff       	jmp    0x411738
474b6a:	6a 14                	push   $0x14
474b6c:	e8 79 a9 fa ff       	call   0x41f4ea
474b71:	83 c4 04             	add    $0x4,%esp
474b74:	85 c0                	test   %eax,%eax
474b76:	0f 84 71 ff ff ff    	je     0x474aed
474b7c:	ff 36                	push   (%esi)
474b7e:	8b c8                	mov    %eax,%ecx
474b80:	e8 bb f7 fc ff       	call   0x444340
474b85:	e9 ae cb f9 ff       	jmp    0x411738
474b8a:	6a 14                	push   $0x14
474b8c:	e8 59 a9 fa ff       	call   0x41f4ea
474b91:	8b f8                	mov    %eax,%edi
474b93:	83 c4 04             	add    $0x4,%esp
474b96:	85 ff                	test   %edi,%edi
474b98:	74 09                	je     0x474ba3
474b9a:	8b cf                	mov    %edi,%ecx
474b9c:	e8 56 8c f9 ff       	call   0x40d7f7
474ba1:	eb 02                	jmp    0x474ba5
474ba3:	33 ff                	xor    %edi,%edi
474ba5:	89 3b                	mov    %edi,(%ebx)
474ba7:	ff 36                	push   (%esi)
474ba9:	8b cf                	mov    %edi,%ecx
474bab:	e8 3d 23 f9 ff       	call   0x406eed
474bb0:	8b 06                	mov    (%esi),%eax
474bb2:	8b 0b                	mov    (%ebx),%ecx
474bb4:	8b 40 10             	mov    0x10(%eax),%eax
474bb7:	89 41 10             	mov    %eax,0x10(%ecx)
474bba:	e9 7b cb f9 ff       	jmp    0x41173a
474bbf:	83 e8 04             	sub    $0x4,%eax
474bc2:	0f 84 dd 00 00 00    	je     0x474ca5
474bc8:	6a 02                	push   $0x2
474bca:	5a                   	pop    %edx
474bcb:	2b c2                	sub    %edx,%eax
474bcd:	0f 84 ae 00 00 00    	je     0x474c81
474bd3:	48                   	dec    %eax
474bd4:	74 73                	je     0x474c49
474bd6:	48                   	dec    %eax
474bd7:	74 0e                	je     0x474be7
474bd9:	33 c0                	xor    %eax,%eax
474bdb:	66 89 85 6c ff ff ff 	mov    %ax,-0x94(%ebp)
474be2:	e9 cc 47 f9 ff       	jmp    0x4093b3
474be7:	8b 06                	mov    (%esi),%eax
474be9:	33 c9                	xor    %ecx,%ecx
474beb:	8b 00                	mov    (%eax),%eax
474bed:	53                   	push   %ebx
474bee:	8d 04 85 06 00 00 00 	lea    0x6(,%eax,4),%eax
474bf5:	f7 e2                	mul    %edx
474bf7:	0f 90 c1             	seto   %cl
474bfa:	f7 d9                	neg    %ecx
474bfc:	0b c8                	or     %eax,%ecx
474bfe:	51                   	push   %ecx
474bff:	e8 e6 a8 fa ff       	call   0x41f4ea
474c04:	59                   	pop    %ecx
474c05:	8b 0e                	mov    (%esi),%ecx
474c07:	8b d8                	mov    %eax,%ebx
474c09:	39 39                	cmp    %edi,(%ecx)
474c0b:	74 11                	je     0x474c1e
474c0d:	51                   	push   %ecx
474c0e:	ff 31                	push   (%ecx)
474c10:	8b 49 04             	mov    0x4(%ecx),%ecx
474c13:	8b d3                	mov    %ebx,%edx
474c15:	e8 a9 30 fd ff       	call   0x447cc3
474c1a:	59                   	pop    %ecx
474c1b:	59                   	pop    %ecx
474c1c:	eb 05                	jmp    0x474c23
474c1e:	33 c0                	xor    %eax,%eax
474c20:	66 89 03             	mov    %ax,(%ebx)
474c23:	6a 10                	push   $0x10
474c25:	e8 c0 a8 fa ff       	call   0x41f4ea
474c2a:	59                   	pop    %ecx
474c2b:	85 c0                	test   %eax,%eax
474c2d:	74 0a                	je     0x474c39
474c2f:	53                   	push   %ebx
474c30:	8b c8                	mov    %eax,%ecx
474c32:	e8 e2 81 f9 ff       	call   0x40ce19
474c37:	8b f8                	mov    %eax,%edi
474c39:	53                   	push   %ebx
474c3a:	89 7e 08             	mov    %edi,0x8(%esi)
474c3d:	e8 1c a9 fa ff       	call   0x41f55e
474c42:	59                   	pop    %ecx
474c43:	5b                   	pop    %ebx
474c44:	e9 37 47 f9 ff       	jmp    0x409380
474c49:	8b 0e                	mov    (%esi),%ecx
474c4b:	8b 41 0c             	mov    0xc(%ecx),%eax
474c4e:	8b 51 08             	mov    0x8(%ecx),%edx
474c51:	89 45 f4             	mov    %eax,-0xc(%ebp)
474c54:	8b 41 10             	mov    0x10(%ecx),%eax