402e0c:	89 3d 18 90 40 00    	mov    %edi,0x409018
402e12:	75 0a                	jne    0x402e1e
402e14:	b8 04 91 40 00       	mov    $0x409104,%eax
402e19:	e9 d6 01 00 00       	jmp    0x402ff4
402e1e:	56                   	push   %esi
402e1f:	be 00 9c 42 00       	mov    $0x429c00,%esi
402e24:	56                   	push   %esi
402e25:	e8 b0 31 00 00       	call   0x405fda
402e2a:	56                   	push   %esi
402e2b:	e8 89 2b 00 00       	call   0x4059b9
402e30:	50                   	push   %eax
402e31:	68 00 b0 42 00       	push   $0x42b000
402e36:	e8 9f 31 00 00       	call   0x405fda
402e3b:	53                   	push   %ebx
402e3c:	57                   	push   %edi
402e3d:	ff 15 74 70 40 00    	call   *0x407074
402e43:	3b c3                	cmp    %ebx,%eax
402e45:	a3 c4 e8 41 00       	mov    %eax,0x41e8c4
402e4a:	8b f0                	mov    %eax,%esi
402e4c:	0f 86 e5 00 00 00    	jbe    0x402f37
402e52:	bb b8 a8 40 00       	mov    $0x40a8b8,%ebx
402e57:	a1 18 37 42 00       	mov    0x423718,%eax
402e5c:	8b fe                	mov    %esi,%edi
402e5e:	f7 d8                	neg    %eax
402e60:	1b c0                	sbb    %eax,%eax
402e62:	25 00 7e 00 00       	and    $0x7e00,%eax
402e67:	05 00 02 00 00       	add    $0x200,%eax
402e6c:	3b f0                	cmp    %eax,%esi
402e6e:	72 02                	jb     0x402e72
402e70:	8b f8                	mov    %eax,%edi
402e72:	57                   	push   %edi
402e73:	53                   	push   %ebx
402e74:	e8 5e 03 00 00       	call   0x4031d7
402e79:	85 c0                	test   %eax,%eax
402e7b:	0f 84 20 01 00 00    	je     0x402fa1
402e81:	83 3d 18 37 42 00 00 	cmpl   $0x0,0x423718
402e88:	75 7a                	jne    0x402f04
402e8a:	6a 1c                	push   $0x1c
402e8c:	8d 45 d8             	lea    -0x28(%ebp),%eax
402e8f:	53                   	push   %ebx
402e90:	50                   	push   %eax
402e91:	e8 98 2c 00 00       	call   0x405b2e
402e96:	8b 45 d8             	mov    -0x28(%ebp),%eax
402e99:	a9 f0 ff ff ff       	test   $0xfffffff0,%eax
402e9e:	75 72                	jne    0x402f12
402ea0:	81 7d dc ef be ad de 	cmpl   $0xdeadbeef,-0x24(%ebp)
402ea7:	75 69                	jne    0x402f12
402ea9:	81 7d e8 49 6e 73 74 	cmpl   $0x74736e49,-0x18(%ebp)
402eb0:	75 60                	jne    0x402f12
402eb2:	81 7d e4 73 6f 66 74 	cmpl   $0x74666f73,-0x1c(%ebp)
402eb9:	75 57                	jne    0x402f12
402ebb:	81 7d e0 4e 75 6c 6c 	cmpl   $0x6c6c754e,-0x20(%ebp)
402ec2:	75 4e                	jne    0x402f12
402ec4:	09 45 08             	or     %eax,0x8(%ebp)
402ec7:	8b 45 08             	mov    0x8(%ebp),%eax
402eca:	8b 0d b8 28 41 00    	mov    0x4128b8,%ecx
402ed0:	83 e0 02             	and    $0x2,%eax
402ed3:	09 05 c0 37 42 00    	or     %eax,0x4237c0
402ed9:	8b 45 f0             	mov    -0x10(%ebp),%eax
402edc:	3b c6                	cmp    %esi,%eax
402ede:	89 0d 18 37 42 00    	mov    %ecx,0x423718
402ee4:	0f 87 b0 00 00 00    	ja     0x402f9a
402eea:	f6 45 08 08          	testb  $0x8,0x8(%ebp)
402eee:	75 06                	jne    0x402ef6
402ef0:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
402ef4:	75 3f                	jne    0x402f35
402ef6:	ff 45 fc             	incl   -0x4(%ebp)
402ef9:	8d 70 fc             	lea    -0x4(%eax),%esi
402efc:	3b fe                	cmp    %esi,%edi
402efe:	76 12                	jbe    0x402f12
402f00:	8b fe                	mov    %esi,%edi
402f02:	eb 0e                	jmp    0x402f12
402f04:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
402f08:	75 08                	jne    0x402f12
402f0a:	6a 00                	push   $0x0
402f0c:	e8 4f fe ff ff       	call   0x402d60
402f11:	59                   	pop    %ecx
402f12:	3b 35 c4 e8 41 00    	cmp    0x41e8c4,%esi
402f18:	73 0d                	jae    0x402f27
402f1a:	57                   	push   %edi
402f1b:	53                   	push   %ebx
402f1c:	ff 75 f8             	push   -0x8(%ebp)
402f1f:	e8 05 35 00 00       	call   0x406429
402f24:	89 45 f8             	mov    %eax,-0x8(%ebp)
402f27:	01 3d b8 28 41 00    	add    %edi,0x4128b8
402f2d:	2b f7                	sub    %edi,%esi
402f2f:	0f 85 22 ff ff ff    	jne    0x402e57
402f35:	33 db                	xor    %ebx,%ebx
402f37:	6a 01                	push   $0x1
402f39:	e8 22 fe ff ff       	call   0x402d60
402f3e:	39 1d 18 37 42 00    	cmp    %ebx,0x423718
402f44:	59                   	pop    %ecx
402f45:	74 53                	je     0x402f9a
402f47:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
402f4a:	74 22                	je     0x402f6e
402f4c:	ff 35 b8 28 41 00    	push   0x4128b8
402f52:	e8 96 02 00 00       	call   0x4031ed
402f57:	8d 45 08             	lea    0x8(%ebp),%eax
402f5a:	6a 04                	push   $0x4
402f5c:	50                   	push   %eax
402f5d:	e8 75 02 00 00       	call   0x4031d7
402f62:	85 c0                	test   %eax,%eax
402f64:	74 34                	je     0x402f9a
402f66:	8b 45 f8             	mov    -0x8(%ebp),%eax
402f69:	3b 45 08             	cmp    0x8(%ebp),%eax
402f6c:	75 2c                	jne    0x402f9a
402f6e:	ff 75 ec             	push   -0x14(%ebp)
402f71:	6a 40                	push   $0x40
402f73:	ff 15 58 71 40 00    	call   *0x407158
402f79:	8b f0                	mov    %eax,%esi
402f7b:	a1 18 37 42 00       	mov    0x423718,%eax
402f80:	83 c0 1c             	add    $0x1c,%eax
402f83:	50                   	push   %eax
402f84:	e8 64 02 00 00       	call   0x4031ed
402f89:	ff 75 ec             	push   -0x14(%ebp)
402f8c:	56                   	push   %esi
402f8d:	53                   	push   %ebx
402f8e:	6a ff                	push   $0xffffffff
402f90:	e8 66 00 00 00       	call   0x402ffb
402f95:	3b 45 ec             	cmp    -0x14(%ebp),%eax
402f98:	74 11                	je     0x402fab
402f9a:	b8 38 90 40 00       	mov    $0x409038,%eax
402f9f:	eb 53                	jmp    0x402ff4
402fa1:	6a 01                	push   $0x1
402fa3:	e8 b8 fd ff ff       	call   0x402d60
402fa8:	59                   	pop    %ecx
402fa9:	eb ef                	jmp    0x402f9a
402fab:	f6 45 d8 01          	testb  $0x1,-0x28(%ebp)
402faf:	89 35 14 37 42 00    	mov    %esi,0x423714
402fb5:	8b 06                	mov    (%esi),%eax
402fb7:	a3 1c 37 42 00       	mov    %eax,0x42371c
402fbc:	74 06                	je     0x402fc4
402fbe:	ff 05 20 37 42 00    	incl   0x423720
402fc4:	6a 08                	push   $0x8
402fc6:	8d 46 44             	lea    0x44(%esi),%eax
402fc9:	59                   	pop    %ecx
402fca:	83 e8 08             	sub    $0x8,%eax
402fcd:	01 30                	add    %esi,(%eax)
402fcf:	49                   	dec    %ecx
402fd0:	75 f8                	jne    0x402fca
402fd2:	6a 01                	push   $0x1
402fd4:	53                   	push   %ebx
402fd5:	53                   	push   %ebx
402fd6:	ff 75 f4             	push   -0xc(%ebp)
402fd9:	ff 15 38 71 40 00    	call   *0x407138
402fdf:	89 46 3c             	mov    %eax,0x3c(%esi)
402fe2:	83 c6 04             	add    $0x4,%esi
402fe5:	6a 40                	push   $0x40
402fe7:	56                   	push   %esi
402fe8:	68 40 37 42 00       	push   $0x423740
402fed:	e8 3c 2b 00 00       	call   0x405b2e
402ff2:	33 c0                	xor    %eax,%eax
402ff4:	5f                   	pop    %edi
402ff5:	5e                   	pop    %esi
402ff6:	5b                   	pop    %ebx
402ff7:	c9                   	leave
402ff8:	c2 04 00             	ret    $0x4
402ffb:	55                   	push   %ebp
402ffc:	8b ec                	mov    %esp,%ebp
402ffe:	83 ec 50             	sub    $0x50,%esp
403001:	53                   	push   %ebx
403002:	56                   	push   %esi
403003:	8b 75 14             	mov    0x14(%ebp),%esi
403006:	57                   	push   %edi
403007:	8b 7d 10             	mov    0x10(%ebp),%edi
40300a:	89 75 f8             	mov    %esi,-0x8(%ebp)
40300d:	85 ff                	test   %edi,%edi
40300f:	75 07                	jne    0x403018
403011:	c7 45 f8 00 80 00 00 	movl   $0x8000,-0x8(%ebp)
403018:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40301c:	8b df                	mov    %edi,%ebx
40301e:	85 ff                	test   %edi,%edi
403020:	75 05                	jne    0x403027
403022:	bb c0 68 41 00       	mov    $0x4168c0,%ebx
403027:	8b 45 08             	mov    0x8(%ebp),%eax
40302a:	85 c0                	test   %eax,%eax
40302c:	7c 0e                	jl     0x40303c
40302e:	8b 0d 78 37 42 00    	mov    0x423778,%ecx
403034:	03 c8                	add    %eax,%ecx
403036:	51                   	push   %ecx
403037:	e8 b1 01 00 00       	call   0x4031ed
40303c:	8d 45 14             	lea    0x14(%ebp),%eax
40303f:	6a 04                	push   $0x4
403041:	50                   	push   %eax
403042:	e8 90 01 00 00       	call   0x4031d7
403047:	85 c0                	test   %eax,%eax
403049:	0f 84 3f 01 00 00    	je     0x40318e
40304f:	f6 45 17 80          	testb  $0x80,0x17(%ebp)
403053:	0f 84 1e 01 00 00    	je     0x403177
403059:	ff 15 90 70 40 00    	call   *0x407090
40305f:	b9 30 a8 40 00       	mov    $0x40a830,%ecx
403064:	89 45 f4             	mov    %eax,-0xc(%ebp)
403067:	e8 2b 34 00 00       	call   0x406497
40306c:	81 65 14 ff ff ff 7f 	andl   $0x7fffffff,0x14(%ebp)
403073:	8b 45 14             	mov    0x14(%ebp),%eax
403076:	89 45 08             	mov    %eax,0x8(%ebp)
403079:	0f 8e 4e 01 00 00    	jle    0x4031cd
40307f:	be 00 40 00 00       	mov    $0x4000,%esi
403084:	39 75 14             	cmp    %esi,0x14(%ebp)
403087:	7d 03                	jge    0x40308c
403089:	8b 75 14             	mov    0x14(%ebp),%esi
40308c:	bf c0 28 41 00       	mov    $0x4128c0,%edi
403091:	56                   	push   %esi
403092:	57                   	push   %edi
403093:	e8 3f 01 00 00       	call   0x4031d7
403098:	85 c0                	test   %eax,%eax
40309a:	0f 84 ee 00 00 00    	je     0x40318e
4030a0:	29 75 14             	sub    %esi,0x14(%ebp)
4030a3:	89 3d 48 a8 40 00    	mov    %edi,0x40a848
4030a9:	89 35 4c a8 40 00    	mov    %esi,0x40a84c
4030af:	8b 45 f8             	mov    -0x8(%ebp),%eax
4030b2:	b9 30 a8 40 00       	mov    $0x40a830,%ecx
4030b7:	89 1d 50 a8 40 00    	mov    %ebx,0x40a850
4030bd:	a3 54 a8 40 00       	mov    %eax,0x40a854
4030c2:	e8 f0 33 00 00       	call   0x4064b7
4030c7:	85 c0                	test   %eax,%eax
4030c9:	89 45 f0             	mov    %eax,-0x10(%ebp)
4030cc:	0f 8c 9d 00 00 00    	jl     0x40316f
4030d2:	8b 35 50 a8 40 00    	mov    0x40a850,%esi
4030d8:	2b f3                	sub    %ebx,%esi
4030da:	ff 15 90 70 40 00    	call   *0x407090
4030e0:	f6 05 d4 37 42 00 01 	testb  $0x1,0x4237d4
4030e7:	8b f8                	mov    %eax,%edi
4030e9:	74 43                	je     0x40312e
4030eb:	2b 45 f4             	sub    -0xc(%ebp),%eax
4030ee:	3d c8 00 00 00       	cmp    $0xc8,%eax
4030f3:	77 06                	ja     0x4030fb
4030f5:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4030f9:	75 33                	jne    0x40312e
4030fb:	8b 45 08             	mov    0x8(%ebp),%eax
4030fe:	ff 75 08             	push   0x8(%ebp)
403101:	2b 45 14             	sub    0x14(%ebp),%eax
403104:	6a 64                	push   $0x64
403106:	50                   	push   %eax
403107:	ff 15 44 71 40 00    	call   *0x407144
40310d:	50                   	push   %eax
40310e:	8d 45 b0             	lea    -0x50(%ebp),%eax
403111:	68 20 91 40 00       	push   $0x409120
403116:	50                   	push   %eax
403117:	ff 15 74 72 40 00    	call   *0x407274
40311d:	83 c4 0c             	add    $0xc,%esp
403120:	8d 45 b0             	lea    -0x50(%ebp),%eax
403123:	50                   	push   %eax
403124:	6a 00                	push   $0x0
403126:	e8 d6 1f 00 00       	call   0x405101
40312b:	89 7d f4             	mov    %edi,-0xc(%ebp)
40312e:	85 f6                	test   %esi,%esi
403130:	74 31                	je     0x403163
403132:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
403136:	75 13                	jne    0x40314b
403138:	56                   	push   %esi
403139:	53                   	push   %ebx
40313a:	ff 75 0c             	push   0xc(%ebp)
40313d:	e8 d8 2a 00 00       	call   0x405c1a
403142:	85 c0                	test   %eax,%eax
403144:	74 2d                	je     0x403173
403146:	01 75 fc             	add    %esi,-0x4(%ebp)
403149:	eb 0c                	jmp    0x403157
40314b:	01 75 fc             	add    %esi,-0x4(%ebp)
40314e:	29 75 f8             	sub    %esi,-0x8(%ebp)
403151:	8b 1d 50 a8 40 00    	mov    0x40a850,%ebx
403157:	83 7d f0 01          	cmpl   $0x1,-0x10(%ebp)
40315b:	0f 85 4e ff ff ff    	jne    0x4030af
403161:	eb 6a                	jmp    0x4031cd
403163:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
403167:	0f 8f 12 ff ff ff    	jg     0x40307f
40316d:	eb 5e                	jmp    0x4031cd
40316f:	6a fc                	push   $0xfffffffc
403171:	eb 1d                	jmp    0x403190
403173:	6a fe                	push   $0xfffffffe
403175:	eb 19                	jmp    0x403190
403177:	85 ff                	test   %edi,%edi
403179:	74 47                	je     0x4031c2
40317b:	39 75 14             	cmp    %esi,0x14(%ebp)
40317e:	7d 03                	jge    0x403183
403180:	8b 75 14             	mov    0x14(%ebp),%esi
403183:	56                   	push   %esi
403184:	57                   	push   %edi
403185:	e8 4d 00 00 00       	call   0x4031d7
40318a:	85 c0                	test   %eax,%eax
40318c:	75 3c                	jne    0x4031ca
40318e:	6a fd                	push   $0xfffffffd
403190:	58                   	pop    %eax
403191:	eb 3d                	jmp    0x4031d0
403193:	8b 75 f8             	mov    -0x8(%ebp),%esi
403196:	39 75 14             	cmp    %esi,0x14(%ebp)
403199:	7d 03                	jge    0x40319e
40319b:	8b 75 14             	mov    0x14(%ebp),%esi
40319e:	bf c0 28 41 00       	mov    $0x4128c0,%edi
4031a3:	56                   	push   %esi
4031a4:	57                   	push   %edi
4031a5:	e8 2d 00 00 00       	call   0x4031d7
4031aa:	85 c0                	test   %eax,%eax
4031ac:	74 e0                	je     0x40318e
4031ae:	56                   	push   %esi
4031af:	57                   	push   %edi
4031b0:	ff 75 0c             	push   0xc(%ebp)
4031b3:	e8 62 2a 00 00       	call   0x405c1a
4031b8:	85 c0                	test   %eax,%eax
4031ba:	74 b7                	je     0x403173
4031bc:	01 75 fc             	add    %esi,-0x4(%ebp)
4031bf:	29 75 14             	sub    %esi,0x14(%ebp)
4031c2:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4031c6:	7f cb                	jg     0x403193
4031c8:	eb 03                	jmp    0x4031cd
4031ca:	89 75 fc             	mov    %esi,-0x4(%ebp)
4031cd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4031d0:	5f                   	pop    %edi
4031d1:	5e                   	pop    %esi
4031d2:	5b                   	pop    %ebx
4031d3:	c9                   	leave
4031d4:	c2 10 00             	ret    $0x10
4031d7:	ff 74 24 08          	push   0x8(%esp)
4031db:	ff 74 24 08          	push   0x8(%esp)
4031df:	ff 35 18 90 40 00    	push   0x409018
4031e5:	e8 01 2a 00 00       	call   0x405beb
4031ea:	c2 08 00             	ret    $0x8
4031ed:	6a 00                	push   $0x0
4031ef:	6a 00                	push   $0x0
4031f1:	ff 74 24 0c          	push   0xc(%esp)
4031f5:	ff 35 18 90 40 00    	push   0x409018
4031fb:	ff 15 38 71 40 00    	call   *0x407138
403201:	c2 04 00             	ret    $0x4
403204:	56                   	push   %esi
403205:	be 00 a4 42 00       	mov    $0x42a400,%esi
40320a:	56                   	push   %esi
40320b:	e8 34 30 00 00       	call   0x406244
403210:	56                   	push   %esi
403211:	e8 c9 27 00 00       	call   0x4059df
403216:	85 c0                	test   %eax,%eax
403218:	75 02                	jne    0x40321c
40321a:	5e                   	pop    %esi
40321b:	c3                   	ret
40321c:	56                   	push   %esi
40321d:	e8 50 27 00 00       	call   0x405972
403222:	56                   	push   %esi
403223:	e8 1c 24 00 00       	call   0x405644
403228:	56                   	push   %esi
403229:	68 00 a0 42 00       	push   $0x42a000
40322e:	e8 6f 29 00 00       	call   0x405ba2
403233:	5e                   	pop    %esi
403234:	c3                   	ret
403235:	81 ec 84 01 00 00    	sub    $0x184,%esp
40323b:	53                   	push   %ebx
40323c:	56                   	push   %esi
40323d:	57                   	push   %edi
40323e:	33 db                	xor    %ebx,%ebx
403240:	68 01 80 00 00       	push   $0x8001
403245:	89 5c 24 18          	mov    %ebx,0x18(%esp)
403249:	c7 44 24 10 98 91 40 	movl   $0x409198,0x10(%esp)