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
415b3e:	8b 07                	mov    (%edi),%eax
415b40:	48                   	dec    %eax
415b41:	83 f8 63             	cmp    $0x63,%eax
415b44:	0f 87 75 01 00 00    	ja     0x415cbf
415b4a:	8b 03                	mov    (%ebx),%eax
415b4c:	8b 70 1c             	mov    0x1c(%eax),%esi
415b4f:	8b ce                	mov    %esi,%ecx
415b51:	ff 15 84 23 45 00    	call   *0x452384
415b57:	8b cb                	mov    %ebx,%ecx
415b59:	ff d6                	call   *%esi
415b5b:	6a 00                	push   $0x0
415b5d:	ff 37                	push   (%edi)
415b5f:	52                   	push   %edx
415b60:	50                   	push   %eax
415b61:	e8 6a 7c 03 00       	call   0x44d7d0
415b66:	6a 00                	push   $0x0
415b68:	6a 64                	push   $0x64
415b6a:	52                   	push   %edx
415b6b:	50                   	push   %eax
415b6c:	e8 af 7b 03 00       	call   0x44d720
415b71:	8b 73 68             	mov    0x68(%ebx),%esi
415b74:	8b ca                	mov    %edx,%ecx
415b76:	8b 7b 6c             	mov    0x6c(%ebx),%edi
415b79:	89 44 24 10          	mov    %eax,0x10(%esp)
415b7d:	8b c6                	mov    %esi,%eax
415b7f:	0b c7                	or     %edi,%eax
415b81:	89 4c 24 18          	mov    %ecx,0x18(%esp)
415b85:	75 0e                	jne    0x415b95
415b87:	8b 43 40             	mov    0x40(%ebx),%eax
415b8a:	8b 30                	mov    (%eax),%esi
415b8c:	8b 78 04             	mov    0x4(%eax),%edi
415b8f:	89 73 68             	mov    %esi,0x68(%ebx)
415b92:	89 7b 6c             	mov    %edi,0x6c(%ebx)
415b95:	8b 54 24 10          	mov    0x10(%esp),%edx
415b99:	3b d6                	cmp    %esi,%edx
415b9b:	75 08                	jne    0x415ba5
415b9d:	3b cf                	cmp    %edi,%ecx
415b9f:	0f 84 c2 00 00 00    	je     0x415c67
415ba5:	8b 43 64             	mov    0x64(%ebx),%eax
415ba8:	3b cf                	cmp    %edi,%ecx
415baa:	7f 4f                	jg     0x415bfb
415bac:	7c 04                	jl     0x415bb2
415bae:	3b d6                	cmp    %esi,%edx
415bb0:	73 49                	jae    0x415bfb
415bb2:	85 c0                	test   %eax,%eax
415bb4:	0f 84 ad 00 00 00    	je     0x415c67
415bba:	8b 53 40             	mov    0x40(%ebx),%edx
415bbd:	89 54 24 14          	mov    %edx,0x14(%esp)
415bc1:	8b 5c 24 14          	mov    0x14(%esp),%ebx
415bc5:	8b ce                	mov    %esi,%ecx
415bc7:	2b 0c c2             	sub    (%edx,%eax,8),%ecx
415bca:	8b d7                	mov    %edi,%edx
415bcc:	1b 54 c3 04          	sbb    0x4(%ebx,%eax,8),%edx
415bd0:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
415bd4:	3b 54 24 18          	cmp    0x18(%esp),%edx
415bd8:	0f 8c 89 00 00 00    	jl     0x415c67
415bde:	7f 0a                	jg     0x415bea
415be0:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
415be4:	0f 82 7d 00 00 00    	jb     0x415c67
415bea:	83 c0 ff             	add    $0xffffffff,%eax
415bed:	8b fa                	mov    %edx,%edi
415bef:	8b 53 40             	mov    0x40(%ebx),%edx
415bf2:	8b f1                	mov    %ecx,%esi
415bf4:	89 43 64             	mov    %eax,0x64(%ebx)
415bf7:	75 c8                	jne    0x415bc1
415bf9:	eb 6c                	jmp    0x415c67
415bfb:	8d 48 01             	lea    0x1(%eax),%ecx
415bfe:	33 d2                	xor    %edx,%edx
415c00:	8b 43 38             	mov    0x38(%ebx),%eax
415c03:	89 4b 64             	mov    %ecx,0x64(%ebx)
415c06:	3b 53 3c             	cmp    0x3c(%ebx),%edx
415c09:	7f 4b                	jg     0x415c56
415c0b:	7c 04                	jl     0x415c11
415c0d:	3b c8                	cmp    %eax,%ecx
415c0f:	73 45                	jae    0x415c56
415c11:	8b 43 40             	mov    0x40(%ebx),%eax
415c14:	8b d1                	mov    %ecx,%edx
415c16:	89 4c 24 14          	mov    %ecx,0x14(%esp)
415c1a:	8d 04 d0             	lea    (%eax,%edx,8),%eax
415c1d:	8b 54 24 10          	mov    0x10(%esp),%edx
415c21:	03 30                	add    (%eax),%esi
415c23:	13 78 04             	adc    0x4(%eax),%edi
415c26:	3b 7c 24 18          	cmp    0x18(%esp),%edi
415c2a:	7f 27                	jg     0x415c53
415c2c:	7c 04                	jl     0x415c32
415c2e:	3b f2                	cmp    %edx,%esi
415c30:	73 21                	jae    0x415c53
415c32:	8b 4c 24 14          	mov    0x14(%esp),%ecx
415c36:	33 d2                	xor    %edx,%edx
415c38:	41                   	inc    %ecx
415c39:	83 c0 08             	add    $0x8,%eax
415c3c:	3b 53 3c             	cmp    0x3c(%ebx),%edx
415c3f:	8b 54 24 10          	mov    0x10(%esp),%edx
415c43:	89 4b 64             	mov    %ecx,0x64(%ebx)
415c46:	89 4c 24 14          	mov    %ecx,0x14(%esp)
415c4a:	7c d5                	jl     0x415c21
415c4c:	7f 05                	jg     0x415c53
415c4e:	3b 4b 38             	cmp    0x38(%ebx),%ecx
415c51:	72 ce                	jb     0x415c21
415c53:	8b 43 38             	mov    0x38(%ebx),%eax
415c56:	33 d2                	xor    %edx,%edx
415c58:	3b c8                	cmp    %eax,%ecx
415c5a:	75 0b                	jne    0x415c67
415c5c:	3b 53 3c             	cmp    0x3c(%ebx),%edx
415c5f:	75 06                	jne    0x415c67
415c61:	8d 41 ff             	lea    -0x1(%ecx),%eax
415c64:	89 43 64             	mov    %eax,0x64(%ebx)
415c67:	8b 03                	mov    (%ebx),%eax
415c69:	89 73 68             	mov    %esi,0x68(%ebx)
415c6c:	89 7b 6c             	mov    %edi,0x6c(%ebx)
415c6f:	8b 70 1c             	mov    0x1c(%eax),%esi
415c72:	8b ce                	mov    %esi,%ecx
415c74:	ff 15 84 23 45 00    	call   *0x452384
415c7a:	8b cb                	mov    %ebx,%ecx
415c7c:	ff d6                	call   *%esi
415c7e:	6a 00                	push   $0x0
415c80:	6a 64                	push   $0x64
415c82:	ff 73 6c             	push   0x6c(%ebx)
415c85:	8b f8                	mov    %eax,%edi
415c87:	8b f2                	mov    %edx,%esi
415c89:	ff 73 68             	push   0x68(%ebx)
415c8c:	e8 3f 7b 03 00       	call   0x44d7d0
415c91:	56                   	push   %esi
415c92:	57                   	push   %edi
415c93:	52                   	push   %edx
415c94:	50                   	push   %eax
415c95:	e8 86 7a 03 00       	call   0x44d720
415c9a:	8b 4d 08             	mov    0x8(%ebp),%ecx
415c9d:	89 01                	mov    %eax,(%ecx)
415c9f:	8b 53 30             	mov    0x30(%ebx),%edx
415ca2:	8b 4b 64             	mov    0x64(%ebx),%ecx
415ca5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
415ca8:	8b 04 ca             	mov    (%edx,%ecx,8),%eax
415cab:	89 03                	mov    %eax,(%ebx)
415cad:	8b 44 ca 04          	mov    0x4(%edx,%ecx,8),%eax
415cb1:	89 43 04             	mov    %eax,0x4(%ebx)
415cb4:	33 c0                	xor    %eax,%eax
415cb6:	5f                   	pop    %edi
415cb7:	5e                   	pop    %esi
415cb8:	5b                   	pop    %ebx
415cb9:	8b e5                	mov    %ebp,%esp
415cbb:	5d                   	pop    %ebp
415cbc:	c2 08 00             	ret    $0x8
415cbf:	5f                   	pop    %edi
415cc0:	5e                   	pop    %esi
415cc1:	b8 01 00 00 00       	mov    $0x1,%eax
415cc6:	5b                   	pop    %ebx
415cc7:	8b e5                	mov    %ebp,%esp
415cc9:	5d                   	pop    %ebp
415cca:	c2 08 00             	ret    $0x8
415ccd:	cc                   	int3
415cce:	cc                   	int3
415ccf:	cc                   	int3
415cd0:	8b 41 08             	mov    0x8(%ecx),%eax
415cd3:	56                   	push   %esi
415cd4:	57                   	push   %edi
415cd5:	8d 79 08             	lea    0x8(%ecx),%edi
415cd8:	8b 70 1c             	mov    0x1c(%eax),%esi
415cdb:	8b ce                	mov    %esi,%ecx
415cdd:	ff 15 84 23 45 00    	call   *0x452384
415ce3:	8b cf                	mov    %edi,%ecx
415ce5:	ff d6                	call   *%esi
415ce7:	5f                   	pop    %edi
415ce8:	5e                   	pop    %esi
415ce9:	c3                   	ret
415cea:	cc                   	int3
415ceb:	cc                   	int3
415cec:	cc                   	int3
415ced:	cc                   	int3
415cee:	cc                   	int3
415cef:	cc                   	int3
415cf0:	8b 41 08             	mov    0x8(%ecx),%eax
415cf3:	56                   	push   %esi
415cf4:	57                   	push   %edi
415cf5:	8d 79 08             	lea    0x8(%ecx),%edi