415980:	8b 08                	mov    (%eax),%ecx
415982:	ff 51 28             	call   *0x28(%ecx)
415985:	5e                   	pop    %esi
415986:	c3                   	ret
415987:	90                   	nop
415988:	53                   	push   %ebx
415989:	56                   	push   %esi
41598a:	51                   	push   %ecx
41598b:	8b f2                	mov    %edx,%esi
41598d:	8b d8                	mov    %eax,%ebx
41598f:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
415993:	75 0e                	jne    0x4159a3
415995:	8b d6                	mov    %esi,%edx
415997:	8b c3                	mov    %ebx,%eax
415999:	e8 3e f5 ff ff       	call   0x414edc
41599e:	89 04 24             	mov    %eax,(%esp)
4159a1:	eb 19                	jmp    0x4159bc
4159a3:	8b cc                	mov    %esp,%ecx
4159a5:	8b d6                	mov    %esi,%edx
4159a7:	8b c3                	mov    %ebx,%eax
4159a9:	8b 18                	mov    (%eax),%ebx
4159ab:	ff 93 8c 00 00 00    	call   *0x8c(%ebx)
4159b1:	84 c0                	test   %al,%al
4159b3:	75 07                	jne    0x4159bc
4159b5:	c7 04 24 ff ff ff ff 	movl   $0xffffffff,(%esp)
4159bc:	8b 04 24             	mov    (%esp),%eax
4159bf:	5a                   	pop    %edx
4159c0:	5e                   	pop    %esi
4159c1:	5b                   	pop    %ebx
4159c2:	c3                   	ret
4159c3:	90                   	nop
4159c4:	53                   	push   %ebx
4159c5:	56                   	push   %esi
4159c6:	8b f0                	mov    %eax,%esi
4159c8:	6a 00                	push   $0x0
4159ca:	8b c6                	mov    %esi,%eax
4159cc:	8b 18                	mov    (%eax),%ebx
4159ce:	ff 53 64             	call   *0x64(%ebx)
4159d1:	5e                   	pop    %esi
4159d2:	5b                   	pop    %ebx
4159d3:	c3                   	ret
4159d4:	55                   	push   %ebp
4159d5:	8b ec                	mov    %esp,%ebp
4159d7:	53                   	push   %ebx
4159d8:	56                   	push   %esi
4159d9:	57                   	push   %edi
4159da:	8b f9                	mov    %ecx,%edi
4159dc:	8b f2                	mov    %edx,%esi
4159de:	8b d8                	mov    %eax,%ebx
4159e0:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
4159e4:	74 0f                	je     0x4159f5
4159e6:	8b 15 28 0b 46 00    	mov    0x460b28,%edx
4159ec:	33 c9                	xor    %ecx,%ecx
4159ee:	8b c3                	mov    %ebx,%eax
4159f0:	e8 17 f2 ff ff       	call   0x414c0c
4159f5:	85 f6                	test   %esi,%esi
4159f7:	7c 05                	jl     0x4159fe
4159f9:	3b 73 14             	cmp    0x14(%ebx),%esi
4159fc:	7e 0f                	jle    0x415a0d
4159fe:	8b 15 70 0c 46 00    	mov    0x460c70,%edx
415a04:	8b ce                	mov    %esi,%ecx
415a06:	8b c3                	mov    %ebx,%eax
415a08:	e8 ff f1 ff ff       	call   0x414c0c
415a0d:	8b 45 08             	mov    0x8(%ebp),%eax
415a10:	50                   	push   %eax
415a11:	8b cf                	mov    %edi,%ecx
415a13:	8b d6                	mov    %esi,%edx
415a15:	8b c3                	mov    %ebx,%eax
415a17:	8b 18                	mov    (%eax),%ebx
415a19:	ff 93 88 00 00 00    	call   *0x88(%ebx)
415a1f:	5f                   	pop    %edi
415a20:	5e                   	pop    %esi
415a21:	5b                   	pop    %ebx
415a22:	5d                   	pop    %ebp
415a23:	c2 04 00             	ret    $0x4
415a26:	8b c0                	mov    %eax,%eax
415a28:	55                   	push   %ebp
415a29:	8b ec                	mov    %esp,%ebp
415a2b:	53                   	push   %ebx
415a2c:	56                   	push   %esi
415a2d:	57                   	push   %edi
415a2e:	8b f9                	mov    %ecx,%edi
415a30:	8b f2                	mov    %edx,%esi
415a32:	8b d8                	mov    %eax,%ebx
415a34:	8b c3                	mov    %ebx,%eax
415a36:	8b 10                	mov    (%eax),%edx
415a38:	ff 92 84 00 00 00    	call   *0x84(%edx)
415a3e:	8b 43 14             	mov    0x14(%ebx),%eax
415a41:	3b 43 18             	cmp    0x18(%ebx),%eax
415a44:	75 07                	jne    0x415a4d
415a46:	8b c3                	mov    %ebx,%eax
415a48:	e8 07 ff ff ff       	call   0x415954
415a4d:	8b 43 14             	mov    0x14(%ebx),%eax
415a50:	3b f0                	cmp    %eax,%esi
415a52:	7d 1d                	jge    0x415a71
415a54:	8b 53 10             	mov    0x10(%ebx),%edx
415a57:	8d 54 f2 08          	lea    0x8(%edx,%esi,8),%edx
415a5b:	52                   	push   %edx
415a5c:	8b 53 10             	mov    0x10(%ebx),%edx
415a5f:	8d 14 f2             	lea    (%edx,%esi,8),%edx
415a62:	2b c6                	sub    %esi,%eax
415a64:	8b c8                	mov    %eax,%ecx
415a66:	c1 e1 03             	shl    $0x3,%ecx
415a69:	8b c2                	mov    %edx,%eax
415a6b:	5a                   	pop    %edx
415a6c:	e8 e7 d1 fe ff       	call   0x402c58
415a71:	8b 43 10             	mov    0x10(%ebx),%eax
415a74:	8d 04 f0             	lea    (%eax,%esi,8),%eax
415a77:	8b f0                	mov    %eax,%esi
415a79:	33 c0                	xor    %eax,%eax
415a7b:	89 06                	mov    %eax,(%esi)
415a7d:	8b 45 08             	mov    0x8(%ebp),%eax
415a80:	89 46 04             	mov    %eax,0x4(%esi)
415a83:	8b c6                	mov    %esi,%eax
415a85:	8b d7                	mov    %edi,%edx
415a87:	e8 38 eb fe ff       	call   0x4045c4
415a8c:	ff 43 14             	incl   0x14(%ebx)
415a8f:	8b c3                	mov    %ebx,%eax
415a91:	8b 10                	mov    (%eax),%edx
415a93:	ff 92 80 00 00 00    	call   *0x80(%edx)
415a99:	5f                   	pop    %edi
415a9a:	5e                   	pop    %esi
415a9b:	5b                   	pop    %ebx
415a9c:	5d                   	pop    %ebp
415a9d:	c2 04 00             	ret    $0x4
415aa0:	53                   	push   %ebx
415aa1:	56                   	push   %esi
415aa2:	57                   	push   %edi
415aa3:	8b f9                	mov    %ecx,%edi
415aa5:	8b f2                	mov    %edx,%esi
415aa7:	8b d8                	mov    %eax,%ebx
415aa9:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
415aad:	74 0f                	je     0x415abe
415aaf:	8b 15 28 0b 46 00    	mov    0x460b28,%edx
415ab5:	33 c9                	xor    %ecx,%ecx
415ab7:	8b c3                	mov    %ebx,%eax
415ab9:	e8 4e f1 ff ff       	call   0x414c0c
415abe:	85 f6                	test   %esi,%esi
415ac0:	7c 05                	jl     0x415ac7
415ac2:	3b 73 14             	cmp    0x14(%ebx),%esi
415ac5:	7c 0f                	jl     0x415ad6
415ac7:	8b 15 70 0c 46 00    	mov    0x460c70,%edx
415acd:	8b ce                	mov    %esi,%ecx
415acf:	8b c3                	mov    %ebx,%eax
415ad1:	e8 36 f1 ff ff       	call   0x414c0c
415ad6:	8b c3                	mov    %ebx,%eax
415ad8:	8b 10                	mov    (%eax),%edx
415ada:	ff 92 84 00 00 00    	call   *0x84(%edx)
415ae0:	8b 43 10             	mov    0x10(%ebx),%eax
415ae3:	8d 04 f0             	lea    (%eax,%esi,8),%eax
415ae6:	8b d7                	mov    %edi,%edx
415ae8:	e8 d7 ea fe ff       	call   0x4045c4
415aed:	8b c3                	mov    %ebx,%eax
415aef:	8b 10                	mov    (%eax),%edx
415af1:	ff 92 80 00 00 00    	call   *0x80(%edx)
415af7:	5f                   	pop    %edi
415af8:	5e                   	pop    %esi
415af9:	5b                   	pop    %ebx
415afa:	c3                   	ret
415afb:	90                   	nop
415afc:	53                   	push   %ebx
415afd:	56                   	push   %esi
415afe:	57                   	push   %edi
415aff:	8b f9                	mov    %ecx,%edi
415b01:	8b f2                	mov    %edx,%esi
415b03:	8b d8                	mov    %eax,%ebx
415b05:	85 f6                	test   %esi,%esi
415b07:	7c 05                	jl     0x415b0e
415b09:	3b 73 14             	cmp    0x14(%ebx),%esi
415b0c:	7c 0f                	jl     0x415b1d
415b0e:	8b 15 70 0c 46 00    	mov    0x460c70,%edx
415b14:	8b ce                	mov    %esi,%ecx
415b16:	8b c3                	mov    %ebx,%eax
415b18:	e8 ef f0 ff ff       	call   0x414c0c
415b1d:	8b c3                	mov    %ebx,%eax
415b1f:	8b 10                	mov    (%eax),%edx
415b21:	ff 92 84 00 00 00    	call   *0x84(%edx)
415b27:	8b 43 10             	mov    0x10(%ebx),%eax
415b2a:	89 7c f0 04          	mov    %edi,0x4(%eax,%esi,8)
415b2e:	8b c3                	mov    %ebx,%eax
415b30:	8b 10                	mov    (%eax),%edx
415b32:	ff 92 80 00 00 00    	call   *0x80(%edx)
415b38:	5f                   	pop    %edi
415b39:	5e                   	pop    %esi
415b3a:	5b                   	pop    %ebx
415b3b:	c3                   	ret
415b3c:	55                   	push   %ebp
415b3d:	8b ec                	mov    %esp,%ebp
415b3f:	83 c4 f0             	add    $0xfffffff0,%esp
415b42:	53                   	push   %ebx
415b43:	56                   	push   %esi
415b44:	89 4d f4             	mov    %ecx,-0xc(%ebp)
415b47:	89 55 f8             	mov    %edx,-0x8(%ebp)
415b4a:	89 45 fc             	mov    %eax,-0x4(%ebp)
415b4d:	8b 5d f8             	mov    -0x8(%ebp),%ebx
415b50:	8b 75 f4             	mov    -0xc(%ebp),%esi
415b53:	8b 45 f8             	mov    -0x8(%ebp),%eax
415b56:	03 45 f4             	add    -0xc(%ebp),%eax
415b59:	d1 e8                	shr    $1,%eax
415b5b:	89 45 f0             	mov    %eax,-0x10(%ebp)
415b5e:	eb 01                	jmp    0x415b61
415b60:	43                   	inc    %ebx
415b61:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415b64:	8b d3                	mov    %ebx,%edx
415b66:	8b 45 fc             	mov    -0x4(%ebp),%eax
415b69:	ff 55 08             	call   *0x8(%ebp)
415b6c:	85 c0                	test   %eax,%eax
415b6e:	7c f0                	jl     0x415b60
415b70:	eb 01                	jmp    0x415b73
415b72:	4e                   	dec    %esi
415b73:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415b76:	8b d6                	mov    %esi,%edx
415b78:	8b 45 fc             	mov    -0x4(%ebp),%eax
415b7b:	ff 55 08             	call   *0x8(%ebp)
415b7e:	85 c0                	test   %eax,%eax
415b80:	7f f0                	jg     0x415b72
415b82:	3b f3                	cmp    %ebx,%esi
415b84:	7c 20                	jl     0x415ba6
415b86:	8b ce                	mov    %esi,%ecx
415b88:	8b d3                	mov    %ebx,%edx
415b8a:	8b 45 fc             	mov    -0x4(%ebp),%eax
415b8d:	e8 92 fc ff ff       	call   0x415824
415b92:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
415b95:	75 05                	jne    0x415b9c
415b97:	89 75 f0             	mov    %esi,-0x10(%ebp)
415b9a:	eb 08                	jmp    0x415ba4
415b9c:	3b 75 f0             	cmp    -0x10(%ebp),%esi
415b9f:	75 03                	jne    0x415ba4
415ba1:	89 5d f0             	mov    %ebx,-0x10(%ebp)
415ba4:	43                   	inc    %ebx
415ba5:	4e                   	dec    %esi
415ba6:	3b f3                	cmp    %ebx,%esi
415ba8:	7d b7                	jge    0x415b61
415baa:	3b 75 f8             	cmp    -0x8(%ebp),%esi
415bad:	7e 11                	jle    0x415bc0
415baf:	8b 45 08             	mov    0x8(%ebp),%eax
415bb2:	50                   	push   %eax
415bb3:	8b ce                	mov    %esi,%ecx
415bb5:	8b 55 f8             	mov    -0x8(%ebp),%edx
415bb8:	8b 45 fc             	mov    -0x4(%ebp),%eax
415bbb:	e8 7c ff ff ff       	call   0x415b3c
415bc0:	89 5d f8             	mov    %ebx,-0x8(%ebp)
415bc3:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
415bc6:	7c 85                	jl     0x415b4d
415bc8:	5e                   	pop    %esi
415bc9:	5b                   	pop    %ebx
415bca:	8b e5                	mov    %ebp,%esp
415bcc:	5d                   	pop    %ebp
415bcd:	c2 04 00             	ret    $0x4
415bd0:	53                   	push   %ebx
415bd1:	56                   	push   %esi
415bd2:	8b f2                	mov    %edx,%esi
415bd4:	8b d8                	mov    %eax,%ebx
415bd6:	8b d6                	mov    %esi,%edx
415bd8:	c1 e2 03             	shl    $0x3,%edx
415bdb:	8d 43 10             	lea    0x10(%ebx),%eax
415bde:	e8 a5 ce fe ff       	call   0x402a88
415be3:	89 73 18             	mov    %esi,0x18(%ebx)
415be6:	5e                   	pop    %esi
415be7:	5b                   	pop    %ebx
415be8:	c3                   	ret
415be9:	8d 40 00             	lea    0x0(%eax),%eax
415bec:	53                   	push   %ebx
415bed:	56                   	push   %esi
415bee:	8b da                	mov    %edx,%ebx
415bf0:	8b f0                	mov    %eax,%esi
415bf2:	3a 5e 1c             	cmp    0x1c(%esi),%bl
415bf5:	74 11                	je     0x415c08
415bf7:	84 db                	test   %bl,%bl
415bf9:	74 0a                	je     0x415c05
415bfb:	8b c6                	mov    %esi,%eax
415bfd:	8b 10                	mov    (%eax),%edx
415bff:	ff 92 90 00 00 00    	call   *0x90(%edx)
415c05:	88 5e 1c             	mov    %bl,0x1c(%esi)
415c08:	5e                   	pop    %esi
415c09:	5b                   	pop    %ebx
415c0a:	c3                   	ret
415c0b:	90                   	nop
415c0c:	84 d2                	test   %dl,%dl
415c0e:	74 09                	je     0x415c19
415c10:	8b 10                	mov    (%eax),%edx
415c12:	ff 92 84 00 00 00    	call   *0x84(%edx)
415c18:	c3                   	ret
415c19:	8b 10                	mov    (%eax),%edx
415c1b:	ff 92 80 00 00 00    	call   *0x80(%edx)
415c21:	c3                   	ret
415c22:	8b c0                	mov    %eax,%eax
415c24:	53                   	push   %ebx
415c25:	56                   	push   %esi
415c26:	57                   	push   %edi
415c27:	8b fa                	mov    %edx,%edi
415c29:	8b f0                	mov    %eax,%esi
415c2b:	8b 46 10             	mov    0x10(%esi),%eax
415c2e:	8b 0c c8             	mov    (%eax,%ecx,8),%ecx
415c31:	8b 46 10             	mov    0x10(%esi),%eax
415c34:	8b 14 f8             	mov    (%eax,%edi,8),%edx
415c37:	8b c6                	mov    %esi,%eax
415c39:	8b 18                	mov    (%eax),%ebx
415c3b:	ff 53 34             	call   *0x34(%ebx)
415c3e:	5f                   	pop    %edi
415c3f:	5e                   	pop    %esi
415c40:	5b                   	pop    %ebx
415c41:	c3                   	ret
415c42:	8b c0                	mov    %eax,%eax
415c44:	ba 24 5c 41 00       	mov    $0x415c24,%edx
415c49:	8b 08                	mov    (%eax),%ecx
415c4b:	ff 91 94 00 00 00    	call   *0x94(%ecx)
415c51:	c3                   	ret
415c52:	8b c0                	mov    %eax,%eax
415c54:	53                   	push   %ebx
415c55:	56                   	push   %esi
415c56:	8b f2                	mov    %edx,%esi
415c58:	8b d8                	mov    %eax,%ebx
415c5a:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
415c5e:	75 28                	jne    0x415c88
415c60:	83 7b 14 01          	cmpl   $0x1,0x14(%ebx)
415c64:	7e 22                	jle    0x415c88
415c66:	8b c3                	mov    %ebx,%eax
415c68:	8b 10                	mov    (%eax),%edx
415c6a:	ff 92 84 00 00 00    	call   *0x84(%edx)
415c70:	56                   	push   %esi
415c71:	8b 4b 14             	mov    0x14(%ebx),%ecx
415c74:	49                   	dec    %ecx
415c75:	33 d2                	xor    %edx,%edx
415c77:	8b c3                	mov    %ebx,%eax
415c79:	e8 be fe ff ff       	call   0x415b3c
415c7e:	8b c3                	mov    %ebx,%eax
415c80:	8b 10                	mov    (%eax),%edx
415c82:	ff 92 80 00 00 00    	call   *0x80(%edx)
415c88:	5e                   	pop    %esi
415c89:	5b                   	pop    %ebx
415c8a:	c3                   	ret
415c8b:	90                   	nop
415c8c:	80 78 1e 00          	cmpb   $0x0,0x1e(%eax)
415c90:	74 0a                	je     0x415c9c
415c92:	8b c2                	mov    %edx,%eax
415c94:	8b d1                	mov    %ecx,%edx
415c96:	e8 f9 25 ff ff       	call   0x408294
415c9b:	c3                   	ret
415c9c:	8b c2                	mov    %edx,%eax
415c9e:	8b d1                	mov    %ecx,%edx
415ca0:	e8 27 26 ff ff       	call   0x4082cc
415ca5:	c3                   	ret
415ca6:	8b c0                	mov    %eax,%eax
415ca8:	83 c4 f8             	add    $0xfffffff8,%esp
415cab:	6a 00                	push   $0x0
415cad:	6a 00                	push   $0x0
415caf:	b2 01                	mov    $0x1,%dl
415cb1:	8b 08                	mov    (%eax),%ecx
415cb3:	ff 51 18             	call   *0x18(%ecx)