402b95:	33 db                	xor    %ebx,%ebx
402b97:	6a 03                	push   $0x3
402b99:	89 5c 24 6c          	mov    %ebx,0x6c(%esp)
402b9d:	89 5c 24 70          	mov    %ebx,0x70(%esp)
402ba1:	5a                   	pop    %edx
402ba2:	38 9f 2c 01 02 00    	cmp    %bl,0x2012c(%edi)
402ba8:	75 0d                	jne    0x402bb7
402baa:	8b 47 18             	mov    0x18(%edi),%eax
402bad:	89 54 24 64          	mov    %edx,0x64(%esp)
402bb1:	89 44 24 68          	mov    %eax,0x68(%esp)
402bb5:	eb 08                	jmp    0x402bbf
402bb7:	c7 44 24 64 02 00 00 	movl   $0x2,0x64(%esp)
402bbe:	00
402bbf:	8b 47 1c             	mov    0x1c(%edi),%eax
402bc2:	89 44 24 6c          	mov    %eax,0x6c(%esp)
402bc6:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402bcc:	85 c0                	test   %eax,%eax
402bce:	74 04                	je     0x402bd4
402bd0:	8b 08                	mov    (%eax),%ecx
402bd2:	eb 02                	jmp    0x402bd6
402bd4:	8b cb                	mov    %ebx,%ecx
402bd6:	33 c0                	xor    %eax,%eax
402bd8:	38 47 2c             	cmp    %al,0x2c(%edi)
402bdb:	6a 0c                	push   $0xc
402bdd:	0f 95 c0             	setne  %al
402be0:	03 c2                	add    %edx,%eax
402be2:	03 c1                	add    %ecx,%eax
402be4:	59                   	pop    %ecx
402be5:	f7 e1                	mul    %ecx
402be7:	0f 42 c5             	cmovb  %ebp,%eax
402bea:	50                   	push   %eax
402beb:	e8 d0 3d 00 00       	call   0x4069c0
402bf0:	8b f0                	mov    %eax,%esi
402bf2:	33 ed                	xor    %ebp,%ebp
402bf4:	8d 44 24 68          	lea    0x68(%esp),%eax
402bf8:	45                   	inc    %ebp
402bf9:	68 fe 00 00 00       	push   $0xfe
402bfe:	53                   	push   %ebx
402bff:	c7 06 01 00 67 47    	movl   $0x47670001,(%esi)
402c05:	c7 46 04 0c 00 00 00 	movl   $0xc,0x4(%esi)
402c0c:	89 46 08             	mov    %eax,0x8(%esi)
402c0f:	8b 47 24             	mov    0x24(%edi),%eax
402c12:	89 44 24 2c          	mov    %eax,0x2c(%esp)
402c16:	33 c0                	xor    %eax,%eax
402c18:	66 89 44 24 7c       	mov    %ax,0x7c(%esp)
402c1d:	8d 44 24 7e          	lea    0x7e(%esp),%eax
402c21:	50                   	push   %eax
402c22:	89 6c 24 28          	mov    %ebp,0x28(%esp)
402c26:	89 74 24 2c          	mov    %esi,0x2c(%esp)
402c2a:	e8 91 87 00 00       	call   0x40b3c0
402c2f:	68 08 02 00 00       	push   $0x208
402c34:	8d 84 24 84 01 00 00 	lea    0x184(%esp),%eax
402c3b:	53                   	push   %ebx
402c3c:	50                   	push   %eax
402c3d:	e8 7e 87 00 00       	call   0x40b3c0
402c42:	8b 44 24 3c          	mov    0x3c(%esp),%eax
402c46:	83 c4 1c             	add    $0x1c,%esp
402c49:	85 c0                	test   %eax,%eax
402c4b:	0f 84 83 00 00 00    	je     0x402cd4
402c51:	bd 08 03 00 00       	mov    $0x308,%ebp
402c56:	38 9f 2c 01 02 00    	cmp    %bl,0x2012c(%edi)
402c5c:	74 60                	je     0x402cbe
402c5e:	8d 4c 24 20          	lea    0x20(%esp),%ecx
402c62:	89 5c 24 20          	mov    %ebx,0x20(%esp)
402c66:	51                   	push   %ecx
402c67:	55                   	push   %ebp
402c68:	8d 4c 24 78          	lea    0x78(%esp),%ecx
402c6c:	51                   	push   %ecx
402c6d:	50                   	push   %eax
402c6e:	ff 77 10             	push   0x10(%edi)
402c71:	ff 15 2c 11 43 00    	call   *0x43112c
402c77:	85 c0                	test   %eax,%eax
402c79:	74 06                	je     0x402c81
402c7b:	39 6c 24 20          	cmp    %ebp,0x20(%esp)
402c7f:	74 39                	je     0x402cba
402c81:	8b 2d 20 10 43 00    	mov    0x431020,%ebp
402c87:	38 9f 50 01 02 00    	cmp    %bl,0x20150(%edi)
402c8d:	74 08                	je     0x402c97
402c8f:	ff b7 48 01 02 00    	push   0x20148(%edi)
402c95:	ff d5                	call   *%ebp
402c97:	38 9f 51 01 02 00    	cmp    %bl,0x20151(%edi)
402c9d:	0f 84 09 02 00 00    	je     0x402eac
402ca3:	8b 87 4c 01 02 00    	mov    0x2014c(%edi),%eax
402ca9:	83 f8 ff             	cmp    $0xffffffff,%eax
402cac:	0f 84 fa 01 00 00    	je     0x402eac
402cb2:	50                   	push   %eax
402cb3:	ff d5                	call   *%ebp
402cb5:	e9 f2 01 00 00       	jmp    0x402eac
402cba:	8d 44 24 70          	lea    0x70(%esp),%eax
402cbe:	c7 46 0c 02 00 67 47 	movl   $0x47670002,0xc(%esi)
402cc5:	89 6e 10             	mov    %ebp,0x10(%esi)
402cc8:	89 46 14             	mov    %eax,0x14(%esi)
402ccb:	8b 6c 24 18          	mov    0x18(%esp),%ebp
402ccf:	45                   	inc    %ebp
402cd0:	89 6c 24 18          	mov    %ebp,0x18(%esp)
402cd4:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402cda:	85 c0                	test   %eax,%eax
402cdc:	74 57                	je     0x402d35
402cde:	39 18                	cmp    %ebx,(%eax)
402ce0:	76 53                	jbe    0x402d35
402ce2:	8b d3                	mov    %ebx,%edx
402ce4:	8b 40 04             	mov    0x4(%eax),%eax
402ce7:	6b cd 0c             	imul   $0xc,%ebp,%ecx
402cea:	8b 04 02             	mov    (%edx,%eax,1),%eax
402ced:	8d 52 0c             	lea    0xc(%edx),%edx
402cf0:	89 04 31             	mov    %eax,(%ecx,%esi,1)
402cf3:	6b 4c 24 18 0c       	imul   $0xc,0x18(%esp),%ecx
402cf8:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402cfe:	8b 40 04             	mov    0x4(%eax),%eax
402d01:	8b 44 10 f8          	mov    -0x8(%eax,%edx,1),%eax
402d05:	89 44 31 04          	mov    %eax,0x4(%ecx,%esi,1)
402d09:	6b 4c 24 18 0c       	imul   $0xc,0x18(%esp),%ecx
402d0e:	43                   	inc    %ebx
402d0f:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402d15:	8b 40 04             	mov    0x4(%eax),%eax
402d18:	8b 44 10 fc          	mov    -0x4(%eax,%edx,1),%eax
402d1c:	89 44 31 08          	mov    %eax,0x8(%ecx,%esi,1)
402d20:	8b 6c 24 18          	mov    0x18(%esp),%ebp
402d24:	8b 87 54 01 02 00    	mov    0x20154(%edi),%eax
402d2a:	45                   	inc    %ebp
402d2b:	89 6c 24 18          	mov    %ebp,0x18(%esp)
402d2f:	3b 18                	cmp    (%eax),%ebx
402d31:	72 b1                	jb     0x402ce4
402d33:	33 db                	xor    %ebx,%ebx
402d35:	80 7f 2c 00          	cmpb   $0x0,0x2c(%edi)
402d39:	74 3d                	je     0x402d78
402d3b:	6b c5 0c             	imul   $0xc,%ebp,%eax
402d3e:	8d 4f 2c             	lea    0x2c(%edi),%ecx
402d41:	8d 51 01             	lea    0x1(%ecx),%edx
402d44:	c7 04 30 0a 00 00 00 	movl   $0xa,(%eax,%esi,1)
402d4b:	8a 01                	mov    (%ecx),%al
402d4d:	41                   	inc    %ecx
402d4e:	84 c0                	test   %al,%al
402d50:	75 f9                	jne    0x402d4b
402d52:	2b ca                	sub    %edx,%ecx
402d54:	b8 00 00 02 00       	mov    $0x20000,%eax
402d59:	3b c8                	cmp    %eax,%ecx
402d5b:	0f 47 c8             	cmova  %eax,%ecx
402d5e:	6b 44 24 18 0c       	imul   $0xc,0x18(%esp),%eax
402d63:	41                   	inc    %ecx
402d64:	89 4c 30 04          	mov    %ecx,0x4(%eax,%esi,1)
402d68:	8d 4f 2c             	lea    0x2c(%edi),%ecx
402d6b:	6b 44 24 18 0c       	imul   $0xc,0x18(%esp),%eax
402d70:	89 4c 30 08          	mov    %ecx,0x8(%eax,%esi,1)
402d74:	ff 44 24 18          	incl   0x18(%esp)
402d78:	53                   	push   %ebx
402d79:	53                   	push   %ebx
402d7a:	89 5c 24 40          	mov    %ebx,0x40(%esp)
402d7e:	89 5c 24 44          	mov    %ebx,0x44(%esp)
402d82:	89 5c 24 48          	mov    %ebx,0x48(%esp)
402d86:	89 5c 24 4c          	mov    %ebx,0x4c(%esp)
402d8a:	89 5c 24 54          	mov    %ebx,0x54(%esp)
402d8e:	e8 b3 08 00 00       	call   0x403646
402d93:	83 7f 20 00          	cmpl   $0x0,0x20(%edi)
402d97:	89 44 24 48          	mov    %eax,0x48(%esp)
402d9b:	89 5c 24 50          	mov    %ebx,0x50(%esp)
402d9f:	89 5c 24 54          	mov    %ebx,0x54(%esp)
402da3:	89 5c 24 58          	mov    %ebx,0x58(%esp)
402da7:	74 53                	je     0x402dfc
402da9:	f6 47 28 04          	testb  $0x4,0x28(%edi)
402dad:	75 4d                	jne    0x402dfc
402daf:	ff 77 20             	push   0x20(%edi)
402db2:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
402db6:	ff 77 10             	push   0x10(%edi)
402db9:	e8 69 fa ff ff       	call   0x402827
402dbe:	84 c0                	test   %al,%al
402dc0:	75 3a                	jne    0x402dfc
402dc2:	8b 2d 20 10 43 00    	mov    0x431020,%ebp
402dc8:	38 87 50 01 02 00    	cmp    %al,0x20150(%edi)
402dce:	74 08                	je     0x402dd8
402dd0:	ff b7 48 01 02 00    	push   0x20148(%edi)
402dd6:	ff d5                	call   *%ebp
402dd8:	80 bf 51 01 02 00 00 	cmpb   $0x0,0x20151(%edi)
402ddf:	0f 84 be 00 00 00    	je     0x402ea3
402de5:	8b 87 4c 01 02 00    	mov    0x2014c(%edi),%eax
402deb:	83 f8 ff             	cmp    $0xffffffff,%eax
402dee:	0f 84 af 00 00 00    	je     0x402ea3
402df4:	50                   	push   %eax
402df5:	ff d5                	call   *%ebp
402df7:	e9 a7 00 00 00       	jmp    0x402ea3
402dfc:	80 7c 24 28 00       	cmpb   $0x0,0x28(%esp)
402e01:	8b 6c 24 24          	mov    0x24(%esp),%ebp
402e05:	c6 44 24 17 01       	movb   $0x1,0x17(%esp)
402e0a:	74 2f                	je     0x402e3b
402e0c:	53                   	push   %ebx
402e0d:	8d 44 24 1c          	lea    0x1c(%esp),%eax
402e11:	33 c9                	xor    %ecx,%ecx
402e13:	39 5f 20             	cmp    %ebx,0x20(%edi)
402e16:	50                   	push   %eax
402e17:	8d 44 24 34          	lea    0x34(%esp),%eax
402e1b:	0f 44 c1             	cmove  %ecx,%eax
402e1e:	50                   	push   %eax
402e1f:	8b 47 28             	mov    0x28(%edi),%eax
402e22:	83 c8 04             	or     $0x4,%eax
402e25:	50                   	push   %eax
402e26:	ff b7 4c 01 02 00    	push   0x2014c(%edi)
402e2c:	ff 77 14             	push   0x14(%edi)
402e2f:	ff 77 10             	push   0x10(%edi)
402e32:	ff d5                	call   *%ebp
402e34:	85 c0                	test   %eax,%eax
402e36:	0f 95 44 24 17       	setne  0x17(%esp)
402e3b:	6b 4c 24 18 0c       	imul   $0xc,0x18(%esp),%ecx
402e40:	8b 44 24 50          	mov    0x50(%esp),%eax
402e44:	3b 44 24 54          	cmp    0x54(%esp),%eax
402e48:	74 1f                	je     0x402e69
402e4a:	c7 04 31 12 00 00 00 	movl   $0x12,(%ecx,%esi,1)
402e51:	8b 44 24 54          	mov    0x54(%esp),%eax
402e55:	2b 44 24 50          	sub    0x50(%esp),%eax
402e59:	89 44 31 04          	mov    %eax,0x4(%ecx,%esi,1)
402e5d:	8b 44 24 50          	mov    0x50(%esp),%eax
402e61:	89 44 31 08          	mov    %eax,0x8(%ecx,%esi,1)
402e65:	ff 44 24 18          	incl   0x18(%esp)
402e69:	ff b7 58 01 02 00    	push   0x20158(%edi)
402e6f:	8d 44 24 1c          	lea    0x1c(%esp),%eax
402e73:	33 c9                	xor    %ecx,%ecx
402e75:	39 5f 20             	cmp    %ebx,0x20(%edi)
402e78:	50                   	push   %eax
402e79:	8d 44 24 34          	lea    0x34(%esp),%eax
402e7d:	0f 44 c1             	cmove  %ecx,%eax
402e80:	50                   	push   %eax
402e81:	8b 47 28             	mov    0x28(%edi),%eax
402e84:	83 e0 fd             	and    $0xfffffffd,%eax
402e87:	50                   	push   %eax
402e88:	ff b7 48 01 02 00    	push   0x20148(%edi)
402e8e:	ff 77 14             	push   0x14(%edi)
402e91:	ff 77 10             	push   0x10(%edi)
402e94:	ff d5                	call   *%ebp
402e96:	85 c0                	test   %eax,%eax
402e98:	74 09                	je     0x402ea3
402e9a:	80 7c 24 17 00       	cmpb   $0x0,0x17(%esp)
402e9f:	74 02                	je     0x402ea3
402ea1:	b3 01                	mov    $0x1,%bl
402ea3:	8d 4c 24 38          	lea    0x38(%esp),%ecx
402ea7:	e8 5a f9 ff ff       	call   0x402806
402eac:	56                   	push   %esi
402ead:	e8 3e 3b 00 00       	call   0x4069f0
402eb2:	59                   	pop    %ecx
402eb3:	8a c3                	mov    %bl,%al
402eb5:	eb 02                	jmp    0x402eb9
402eb7:	32 c0                	xor    %al,%al
402eb9:	8b 8c 24 7c 03 00 00 	mov    0x37c(%esp),%ecx
402ec0:	5f                   	pop    %edi
402ec1:	5e                   	pop    %esi
402ec2:	5d                   	pop    %ebp
402ec3:	5b                   	pop    %ebx
402ec4:	33 cc                	xor    %esp,%ecx
402ec6:	e8 dc 6d 00 00       	call   0x409ca7
402ecb:	81 c4 74 03 00 00    	add    $0x374,%esp
402ed1:	c3                   	ret
402ed2:	55                   	push   %ebp
402ed3:	8b ec                	mov    %esp,%ebp
402ed5:	83 ec 20             	sub    $0x20,%esp
402ed8:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
402edd:	33 c5                	xor    %ebp,%eax
402edf:	89 45 f8             	mov    %eax,-0x8(%ebp)
402ee2:	53                   	push   %ebx
402ee3:	56                   	push   %esi
402ee4:	8b f1                	mov    %ecx,%esi
402ee6:	57                   	push   %edi
402ee7:	8b 7d 08             	mov    0x8(%ebp),%edi
402eea:	83 be 48 01 02 00 ff 	cmpl   $0xffffffff,0x20148(%esi)
402ef1:	74 07                	je     0x402efa
402ef3:	32 c0                	xor    %al,%al
402ef5:	e9 82 00 00 00       	jmp    0x402f7c
402efa:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
402efe:	33 c0                	xor    %eax,%eax
402f00:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
402f04:	8d 45 e0             	lea    -0x20(%ebp),%eax
402f07:	50                   	push   %eax
402f08:	c7 45 f4 07 00 00 00 	movl   $0x7,-0xc(%ebp)
402f0f:	e8 6b 02 00 00       	call   0x40317f
402f14:	84 c0                	test   %al,%al
402f16:	74 4c                	je     0x402f64
402f18:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
402f1c:	8d 45 e0             	lea    -0x20(%ebp),%eax
402f1f:	6a 00                	push   $0x0
402f21:	0f 43 45 e0          	cmovae -0x20(%ebp),%eax
402f25:	33 db                	xor    %ebx,%ebx
402f27:	68 80 00 00 00       	push   $0x80
402f2c:	43                   	inc    %ebx
402f2d:	53                   	push   %ebx
402f2e:	6a 00                	push   $0x0
402f30:	6a 00                	push   $0x0
402f32:	68 00 00 00 40       	push   $0x40000000
402f37:	50                   	push   %eax
402f38:	ff 15 38 11 43 00    	call   *0x431138
402f3e:	89 86 48 01 02 00    	mov    %eax,0x20148(%esi)
402f44:	83 f8 ff             	cmp    $0xffffffff,%eax
402f47:	74 1b                	je     0x402f64
402f49:	8d 45 e0             	lea    -0x20(%ebp),%eax
402f4c:	88 9e 50 01 02 00    	mov    %bl,0x20150(%esi)
402f52:	3b f8                	cmp    %eax,%edi
402f54:	74 10                	je     0x402f66
402f56:	6a ff                	push   $0xffffffff
402f58:	6a 00                	push   $0x0
402f5a:	50                   	push   %eax
402f5b:	8b cf                	mov    %edi,%ecx
402f5d:	e8 ae f1 ff ff       	call   0x402110
402f62:	eb 02                	jmp    0x402f66
402f64:	32 db                	xor    %bl,%bl
402f66:	8b 55 f4             	mov    -0xc(%ebp),%edx
402f69:	83 fa 08             	cmp    $0x8,%edx
402f6c:	72 0c                	jb     0x402f7a
402f6e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
402f71:	42                   	inc    %edx
402f72:	6a 02                	push   $0x2
402f74:	e8 65 e2 ff ff       	call   0x4011de
402f79:	59                   	pop    %ecx
402f7a:	8a c3                	mov    %bl,%al
402f7c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402f7f:	5f                   	pop    %edi
402f80:	5e                   	pop    %esi
402f81:	33 cd                	xor    %ebp,%ecx
402f83:	5b                   	pop    %ebx
402f84:	e8 1e 6d 00 00       	call   0x409ca7
402f89:	c9                   	leave
402f8a:	c2 04 00             	ret    $0x4
402f8d:	83 ec 20             	sub    $0x20,%esp
402f90:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
402f95:	33 c4                	xor    %esp,%eax
402f97:	89 44 24 1c          	mov    %eax,0x1c(%esp)
402f9b:	53                   	push   %ebx
402f9c:	55                   	push   %ebp
402f9d:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
402fa1:	8b d9                	mov    %ecx,%ebx
402fa3:	56                   	push   %esi
402fa4:	57                   	push   %edi
402fa5:	f6 43 28 02          	testb  $0x2,0x28(%ebx)
402fa9:	0f 84 48 01 00 00    	je     0x4030f7
402faf:	83 bb 4c 01 02 00 ff 	cmpl   $0xffffffff,0x2014c(%ebx)
402fb6:	0f 85 3b 01 00 00    	jne    0x4030f7
402fbc:	83 64 24 24 00       	andl   $0x0,0x24(%esp)
402fc1:	33 c0                	xor    %eax,%eax
402fc3:	66 89 44 24 14       	mov    %ax,0x14(%esp)
402fc8:	8d 44 24 14          	lea    0x14(%esp),%eax
402fcc:	50                   	push   %eax
402fcd:	c7 44 24 2c 07 00 00 	movl   $0x7,0x2c(%esp)
402fd4:	00
402fd5:	e8 a5 01 00 00       	call   0x40317f
402fda:	84 c0                	test   %al,%al
402fdc:	0f 84 f9 00 00 00    	je     0x4030db
402fe2:	8b 44 24 24          	mov    0x24(%esp),%eax
402fe6:	8d 4c 24 14          	lea    0x14(%esp),%ecx
402fea:	6a 00                	push   $0x0
402fec:	83 c0 fc             	add    $0xfffffffc,%eax
402fef:	50                   	push   %eax
402ff0:	e8 46 04 00 00       	call   0x40343b
402ff5:	be e8 93 43 00       	mov    $0x4393e8,%esi
402ffa:	8d 4c 24 14          	lea    0x14(%esp),%ecx
402ffe:	56                   	push   %esi