402c60:	c1 e0 0b             	shl    $0xb,%eax
402c63:	05 d8 a5 40 00       	add    $0x40a5d8,%eax
402c68:	50                   	push   %eax
402c69:	e8 9c 37 00 00       	call   0x40640a
402c6e:	85 f6                	test   %esi,%esi
402c70:	8b f8                	mov    %eax,%edi
402c72:	7d 06                	jge    0x402c7a
402c74:	57                   	push   %edi
402c75:	e8 02 3a 00 00       	call   0x40667c
402c7a:	8b c7                	mov    %edi,%eax
402c7c:	5f                   	pop    %edi
402c7d:	5e                   	pop    %esi
402c7e:	c2 04 00             	ret    $0x4
402c81:	55                   	push   %ebp
402c82:	8b ec                	mov    %esp,%ebp
402c84:	8d 45 08             	lea    0x8(%ebp),%eax
402c87:	50                   	push   %eax
402c88:	8b 45 08             	mov    0x8(%ebp),%eax
402c8b:	0d 20 00 10 00       	or     $0x100020,%eax
402c90:	50                   	push   %eax
402c91:	6a 22                	push   $0x22
402c93:	e8 a9 ff ff ff       	call   0x402c41
402c98:	50                   	push   %eax
402c99:	a1 34 ce 40 00       	mov    0x40ce34,%eax
402c9e:	ff 70 04             	push   0x4(%eax)
402ca1:	e8 13 00 00 00       	call   0x402cb9
402ca6:	50                   	push   %eax
402ca7:	e8 a9 35 00 00       	call   0x406255
402cac:	f7 d8                	neg    %eax
402cae:	1b c0                	sbb    %eax,%eax
402cb0:	f7 d0                	not    %eax
402cb2:	23 45 08             	and    0x8(%ebp),%eax
402cb5:	5d                   	pop    %ebp
402cb6:	c2 04 00             	ret    $0x4
402cb9:	8b 44 24 04          	mov    0x4(%esp),%eax
402cbd:	85 c0                	test   %eax,%eax
402cbf:	7c 0d                	jl     0x402cce
402cc1:	8b 0d e4 a2 42 00    	mov    0x42a2e4,%ecx
402cc7:	8d 84 01 01 00 00 80 	lea    -0x7fffffff(%ecx,%eax,1),%eax
402cce:	c2 04 00             	ret    $0x4
402cd1:	55                   	push   %ebp
402cd2:	8b ec                	mov    %esp,%ebp
402cd4:	8d 45 10             	lea    0x10(%ebp),%eax
402cd7:	50                   	push   %eax
402cd8:	8b 45 10             	mov    0x10(%ebp),%eax
402cdb:	0d 20 00 10 00       	or     $0x100020,%eax
402ce0:	50                   	push   %eax
402ce1:	ff 75 0c             	push   0xc(%ebp)
402ce4:	ff 75 08             	push   0x8(%ebp)
402ce7:	e8 cd ff ff ff       	call   0x402cb9
402cec:	50                   	push   %eax
402ced:	e8 91 35 00 00       	call   0x406283
402cf2:	f7 d8                	neg    %eax
402cf4:	1b c0                	sbb    %eax,%eax
402cf6:	f7 d0                	not    %eax
402cf8:	23 45 10             	and    0x10(%ebp),%eax
402cfb:	5d                   	pop    %ebp
402cfc:	c2 0c 00             	ret    $0xc
402cff:	55                   	push   %ebp
402d00:	8b ec                	mov    %esp,%ebp
402d02:	56                   	push   %esi
402d03:	8b 75 0c             	mov    0xc(%ebp),%esi
402d06:	66 83 3e 00          	cmpw   $0x0,(%esi)
402d0a:	75 07                	jne    0x402d13
402d0c:	b8 eb 03 00 00       	mov    $0x3eb,%eax
402d11:	eb 2c                	jmp    0x402d3f
402d13:	81 4d 10 20 00 10 00 	orl    $0x100020,0x10(%ebp)
402d1a:	8d 45 10             	lea    0x10(%ebp),%eax
402d1d:	50                   	push   %eax
402d1e:	ff 75 08             	push   0x8(%ebp)
402d21:	e8 93 ff ff ff       	call   0x402cb9
402d26:	50                   	push   %eax
402d27:	e8 ae 34 00 00       	call   0x4061da
402d2c:	85 c0                	test   %eax,%eax
402d2e:	74 0c                	je     0x402d3c
402d30:	ff 75 10             	push   0x10(%ebp)
402d33:	56                   	push   %esi
402d34:	50                   	push   %eax
402d35:	e8 0a 00 00 00       	call   0x402d44
402d3a:	eb 03                	jmp    0x402d3f
402d3c:	6a 06                	push   $0x6
402d3e:	58                   	pop    %eax
402d3f:	5e                   	pop    %esi
402d40:	5d                   	pop    %ebp
402d41:	c2 0c 00             	ret    $0xc
402d44:	55                   	push   %ebp
402d45:	8b ec                	mov    %esp,%ebp
402d47:	81 ec 10 02 00 00    	sub    $0x210,%esp
402d4d:	53                   	push   %ebx
402d4e:	56                   	push   %esi
402d4f:	8b 75 10             	mov    0x10(%ebp),%esi
402d52:	57                   	push   %edi
402d53:	8b fe                	mov    %esi,%edi
402d55:	8d 45 fc             	lea    -0x4(%ebp),%eax
402d58:	81 e6 00 03 00 00    	and    $0x300,%esi
402d5e:	50                   	push   %eax
402d5f:	8b c6                	mov    %esi,%eax
402d61:	83 e7 01             	and    $0x1,%edi
402d64:	0c 08                	or     $0x8,%al
402d66:	50                   	push   %eax
402d67:	ff 75 0c             	push   0xc(%ebp)
402d6a:	ff 75 08             	push   0x8(%ebp)
402d6d:	e8 e3 34 00 00       	call   0x406255
402d72:	85 c0                	test   %eax,%eax
402d74:	75 76                	jne    0x402dec
402d76:	8b 1d 30 80 40 00    	mov    0x408030,%ebx
402d7c:	eb 1a                	jmp    0x402d98
402d7e:	85 ff                	test   %edi,%edi
402d80:	75 4e                	jne    0x402dd0
402d82:	ff 75 10             	push   0x10(%ebp)
402d85:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
402d8b:	50                   	push   %eax
402d8c:	ff 75 fc             	push   -0x4(%ebp)
402d8f:	e8 b0 ff ff ff       	call   0x402d44
402d94:	85 c0                	test   %eax,%eax
402d96:	75 17                	jne    0x402daf
402d98:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
402d9e:	68 05 01 00 00       	push   $0x105
402da3:	50                   	push   %eax
402da4:	6a 00                	push   $0x0
402da6:	ff 75 fc             	push   -0x4(%ebp)
402da9:	ff d3                	call   *%ebx
402dab:	85 c0                	test   %eax,%eax
402dad:	74 cf                	je     0x402d7e
402daf:	ff 75 fc             	push   -0x4(%ebp)
402db2:	ff 15 24 80 40 00    	call   *0x408024
402db8:	6a 03                	push   $0x3
402dba:	e8 03 3a 00 00       	call   0x4067c2
402dbf:	85 c0                	test   %eax,%eax
402dc1:	74 1d                	je     0x402de0
402dc3:	6a 00                	push   $0x0
402dc5:	56                   	push   %esi
402dc6:	ff 75 0c             	push   0xc(%ebp)
402dc9:	ff 75 08             	push   0x8(%ebp)
402dcc:	ff d0                	call   *%eax
402dce:	eb 1c                	jmp    0x402dec
402dd0:	ff 75 fc             	push   -0x4(%ebp)
402dd3:	ff 15 24 80 40 00    	call   *0x408024
402dd9:	b8 eb 03 00 00       	mov    $0x3eb,%eax
402dde:	eb 0c                	jmp    0x402dec
402de0:	ff 75 0c             	push   0xc(%ebp)
402de3:	ff 75 08             	push   0x8(%ebp)
402de6:	ff 15 1c 80 40 00    	call   *0x40801c
402dec:	5f                   	pop    %edi
402ded:	5e                   	pop    %esi
402dee:	5b                   	pop    %ebx
402def:	c9                   	leave
402df0:	c2 0c 00             	ret    $0xc
402df3:	55                   	push   %ebp
402df4:	8b ec                	mov    %esp,%ebp
402df6:	81 ec 80 00 00 00    	sub    $0x80,%esp
402dfc:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
402e03:	75 19                	jne    0x402e1e
402e05:	6a 00                	push   $0x0
402e07:	68 fa 00 00 00       	push   $0xfa
402e0c:	6a 01                	push   $0x1
402e0e:	ff 75 08             	push   0x8(%ebp)
402e11:	ff 15 58 82 40 00    	call   *0x408258
402e17:	c7 45 0c 13 01 00 00 	movl   $0x113,0xc(%ebp)
402e1e:	81 7d 0c 13 01 00 00 	cmpl   $0x113,0xc(%ebp)
402e25:	75 45                	jne    0x402e6c
402e27:	e8 46 00 00 00       	call   0x402e72
402e2c:	83 3d 54 a2 42 00 00 	cmpl   $0x0,0x42a254
402e33:	b9 54 a0 40 00       	mov    $0x40a054,%ecx
402e38:	75 05                	jne    0x402e3f
402e3a:	b9 20 a0 40 00       	mov    $0x40a020,%ecx
402e3f:	50                   	push   %eax
402e40:	8d 45 80             	lea    -0x80(%ebp),%eax
402e43:	51                   	push   %ecx
402e44:	50                   	push   %eax
402e45:	ff 15 90 82 40 00    	call   *0x408290
402e4b:	83 c4 0c             	add    $0xc,%esp
402e4e:	8d 45 80             	lea    -0x80(%ebp),%eax
402e51:	50                   	push   %eax
402e52:	ff 75 08             	push   0x8(%ebp)
402e55:	ff 15 5c 82 40 00    	call   *0x40825c
402e5b:	8d 45 80             	lea    -0x80(%ebp),%eax
402e5e:	50                   	push   %eax
402e5f:	68 06 04 00 00       	push   $0x406
402e64:	ff 75 08             	push   0x8(%ebp)
402e67:	e8 c0 2b 00 00       	call   0x405a2c
402e6c:	33 c0                	xor    %eax,%eax
402e6e:	c9                   	leave
402e6f:	c2 10 00             	ret    $0x10
402e72:	8b 0d d0 8e 41 00    	mov    0x418ed0,%ecx
402e78:	a1 e0 8e 41 00       	mov    0x418ee0,%eax
402e7d:	3b c8                	cmp    %eax,%ecx
402e7f:	7c 02                	jl     0x402e83
402e81:	8b c8                	mov    %eax,%ecx
402e83:	50                   	push   %eax
402e84:	6a 64                	push   $0x64
402e86:	51                   	push   %ecx
402e87:	ff 15 54 81 40 00    	call   *0x408154
402e8d:	c3                   	ret
402e8e:	55                   	push   %ebp
402e8f:	8b ec                	mov    %esp,%ebp
402e91:	81 ec 80 00 00 00    	sub    $0x80,%esp
402e97:	56                   	push   %esi
402e98:	33 f6                	xor    %esi,%esi
402e9a:	39 75 08             	cmp    %esi,0x8(%ebp)
402e9d:	74 18                	je     0x402eb7
402e9f:	a1 dc 8e 41 00       	mov    0x418edc,%eax
402ea4:	3b c6                	cmp    %esi,%eax
402ea6:	74 07                	je     0x402eaf
402ea8:	50                   	push   %eax
402ea9:	ff 15 50 82 40 00    	call   *0x408250
402eaf:	89 35 dc 8e 41 00    	mov    %esi,0x418edc
402eb5:	eb 76                	jmp    0x402f2d
402eb7:	39 35 dc 8e 41 00    	cmp    %esi,0x418edc
402ebd:	74 08                	je     0x402ec7
402ebf:	56                   	push   %esi
402ec0:	e8 39 39 00 00       	call   0x4067fe
402ec5:	eb 66                	jmp    0x402f2d
402ec7:	ff 15 7c 80 40 00    	call   *0x40807c
402ecd:	3b 05 50 a2 42 00    	cmp    0x42a250,%eax
402ed3:	76 58                	jbe    0x402f2d
402ed5:	39 35 48 a2 42 00    	cmp    %esi,0x42a248
402edb:	74 2d                	je     0x402f0a
402edd:	f6 05 14 a3 42 00 01 	testb  $0x1,0x42a314
402ee4:	74 47                	je     0x402f2d
402ee6:	e8 87 ff ff ff       	call   0x402e72
402eeb:	50                   	push   %eax
402eec:	8d 45 80             	lea    -0x80(%ebp),%eax
402eef:	68 80 a0 40 00       	push   $0x40a080
402ef4:	50                   	push   %eax
402ef5:	ff 15 90 82 40 00    	call   *0x408290
402efb:	83 c4 0c             	add    $0xc,%esp
402efe:	8d 45 80             	lea    -0x80(%ebp),%eax
402f01:	50                   	push   %eax
402f02:	56                   	push   %esi
402f03:	e8 48 25 00 00       	call   0x405450
402f08:	eb 23                	jmp    0x402f2d
402f0a:	56                   	push   %esi
402f0b:	68 f3 2d 40 00       	push   $0x402df3
402f10:	56                   	push   %esi
402f11:	6a 6f                	push   $0x6f
402f13:	ff 35 40 a2 42 00    	push   0x42a240
402f19:	ff 15 88 82 40 00    	call   *0x408288
402f1f:	6a 05                	push   $0x5
402f21:	50                   	push   %eax
402f22:	a3 dc 8e 41 00       	mov    %eax,0x418edc
402f27:	ff 15 68 82 40 00    	call   *0x408268
402f2d:	5e                   	pop    %esi
402f2e:	c9                   	leave
402f2f:	c3                   	ret
402f30:	55                   	push   %ebp
402f31:	8b ec                	mov    %esp,%ebp
402f33:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
402f39:	53                   	push   %ebx
402f3a:	56                   	push   %esi
402f3b:	33 db                	xor    %ebx,%ebx
402f3d:	57                   	push   %edi
402f3e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402f41:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402f44:	ff 15 7c 80 40 00    	call   *0x40807c
402f4a:	be 00 88 43 00       	mov    $0x438800,%esi
402f4f:	68 00 04 00 00       	push   $0x400
402f54:	05 e8 03 00 00       	add    $0x3e8,%eax
402f59:	56                   	push   %esi
402f5a:	53                   	push   %ebx
402f5b:	a3 50 a2 42 00       	mov    %eax,0x42a250
402f60:	ff 15 88 80 40 00    	call   *0x408088
402f66:	6a 03                	push   $0x3
402f68:	68 00 00 00 80       	push   $0x80000000
402f6d:	56                   	push   %esi
402f6e:	e8 6b 2f 00 00       	call   0x405ede
402f73:	8b f8                	mov    %eax,%edi
402f75:	83 ff ff             	cmp    $0xffffffff,%edi
402f78:	89 3d 18 a0 40 00    	mov    %edi,0x40a018
402f7e:	75 0a                	jne    0x402f8a
402f80:	b8 b8 a2 40 00       	mov    $0x40a2b8,%eax
402f85:	e9 45 02 00 00       	jmp    0x4031cf
402f8a:	56                   	push   %esi
402f8b:	be 00 68 43 00       	mov    $0x436800,%esi
402f90:	56                   	push   %esi
402f91:	e8 52 34 00 00       	call   0x4063e8
402f96:	56                   	push   %esi
402f97:	e8 6d 2d 00 00       	call   0x405d09
402f9c:	50                   	push   %eax
402f9d:	68 00 90 43 00       	push   $0x439000
402fa2:	e8 41 34 00 00       	call   0x4063e8
402fa7:	53                   	push   %ebx
402fa8:	57                   	push   %edi
402fa9:	ff 15 84 80 40 00    	call   *0x408084
402faf:	3b c3                	cmp    %ebx,%eax
402fb1:	a3 e0 8e 41 00       	mov    %eax,0x418ee0
402fb6:	8b f0                	mov    %eax,%esi
402fb8:	0f 8e ea 00 00 00    	jle    0x4030a8
402fbe:	a1 58 a2 42 00       	mov    0x42a258,%eax
402fc3:	8b fe                	mov    %esi,%edi
402fc5:	f7 d8                	neg    %eax
402fc7:	1b c0                	sbb    %eax,%eax
402fc9:	25 00 7e 00 00       	and    $0x7e00,%eax
402fce:	05 00 02 00 00       	add    $0x200,%eax
402fd3:	3b f0                	cmp    %eax,%esi
402fd5:	7c 02                	jl     0x402fd9
402fd7:	8b f8                	mov    %eax,%edi
402fd9:	57                   	push   %edi
402fda:	68 e8 8e 41 00       	push   $0x418ee8
402fdf:	e8 63 04 00 00       	call   0x403447
402fe4:	85 c0                	test   %eax,%eax
402fe6:	0f 84 57 01 00 00    	je     0x403143
402fec:	39 1d 58 a2 42 00    	cmp    %ebx,0x42a258
402ff2:	75 7e                	jne    0x403072
402ff4:	6a 1c                	push   $0x1c
402ff6:	8d 45 dc             	lea    -0x24(%ebp),%eax
402ff9:	68 e8 8e 41 00       	push   $0x418ee8
402ffe:	50                   	push   %eax
402fff:	e8 95 2e 00 00       	call   0x405e99
403004:	8b 45 dc             	mov    -0x24(%ebp),%eax
403007:	a9 f0 ff ff ff       	test   $0xfffffff0,%eax
40300c:	75 71                	jne    0x40307f
40300e:	81 7d e0 ef be ad de 	cmpl   $0xdeadbeef,-0x20(%ebp)
403015:	75 68                	jne    0x40307f
403017:	81 7d ec 49 6e 73 74 	cmpl   $0x74736e49,-0x14(%ebp)
40301e:	75 5f                	jne    0x40307f
403020:	81 7d e8 73 6f 66 74 	cmpl   $0x74666f73,-0x18(%ebp)
403027:	75 56                	jne    0x40307f
403029:	81 7d e4 4e 75 6c 6c 	cmpl   $0x6c6c754e,-0x1c(%ebp)
403030:	75 4d                	jne    0x40307f
403032:	09 45 08             	or     %eax,0x8(%ebp)
403035:	8b 45 08             	mov    0x8(%ebp),%eax
403038:	8b 0d d0 8e 41 00    	mov    0x418ed0,%ecx
40303e:	83 e0 02             	and    $0x2,%eax
403041:	09 05 00 a3 42 00    	or     %eax,0x42a300
403047:	8b 45 f4             	mov    -0xc(%ebp),%eax
40304a:	3b c6                	cmp    %esi,%eax
40304c:	89 0d 58 a2 42 00    	mov    %ecx,0x42a258
403052:	0f 8f 2f 01 00 00    	jg     0x403187
403058:	f6 45 08 08          	testb  $0x8,0x8(%ebp)
40305c:	75 06                	jne    0x403064
40305e:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
403062:	75 44                	jne    0x4030a8
403064:	ff 45 f8             	incl   -0x8(%ebp)
403067:	8d 70 fc             	lea    -0x4(%eax),%esi
40306a:	3b fe                	cmp    %esi,%edi
40306c:	76 11                	jbe    0x40307f
40306e:	8b fe                	mov    %esi,%edi
403070:	eb 0d                	jmp    0x40307f
403072:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
403076:	75 07                	jne    0x40307f
403078:	53                   	push   %ebx
403079:	e8 10 fe ff ff       	call   0x402e8e
40307e:	59                   	pop    %ecx
40307f:	3b 35 e0 8e 41 00    	cmp    0x418ee0,%esi
403085:	7d 11                	jge    0x403098
403087:	57                   	push   %edi
403088:	68 e8 8e 41 00       	push   $0x418ee8
40308d:	ff 75 fc             	push   -0x4(%ebp)
403090:	e8 20 38 00 00       	call   0x4068b5