406ac2:	c2 04 00             	ret    $0x4
406ac5:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
406aca:	74 08                	je     0x406ad4
406acc:	83 c1 0c             	add    $0xc,%ecx
406acf:	e9 ad a6 ff ff       	jmp    0x401181
406ad4:	e8 72 e9 02 00       	call   0x43544b
406ad9:	cc                   	int3
406ada:	e9 c1 17 01 00       	jmp    0x4182a0
406adf:	8b c1                	mov    %ecx,%eax
406ae1:	33 c9                	xor    %ecx,%ecx
406ae3:	89 08                	mov    %ecx,(%eax)
406ae5:	c7 40 0c 02 00 00 00 	movl   $0x2,0xc(%eax)
406aec:	89 48 04             	mov    %ecx,0x4(%eax)
406aef:	89 48 08             	mov    %ecx,0x8(%eax)
406af2:	66 89 48 10          	mov    %cx,0x10(%eax)
406af6:	66 89 48 12          	mov    %cx,0x12(%eax)
406afa:	c3                   	ret
406afb:	8b 44 24 04          	mov    0x4(%esp),%eax
406aff:	89 01                	mov    %eax,(%ecx)
406b01:	c2 04 00             	ret    $0x4
406b04:	33 c0                	xor    %eax,%eax
406b06:	50                   	push   %eax
406b07:	50                   	push   %eax
406b08:	6a ff                	push   $0xffffffff
406b0a:	ff 74 24 10          	push   0x10(%esp)
406b0e:	50                   	push   %eax
406b0f:	ff 15 fc 70 4a 00    	call   *0x4a70fc
406b15:	50                   	push   %eax
406b16:	ff 15 a4 03 4b 00    	call   *0x4b03a4
406b1c:	48                   	dec    %eax
406b1d:	c3                   	ret
406b1e:	ff 74 24 08          	push   0x8(%esp)
406b22:	ff 74 24 08          	push   0x8(%esp)
406b26:	ff 74 24 18          	push   0x18(%esp)
406b2a:	ff 74 24 18          	push   0x18(%esp)
406b2e:	6a 00                	push   $0x0
406b30:	ff 15 fc 70 4a 00    	call   *0x4a70fc
406b36:	50                   	push   %eax
406b37:	ff 15 a4 03 4b 00    	call   *0x4b03a4
406b3d:	c3                   	ret
406b3e:	8b 41 18             	mov    0x18(%ecx),%eax
406b41:	f7 d0                	not    %eax
406b43:	83 e0 01             	and    $0x1,%eax
406b46:	c3                   	ret
406b47:	ff 31                	push   (%ecx)
406b49:	ff 15 08 05 4b 00    	call   *0x4b0508
406b4f:	c3                   	ret
406b50:	8b 01                	mov    (%ecx),%eax
406b52:	85 c0                	test   %eax,%eax
406b54:	75 01                	jne    0x406b57
406b56:	c3                   	ret
406b57:	50                   	push   %eax
406b58:	ff 15 04 05 4b 00    	call   *0x4b0504
406b5e:	c3                   	ret
406b5f:	56                   	push   %esi
406b60:	8b f1                	mov    %ecx,%esi
406b62:	8b 06                	mov    (%esi),%eax
406b64:	85 c0                	test   %eax,%eax
406b66:	75 02                	jne    0x406b6a
406b68:	5e                   	pop    %esi
406b69:	c3                   	ret
406b6a:	50                   	push   %eax
406b6b:	ff 15 fc 04 4b 00    	call   *0x4b04fc
406b71:	50                   	push   %eax
406b72:	ff 36                	push   (%esi)
406b74:	ff 15 00 05 4b 00    	call   *0x4b0500
406b7a:	5e                   	pop    %esi
406b7b:	c3                   	ret
406b7c:	33 c0                	xor    %eax,%eax
406b7e:	39 01                	cmp    %eax,(%ecx)
406b80:	0f 94 c0             	sete   %al
406b83:	c3                   	ret
406b84:	8b 01                	mov    (%ecx),%eax
406b86:	c3                   	ret
406b87:	33 c0                	xor    %eax,%eax
406b89:	50                   	push   %eax
406b8a:	50                   	push   %eax
406b8b:	50                   	push   %eax
406b8c:	50                   	push   %eax
406b8d:	6a ff                	push   $0xffffffff
406b8f:	ff 74 24 18          	push   0x18(%esp)
406b93:	50                   	push   %eax
406b94:	ff 15 fc 70 4a 00    	call   *0x4a70fc
406b9a:	50                   	push   %eax
406b9b:	ff 15 a0 03 4b 00    	call   *0x4b03a0
406ba1:	48                   	dec    %eax
406ba2:	c3                   	ret
406ba3:	ff 31                	push   (%ecx)
406ba5:	e8 f4 f7 00 00       	call   0x41639e
406baa:	59                   	pop    %ecx
406bab:	c3                   	ret
406bac:	56                   	push   %esi
406bad:	ff 74 24 08          	push   0x8(%esp)
406bb1:	8b f1                	mov    %ecx,%esi
406bb3:	e8 d4 f7 00 00       	call   0x41638c
406bb8:	85 c0                	test   %eax,%eax
406bba:	59                   	pop    %ecx
406bbb:	75 0a                	jne    0x406bc7
406bbd:	68 0e 00 07 80       	push   $0x8007000e
406bc2:	e8 23 a6 ff ff       	call   0x4011ea
406bc7:	89 06                	mov    %eax,(%esi)
406bc9:	5e                   	pop    %esi
406bca:	c2 04 00             	ret    $0x4
406bcd:	56                   	push   %esi
406bce:	57                   	push   %edi
406bcf:	8b 7c 24 0c          	mov    0xc(%esp),%edi
406bd3:	8b f1                	mov    %ecx,%esi
406bd5:	8b cf                	mov    %edi,%ecx
406bd7:	e8 83 ff ff ff       	call   0x406b5f
406bdc:	89 06                	mov    %eax,(%esi)
406bde:	83 3f 00             	cmpl   $0x0,(%edi)
406be1:	74 0e                	je     0x406bf1
406be3:	85 c0                	test   %eax,%eax
406be5:	75 0a                	jne    0x406bf1
406be7:	68 0e 00 07 80       	push   $0x8007000e
406bec:	e8 f9 a5 ff ff       	call   0x4011ea
406bf1:	5f                   	pop    %edi
406bf2:	8b c6                	mov    %esi,%eax
406bf4:	5e                   	pop    %esi
406bf5:	c2 04 00             	ret    $0x4
406bf8:	8d 41 04             	lea    0x4(%ecx),%eax
406bfb:	39 01                	cmp    %eax,(%ecx)
406bfd:	74 05                	je     0x406c04
406bff:	e9 9f ff ff ff       	jmp    0x406ba3
406c04:	c3                   	ret
406c05:	81 7c 24 04 80 00 00 	cmpl   $0x80,0x4(%esp)
406c0c:	00
406c0d:	56                   	push   %esi
406c0e:	8b f1                	mov    %ecx,%esi
406c10:	76 0b                	jbe    0x406c1d
406c12:	ff 74 24 08          	push   0x8(%esp)
406c16:	e8 91 ff ff ff       	call   0x406bac
406c1b:	eb 05                	jmp    0x406c22
406c1d:	8d 46 04             	lea    0x4(%esi),%eax
406c20:	89 06                	mov    %eax,(%esi)
406c22:	8b 06                	mov    (%esi),%eax
406c24:	5e                   	pop    %esi
406c25:	c2 04 00             	ret    $0x4
406c28:	8b 44 24 04          	mov    0x4(%esp),%eax
406c2c:	03 c0                	add    %eax,%eax
406c2e:	50                   	push   %eax
406c2f:	e8 d1 ff ff ff       	call   0x406c05
406c34:	c2 04 00             	ret    $0x4
406c37:	53                   	push   %ebx
406c38:	8b 5c 24 08          	mov    0x8(%esp),%ebx
406c3c:	85 db                	test   %ebx,%ebx
406c3e:	56                   	push   %esi
406c3f:	57                   	push   %edi
406c40:	8b f9                	mov    %ecx,%edi
406c42:	74 0b                	je     0x406c4f
406c44:	53                   	push   %ebx
406c45:	e8 3d ff ff ff       	call   0x406b87
406c4a:	59                   	pop    %ecx
406c4b:	8b f0                	mov    %eax,%esi
406c4d:	eb 02                	jmp    0x406c51
406c4f:	33 f6                	xor    %esi,%esi
406c51:	85 f6                	test   %esi,%esi
406c53:	8b cf                	mov    %edi,%ecx
406c55:	7e 1d                	jle    0x406c74
406c57:	56                   	push   %esi
406c58:	e8 33 a5 ff ff       	call   0x401190
406c5d:	6a ff                	push   $0xffffffff
406c5f:	53                   	push   %ebx
406c60:	56                   	push   %esi
406c61:	50                   	push   %eax
406c62:	e8 28 f8 ff ff       	call   0x40648f
406c67:	83 c4 10             	add    $0x10,%esp
406c6a:	56                   	push   %esi
406c6b:	8b cf                	mov    %edi,%ecx
406c6d:	e8 23 a5 ff ff       	call   0x401195
406c72:	eb 05                	jmp    0x406c79
406c74:	e8 f9 a4 ff ff       	call   0x401172
406c79:	8b c7                	mov    %edi,%eax
406c7b:	5f                   	pop    %edi
406c7c:	5e                   	pop    %esi
406c7d:	5b                   	pop    %ebx
406c7e:	c2 04 00             	ret    $0x4
406c81:	6a 00                	push   $0x0
406c83:	6a 00                	push   $0x0
406c85:	ff 74 24 10          	push   0x10(%esp)
406c89:	ff 74 24 10          	push   0x10(%esp)
406c8d:	ff 15 08 03 4b 00    	call   *0x4b0308
406c93:	c3                   	ret
406c94:	56                   	push   %esi
406c95:	6a 18                	push   $0x18
406c97:	8b f1                	mov    %ecx,%esi
406c99:	6a 00                	push   $0x0
406c9b:	56                   	push   %esi
406c9c:	e8 9f 15 01 00       	call   0x418240
406ca1:	83 c4 0c             	add    $0xc,%esp
406ca4:	8b c6                	mov    %esi,%eax
406ca6:	5e                   	pop    %esi
406ca7:	c3                   	ret
406ca8:	6a 0c                	push   $0xc
406caa:	68 28 a4 48 00       	push   $0x48a428
406caf:	e8 34 15 01 00       	call   0x4181e8
406cb4:	33 f6                	xor    %esi,%esi
406cb6:	89 75 fc             	mov    %esi,-0x4(%ebp)
406cb9:	51                   	push   %ecx
406cba:	ff 15 18 03 4b 00    	call   *0x4b0318
406cc0:	eb 2a                	jmp    0x406cec
406cc2:	8b 45 ec             	mov    -0x14(%ebp),%eax
406cc5:	8b 00                	mov    (%eax),%eax
406cc7:	8b 00                	mov    (%eax),%eax
406cc9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406ccc:	33 c0                	xor    %eax,%eax
406cce:	40                   	inc    %eax
406ccf:	c3                   	ret
406cd0:	8b 65 e8             	mov    -0x18(%ebp),%esp
406cd3:	33 c0                	xor    %eax,%eax
406cd5:	81 7d e4 17 00 00 c0 	cmpl   $0xc0000017,-0x1c(%ebp)
406cdc:	0f 95 c0             	setne  %al
406cdf:	48                   	dec    %eax
406ce0:	25 09 c0 06 00       	and    $0x6c009,%eax
406ce5:	05 05 40 00 80       	add    $0x80004005,%eax
406cea:	8b f0                	mov    %eax,%esi
406cec:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406cf0:	8b c6                	mov    %esi,%eax
406cf2:	e8 2c 15 01 00       	call   0x418223
406cf7:	c3                   	ret
406cf8:	51                   	push   %ecx
406cf9:	ff 15 14 03 4b 00    	call   *0x4b0314
406cff:	33 c0                	xor    %eax,%eax
406d01:	c3                   	ret
406d02:	8b 41 04             	mov    0x4(%ecx),%eax
406d05:	c3                   	ret
406d06:	55                   	push   %ebp
406d07:	8b ec                	mov    %esp,%ebp
406d09:	53                   	push   %ebx
406d0a:	56                   	push   %esi
406d0b:	57                   	push   %edi
406d0c:	ff 15 fc 70 4a 00    	call   *0x4a70fc
406d12:	8b 35 90 03 4b 00    	mov    0x4b0390,%esi
406d18:	33 ff                	xor    %edi,%edi
406d1a:	39 7d 0c             	cmp    %edi,0xc(%ebp)
406d1d:	8b d8                	mov    %eax,%ebx
406d1f:	74 25                	je     0x406d46
406d21:	ff 75 0c             	push   0xc(%ebp)
406d24:	ff d6                	call   *%esi
406d26:	8d 7c 00 02          	lea    0x2(%eax,%eax,1),%edi
406d2a:	8b c7                	mov    %edi,%eax
406d2c:	83 c0 03             	add    $0x3,%eax
406d2f:	83 e0 fc             	and    $0xfffffffc,%eax
406d32:	e8 b9 f9 00 00       	call   0x4166f0
406d37:	8b c4                	mov    %esp,%eax
406d39:	53                   	push   %ebx
406d3a:	57                   	push   %edi
406d3b:	ff 75 0c             	push   0xc(%ebp)
406d3e:	50                   	push   %eax
406d3f:	e8 ab f6 ff ff       	call   0x4063ef
406d44:	8b f8                	mov    %eax,%edi
406d46:	33 c0                	xor    %eax,%eax
406d48:	39 45 08             	cmp    %eax,0x8(%ebp)
406d4b:	74 23                	je     0x406d70
406d4d:	ff 75 08             	push   0x8(%ebp)
406d50:	ff d6                	call   *%esi
406d52:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
406d56:	8b c6                	mov    %esi,%eax
406d58:	83 c0 03             	add    $0x3,%eax
406d5b:	83 e0 fc             	and    $0xfffffffc,%eax
406d5e:	e8 8d f9 00 00       	call   0x4166f0
406d63:	8b c4                	mov    %esp,%eax
406d65:	53                   	push   %ebx
406d66:	56                   	push   %esi
406d67:	ff 75 08             	push   0x8(%ebp)
406d6a:	50                   	push   %eax
406d6b:	e8 7f f6 ff ff       	call   0x4063ef
406d70:	57                   	push   %edi
406d71:	50                   	push   %eax
406d72:	ff 15 94 03 4b 00    	call   *0x4b0394
406d78:	8d 65 f4             	lea    -0xc(%ebp),%esp
406d7b:	5f                   	pop    %edi
406d7c:	5e                   	pop    %esi
406d7d:	5b                   	pop    %ebx
406d7e:	5d                   	pop    %ebp
406d7f:	c2 08 00             	ret    $0x8
406d82:	ff 35 8c 03 4b 00    	push   0x4b038c
406d88:	68 06 6d 40 00       	push   $0x406d06
406d8d:	68 e8 70 4a 00       	push   $0x4a70e8
406d92:	e8 3f a4 ff ff       	call   0x4011d6
406d97:	83 c4 0c             	add    $0xc,%esp
406d9a:	ff 25 e8 70 4a 00    	jmp    *0x4a70e8
406da0:	55                   	push   %ebp
406da1:	8b ec                	mov    %esp,%ebp
406da3:	53                   	push   %ebx
406da4:	56                   	push   %esi
406da5:	57                   	push   %edi
406da6:	ff 15 fc 70 4a 00    	call   *0x4a70fc
406dac:	33 ff                	xor    %edi,%edi
406dae:	39 7d 08             	cmp    %edi,0x8(%ebp)
406db1:	8b d8                	mov    %eax,%ebx
406db3:	74 29                	je     0x406dde
406db5:	ff 75 08             	push   0x8(%ebp)
406db8:	ff 15 90 03 4b 00    	call   *0x4b0390
406dbe:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
406dc2:	8b c6                	mov    %esi,%eax
406dc4:	83 c0 03             	add    $0x3,%eax
406dc7:	83 e0 fc             	and    $0xfffffffc,%eax
406dca:	e8 21 f9 00 00       	call   0x4166f0
406dcf:	8b c4                	mov    %esp,%eax
406dd1:	53                   	push   %ebx
406dd2:	56                   	push   %esi
406dd3:	ff 75 08             	push   0x8(%ebp)
406dd6:	50                   	push   %eax
406dd7:	e8 13 f6 ff ff       	call   0x4063ef
406ddc:	8b f8                	mov    %eax,%edi
406dde:	57                   	push   %edi
406ddf:	ff 15 b4 08 4b 00    	call   *0x4b08b4
406de5:	85 ff                	test   %edi,%edi
406de7:	75 04                	jne    0x406ded
406de9:	33 c0                	xor    %eax,%eax
406deb:	eb 23                	jmp    0x406e10
406ded:	57                   	push   %edi
406dee:	ff 15 88 03 4b 00    	call   *0x4b0388
406df4:	8b f0                	mov    %eax,%esi
406df6:	46                   	inc    %esi
406df7:	8d 04 36             	lea    (%esi,%esi,1),%eax
406dfa:	83 c0 03             	add    $0x3,%eax
406dfd:	83 e0 fc             	and    $0xfffffffc,%eax
406e00:	e8 eb f8 00 00       	call   0x4166f0
406e05:	8b c4                	mov    %esp,%eax
406e07:	53                   	push   %ebx
406e08:	56                   	push   %esi
406e09:	57                   	push   %edi
406e0a:	50                   	push   %eax
406e0b:	e8 a8 f5 ff ff       	call   0x4063b8
406e10:	50                   	push   %eax
406e11:	ff 75 08             	push   0x8(%ebp)
406e14:	e8 3e f9 00 00       	call   0x416757
406e19:	8b 45 08             	mov    0x8(%ebp),%eax
406e1c:	59                   	pop    %ecx
406e1d:	59                   	pop    %ecx
406e1e:	8d 65 f4             	lea    -0xc(%ebp),%esp
406e21:	5f                   	pop    %edi
406e22:	5e                   	pop    %esi
406e23:	5b                   	pop    %ebx
406e24:	5d                   	pop    %ebp
406e25:	c2 04 00             	ret    $0x4
406e28:	ff 35 b0 08 4b 00    	push   0x4b08b0
406e2e:	68 a0 6d 40 00       	push   $0x406da0
406e33:	68 ec 70 4a 00       	push   $0x4a70ec
406e38:	e8 99 a3 ff ff       	call   0x4011d6
406e3d:	83 c4 0c             	add    $0xc,%esp
406e40:	ff 25 ec 70 4a 00    	jmp    *0x4a70ec
406e46:	55                   	push   %ebp
406e47:	8b ec                	mov    %esp,%ebp
406e49:	53                   	push   %ebx
406e4a:	56                   	push   %esi
406e4b:	57                   	push   %edi
406e4c:	ff 15 fc 70 4a 00    	call   *0x4a70fc