41579a:	8b 03                	mov    (%ebx),%eax
41579c:	8b 55 08             	mov    0x8(%ebp),%edx
41579f:	56                   	push   %esi
4157a0:	52                   	push   %edx
4157a1:	8b 70 08             	mov    0x8(%eax),%esi
4157a4:	8b ce                	mov    %esi,%ecx
4157a6:	ff 15 84 23 45 00    	call   *0x452384
4157ac:	8b cb                	mov    %ebx,%ecx
4157ae:	ff d6                	call   *%esi
4157b0:	5f                   	pop    %edi
4157b1:	5e                   	pop    %esi
4157b2:	5b                   	pop    %ebx
4157b3:	8b e5                	mov    %ebp,%esp
4157b5:	5d                   	pop    %ebp
4157b6:	c2 08 00             	ret    $0x8
4157b9:	8b 43 38             	mov    0x38(%ebx),%eax
4157bc:	8d 34 c5 08 00 00 00 	lea    0x8(,%eax,8),%esi
4157c3:	56                   	push   %esi
4157c4:	ff 15 6c 23 45 00    	call   *0x45236c
4157ca:	56                   	push   %esi
4157cb:	89 44 24 18          	mov    %eax,0x18(%esp)
4157cf:	ff 15 6c 23 45 00    	call   *0x45236c
4157d5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4157d9:	83 c4 08             	add    $0x8,%esp
4157dc:	89 44 24 14          	mov    %eax,0x14(%esp)
4157e0:	85 c9                	test   %ecx,%ecx
4157e2:	0f 84 ea 00 00 00    	je     0x4158d2
4157e8:	85 c0                	test   %eax,%eax
4157ea:	0f 84 e2 00 00 00    	je     0x4158d2
4157f0:	8b 44 24 0c          	mov    0xc(%esp),%eax
4157f4:	85 c0                	test   %eax,%eax
4157f6:	74 29                	je     0x415821
4157f8:	8d 34 c5 00 00 00 00 	lea    0x0(,%eax,8),%esi
4157ff:	56                   	push   %esi
415800:	ff 73 30             	push   0x30(%ebx)
415803:	51                   	push   %ecx
415804:	e8 52 82 03 00       	call   0x44da5b
415809:	56                   	push   %esi
41580a:	ff 73 40             	push   0x40(%ebx)
41580d:	ff 74 24 28          	push   0x28(%esp)
415811:	e8 45 82 03 00       	call   0x44da5b
415816:	8b 44 24 24          	mov    0x24(%esp),%eax
41581a:	83 c4 18             	add    $0x18,%esp
41581d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
415821:	8b 53 38             	mov    0x38(%ebx),%edx
415824:	33 f6                	xor    %esi,%esi
415826:	3b c2                	cmp    %edx,%eax
415828:	75 05                	jne    0x41582f
41582a:	3b 73 3c             	cmp    0x3c(%ebx),%esi
41582d:	74 45                	je     0x415874
41582f:	2b d0                	sub    %eax,%edx
415831:	8d 34 c5 00 00 00 00 	lea    0x0(,%eax,8),%esi
415838:	8b 43 30             	mov    0x30(%ebx),%eax
41583b:	c1 e2 03             	shl    $0x3,%edx
41583e:	03 c6                	add    %esi,%eax
415840:	52                   	push   %edx
415841:	50                   	push   %eax
415842:	8d 41 08             	lea    0x8(%ecx),%eax
415845:	03 c6                	add    %esi,%eax
415847:	50                   	push   %eax
415848:	e8 0e 82 03 00       	call   0x44da5b
41584d:	8b 43 38             	mov    0x38(%ebx),%eax
415850:	2b 44 24 18          	sub    0x18(%esp),%eax
415854:	c1 e0 03             	shl    $0x3,%eax
415857:	50                   	push   %eax
415858:	8b 43 40             	mov    0x40(%ebx),%eax
41585b:	03 c6                	add    %esi,%eax
41585d:	50                   	push   %eax
41585e:	8b 44 24 28          	mov    0x28(%esp),%eax
415862:	83 c0 08             	add    $0x8,%eax
415865:	03 c6                	add    %esi,%eax
415867:	50                   	push   %eax
415868:	e8 ee 81 03 00       	call   0x44da5b
41586d:	8b 44 24 24          	mov    0x24(%esp),%eax
415871:	83 c4 18             	add    $0x18,%esp
415874:	8b 4c 24 10          	mov    0x10(%esp),%ecx
415878:	8b 74 24 14          	mov    0x14(%esp),%esi
41587c:	8b 55 08             	mov    0x8(%ebp),%edx
41587f:	89 14 c1             	mov    %edx,(%ecx,%eax,8)
415882:	8b 55 0c             	mov    0xc(%ebp),%edx
415885:	89 54 c1 04          	mov    %edx,0x4(%ecx,%eax,8)
415889:	c7 04 c6 01 00 00 00 	movl   $0x1,(%esi,%eax,8)
415890:	c7 44 c6 04 00 00 00 	movl   $0x0,0x4(%esi,%eax,8)
415897:	00
415898:	ff 73 30             	push   0x30(%ebx)
41589b:	ff 15 08 23 45 00    	call   *0x452308
4158a1:	8b 44 24 14          	mov    0x14(%esp),%eax
4158a5:	ff 73 40             	push   0x40(%ebx)
4158a8:	89 43 30             	mov    %eax,0x30(%ebx)
4158ab:	ff 15 08 23 45 00    	call   *0x452308
4158b1:	83 c4 08             	add    $0x8,%esp
4158b4:	89 73 40             	mov    %esi,0x40(%ebx)
4158b7:	83 43 38 01          	addl   $0x1,0x38(%ebx)
4158bb:	8d 4b 44             	lea    0x44(%ebx),%ecx
4158be:	83 53 3c 00          	adcl   $0x0,0x3c(%ebx)
4158c2:	e8 29 f7 ff ff       	call   0x414ff0
4158c7:	33 c0                	xor    %eax,%eax
4158c9:	5f                   	pop    %edi
4158ca:	5e                   	pop    %esi
4158cb:	5b                   	pop    %ebx
4158cc:	8b e5                	mov    %ebp,%esp
4158ce:	5d                   	pop    %ebp
4158cf:	c2 08 00             	ret    $0x8
4158d2:	8d 4b 44             	lea    0x44(%ebx),%ecx
4158d5:	e8 16 f7 ff ff       	call   0x414ff0
4158da:	b8 02 00 00 00       	mov    $0x2,%eax
4158df:	5f                   	pop    %edi
4158e0:	5e                   	pop    %esi
4158e1:	5b                   	pop    %ebx
4158e2:	8b e5                	mov    %ebp,%esp
4158e4:	5d                   	pop    %ebp
4158e5:	c2 08 00             	ret    $0x8
4158e8:	8b 4b 40             	mov    0x40(%ebx),%ecx
4158eb:	8b 44 24 0c          	mov    0xc(%esp),%eax
4158ef:	83 04 c1 01          	addl   $0x1,(%ecx,%eax,8)
4158f3:	83 54 c1 04 00       	adcl   $0x0,0x4(%ecx,%eax,8)
4158f8:	8d 4b 44             	lea    0x44(%ebx),%ecx
4158fb:	e8 30 f8 ff ff       	call   0x415130
415900:	5f                   	pop    %edi
415901:	5e                   	pop    %esi
415902:	33 c0                	xor    %eax,%eax
415904:	5b                   	pop    %ebx
415905:	8b e5                	mov    %ebp,%esp
415907:	5d                   	pop    %ebp
415908:	c2 08 00             	ret    $0x8
41590b:	cc                   	int3
41590c:	cc                   	int3
41590d:	cc                   	int3
41590e:	cc                   	int3
41590f:	cc                   	int3
415910:	8b ff                	mov    %edi,%edi
415912:	55                   	push   %ebp
415913:	8b ec                	mov    %esp,%ebp
415915:	8b 45 08             	mov    0x8(%ebp),%eax
415918:	56                   	push   %esi
415919:	8b f1                	mov    %ecx,%esi
41591b:	a8 01                	test   $0x1,%al
41591d:	74 07                	je     0x415926
41591f:	c7 46 5c 00 00 00 00 	movl   $0x0,0x5c(%esi)
415926:	a8 02                	test   $0x2,%al
415928:	74 1c                	je     0x415946
41592a:	c7 46 60 00 00 00 00 	movl   $0x0,0x60(%esi)
415931:	c7 46 64 00 00 00 00 	movl   $0x0,0x64(%esi)
415938:	c7 46 68 00 00 00 00 	movl   $0x0,0x68(%esi)
41593f:	c7 46 6c 00 00 00 00 	movl   $0x0,0x6c(%esi)
415946:	83 7e 58 00          	cmpl   $0x0,0x58(%esi)
41594a:	74 15                	je     0x415961
41594c:	83 7e 54 00          	cmpl   $0x0,0x54(%esi)
415950:	75 08                	jne    0x41595a
415952:	8d 4e 44             	lea    0x44(%esi),%ecx
415955:	e8 d6 f7 ff ff       	call   0x415130
41595a:	c7 46 58 00 00 00 00 	movl   $0x0,0x58(%esi)
415961:	33 c0                	xor    %eax,%eax
415963:	5e                   	pop    %esi
415964:	5d                   	pop    %ebp
415965:	c2 04 00             	ret    $0x4
415968:	cc                   	int3
415969:	cc                   	int3
41596a:	cc                   	int3
41596b:	cc                   	int3
41596c:	cc                   	int3
41596d:	cc                   	int3
41596e:	cc                   	int3
41596f:	cc                   	int3
415970:	8b ff                	mov    %edi,%edi
415972:	55                   	push   %ebp
415973:	8b ec                	mov    %esp,%ebp
415975:	56                   	push   %esi
415976:	8b f1                	mov    %ecx,%esi
415978:	83 7e 58 00          	cmpl   $0x0,0x58(%esi)
41597c:	75 15                	jne    0x415993
41597e:	83 7e 54 00          	cmpl   $0x0,0x54(%esi)
415982:	75 08                	jne    0x41598c
415984:	8d 4e 44             	lea    0x44(%esi),%ecx
415987:	e8 e4 f6 ff ff       	call   0x415070
41598c:	c7 46 58 01 00 00 00 	movl   $0x1,0x58(%esi)
415993:	8b 55 08             	mov    0x8(%ebp),%edx
415996:	85 d2                	test   %edx,%edx
415998:	75 08                	jne    0x4159a2
41599a:	8d 42 01             	lea    0x1(%edx),%eax
41599d:	5e                   	pop    %esi
41599e:	5d                   	pop    %ebp
41599f:	c2 04 00             	ret    $0x4
4159a2:	33 c0                	xor    %eax,%eax
4159a4:	57                   	push   %edi
4159a5:	8b 7e 5c             	mov    0x5c(%esi),%edi
4159a8:	3b 46 3c             	cmp    0x3c(%esi),%eax
4159ab:	7c 12                	jl     0x4159bf
4159ad:	7f 05                	jg     0x4159b4
4159af:	3b 7e 38             	cmp    0x38(%esi),%edi
4159b2:	72 0b                	jb     0x4159bf
4159b4:	5f                   	pop    %edi
4159b5:	b8 03 00 00 00       	mov    $0x3,%eax
4159ba:	5e                   	pop    %esi
4159bb:	5d                   	pop    %ebp
4159bc:	c2 04 00             	ret    $0x4
4159bf:	8b 4e 30             	mov    0x30(%esi),%ecx
4159c2:	8b 04 f9             	mov    (%ecx,%edi,8),%eax
4159c5:	89 02                	mov    %eax,(%edx)
4159c7:	8b 44 f9 04          	mov    0x4(%ecx,%edi,8),%eax
4159cb:	89 42 04             	mov    %eax,0x4(%edx)
4159ce:	ff 46 5c             	incl   0x5c(%esi)
4159d1:	33 c0                	xor    %eax,%eax
4159d3:	5f                   	pop    %edi
4159d4:	5e                   	pop    %esi
4159d5:	5d                   	pop    %ebp
4159d6:	c2 04 00             	ret    $0x4
4159d9:	cc                   	int3
4159da:	cc                   	int3
4159db:	cc                   	int3
4159dc:	cc                   	int3
4159dd:	cc                   	int3
4159de:	cc                   	int3
4159df:	cc                   	int3
4159e0:	8b ff                	mov    %edi,%edi
4159e2:	55                   	push   %ebp
4159e3:	8b ec                	mov    %esp,%ebp
4159e5:	83 e4 f8             	and    $0xfffffff8,%esp
4159e8:	83 ec 0c             	sub    $0xc,%esp
4159eb:	53                   	push   %ebx
4159ec:	56                   	push   %esi
4159ed:	8b f1                	mov    %ecx,%esi
4159ef:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
4159f6:	00
4159f7:	57                   	push   %edi
4159f8:	83 7e 58 00          	cmpl   $0x0,0x58(%esi)
4159fc:	75 15                	jne    0x415a13
4159fe:	83 7e 54 00          	cmpl   $0x0,0x54(%esi)
415a02:	75 08                	jne    0x415a0c
415a04:	8d 4e 44             	lea    0x44(%esi),%ecx
415a07:	e8 64 f6 ff ff       	call   0x415070
415a0c:	c7 46 58 01 00 00 00 	movl   $0x1,0x58(%esi)
415a13:	8b 7d 10             	mov    0x10(%ebp),%edi
415a16:	85 ff                	test   %edi,%edi
415a18:	0f 84 a8 00 00 00    	je     0x415ac6
415a1e:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
415a24:	33 d2                	xor    %edx,%edx
415a26:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
415a2d:	8b 4e 60             	mov    0x60(%esi),%ecx
415a30:	8b 46 38             	mov    0x38(%esi),%eax
415a33:	3b 56 3c             	cmp    0x3c(%esi),%edx
415a36:	7c 14                	jl     0x415a4c
415a38:	7f 04                	jg     0x415a3e
415a3a:	3b c8                	cmp    %eax,%ecx
415a3c:	72 0e                	jb     0x415a4c
415a3e:	b8 03 00 00 00       	mov    $0x3,%eax
415a43:	5f                   	pop    %edi
415a44:	5e                   	pop    %esi
415a45:	5b                   	pop    %ebx
415a46:	8b e5                	mov    %ebp,%esp
415a48:	5d                   	pop    %ebp
415a49:	c2 0c 00             	ret    $0xc
415a4c:	8b 5d 08             	mov    0x8(%ebp),%ebx
415a4f:	83 f9 01             	cmp    $0x1,%ecx
415a52:	76 14                	jbe    0x415a68
415a54:	8b 46 30             	mov    0x30(%esi),%eax
415a57:	8b 55 0c             	mov    0xc(%ebp),%edx
415a5a:	3b 54 c8 fc          	cmp    -0x4(%eax,%ecx,8),%edx
415a5e:	72 66                	jb     0x415ac6
415a60:	77 06                	ja     0x415a68
415a62:	3b 5c c8 f8          	cmp    -0x8(%eax,%ecx,8),%ebx
415a66:	72 5e                	jb     0x415ac6
415a68:	8b 56 30             	mov    0x30(%esi),%edx
415a6b:	33 ff                	xor    %edi,%edi
415a6d:	8d 49 00             	lea    0x0(%ecx),%ecx
415a70:	8b 45 0c             	mov    0xc(%ebp),%eax
415a73:	3b 44 ca 04          	cmp    0x4(%edx,%ecx,8),%eax
415a77:	72 2e                	jb     0x415aa7
415a79:	77 05                	ja     0x415a80
415a7b:	3b 1c ca             	cmp    (%edx,%ecx,8),%ebx
415a7e:	72 27                	jb     0x415aa7
415a80:	8b 46 40             	mov    0x40(%esi),%eax
415a83:	8b 5c 24 10          	mov    0x10(%esp),%ebx
415a87:	03 3c c8             	add    (%eax,%ecx,8),%edi
415a8a:	13 5c c8 04          	adc    0x4(%eax,%ecx,8),%ebx
415a8e:	41                   	inc    %ecx
415a8f:	33 c0                	xor    %eax,%eax
415a91:	89 5c 24 10          	mov    %ebx,0x10(%esp)
415a95:	8b 5d 08             	mov    0x8(%ebp),%ebx
415a98:	89 4e 60             	mov    %ecx,0x60(%esi)
415a9b:	3b 46 3c             	cmp    0x3c(%esi),%eax
415a9e:	7c d0                	jl     0x415a70
415aa0:	7f 05                	jg     0x415aa7
415aa2:	3b 4e 38             	cmp    0x38(%esi),%ecx
415aa5:	72 c9                	jb     0x415a70
415aa7:	89 7c 24 14          	mov    %edi,0x14(%esp)
415aab:	8b 7d 10             	mov    0x10(%ebp),%edi
415aae:	8b 44 24 14          	mov    0x14(%esp),%eax
415ab2:	89 07                	mov    %eax,(%edi)
415ab4:	8b 44 24 10          	mov    0x10(%esp),%eax
415ab8:	89 47 04             	mov    %eax,0x4(%edi)
415abb:	33 c0                	xor    %eax,%eax
415abd:	5f                   	pop    %edi
415abe:	5e                   	pop    %esi
415abf:	5b                   	pop    %ebx
415ac0:	8b e5                	mov    %ebp,%esp
415ac2:	5d                   	pop    %ebp
415ac3:	c2 0c 00             	ret    $0xc
415ac6:	5f                   	pop    %edi
415ac7:	5e                   	pop    %esi
415ac8:	b8 01 00 00 00       	mov    $0x1,%eax
415acd:	5b                   	pop    %ebx
415ace:	8b e5                	mov    %ebp,%esp
415ad0:	5d                   	pop    %ebp
415ad1:	c2 0c 00             	ret    $0xc
415ad4:	cc                   	int3
415ad5:	cc                   	int3
415ad6:	cc                   	int3
415ad7:	cc                   	int3
415ad8:	cc                   	int3
415ad9:	cc                   	int3
415ada:	cc                   	int3
415adb:	cc                   	int3
415adc:	cc                   	int3
415add:	cc                   	int3
415ade:	cc                   	int3
415adf:	cc                   	int3
415ae0:	8b ff                	mov    %edi,%edi
415ae2:	55                   	push   %ebp
415ae3:	8b ec                	mov    %esp,%ebp
415ae5:	83 e4 f8             	and    $0xfffffff8,%esp
415ae8:	83 ec 14             	sub    $0x14,%esp
415aeb:	53                   	push   %ebx
415aec:	8b d9                	mov    %ecx,%ebx
415aee:	56                   	push   %esi
415aef:	57                   	push   %edi
415af0:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
415af4:	83 7b 58 00          	cmpl   $0x0,0x58(%ebx)
415af8:	75 15                	jne    0x415b0f
415afa:	83 7b 54 00          	cmpl   $0x0,0x54(%ebx)
415afe:	75 08                	jne    0x415b08
415b00:	8d 4b 44             	lea    0x44(%ebx),%ecx
415b03:	e8 68 f5 ff ff       	call   0x415070
415b08:	c7 43 58 01 00 00 00 	movl   $0x1,0x58(%ebx)
415b0f:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
415b13:	75 14                	jne    0x415b29
415b15:	83 7b 3c 00          	cmpl   $0x0,0x3c(%ebx)
415b19:	75 0e                	jne    0x415b29
415b1b:	b8 03 00 00 00       	mov    $0x3,%eax
415b20:	5f                   	pop    %edi
415b21:	5e                   	pop    %esi
415b22:	5b                   	pop    %ebx
415b23:	8b e5                	mov    %ebp,%esp
415b25:	5d                   	pop    %ebp
415b26:	c2 08 00             	ret    $0x8
415b29:	8b 7d 08             	mov    0x8(%ebp),%edi
415b2c:	85 ff                	test   %edi,%edi
415b2e:	0f 84 8b 01 00 00    	je     0x415cbf
415b34:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
415b38:	0f 84 81 01 00 00    	je     0x415cbf