402e14:	55                   	push   %ebp
402e15:	8b ec                	mov    %esp,%ebp
402e17:	81 ec 28 01 00 00    	sub    $0x128,%esp
402e1d:	53                   	push   %ebx
402e1e:	56                   	push   %esi
402e1f:	33 db                	xor    %ebx,%ebx
402e21:	57                   	push   %edi
402e22:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402e25:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402e28:	ff 15 90 80 40 00    	call   *0x408090
402e2e:	be 00 6c 43 00       	mov    $0x436c00,%esi
402e33:	68 00 04 00 00       	push   $0x400
402e38:	05 e8 03 00 00       	add    $0x3e8,%eax
402e3d:	56                   	push   %esi
402e3e:	53                   	push   %ebx
402e3f:	a3 30 f4 42 00       	mov    %eax,0x42f430
402e44:	ff 15 7c 80 40 00    	call   *0x40807c
402e4a:	6a 03                	push   $0x3
402e4c:	68 00 00 00 80       	push   $0x80000000
402e51:	56                   	push   %esi
402e52:	e8 a8 2e 00 00       	call   0x405cff
402e57:	8b f8                	mov    %eax,%edi
402e59:	83 ff ff             	cmp    $0xffffffff,%edi
402e5c:	89 3d 18 a0 40 00    	mov    %edi,0x40a018
402e62:	75 0a                	jne    0x402e6e
402e64:	b8 74 a1 40 00       	mov    $0x40a174,%eax
402e69:	e9 65 02 00 00       	jmp    0x4030d3
402e6e:	56                   	push   %esi
402e6f:	be 00 5c 43 00       	mov    $0x435c00,%esi
402e74:	56                   	push   %esi
402e75:	e8 ec 32 00 00       	call   0x406166
402e7a:	56                   	push   %esi
402e7b:	e8 c5 2c 00 00       	call   0x405b45
402e80:	50                   	push   %eax
402e81:	68 00 70 43 00       	push   $0x437000
402e86:	e8 db 32 00 00       	call   0x406166
402e8b:	53                   	push   %ebx
402e8c:	57                   	push   %edi
402e8d:	ff 15 78 80 40 00    	call   *0x408078
402e93:	3b c3                	cmp    %ebx,%eax
402e95:	a3 50 94 42 00       	mov    %eax,0x429450
402e9a:	8b f0                	mov    %eax,%esi
402e9c:	0f 86 e8 00 00 00    	jbe    0x402f8a
402ea2:	a1 38 f4 42 00       	mov    0x42f438,%eax
402ea7:	8b fe                	mov    %esi,%edi
402ea9:	f7 d8                	neg    %eax
402eab:	1b c0                	sbb    %eax,%eax
402ead:	25 00 7e 00 00       	and    $0x7e00,%eax
402eb2:	05 00 02 00 00       	add    $0x200,%eax
402eb7:	3b f0                	cmp    %eax,%esi
402eb9:	72 02                	jb     0x402ebd
402ebb:	8b f8                	mov    %eax,%edi
402ebd:	57                   	push   %edi
402ebe:	68 40 14 42 00       	push   $0x421440
402ec3:	e8 83 04 00 00       	call   0x40334b
402ec8:	85 c0                	test   %eax,%eax
402eca:	0f 84 79 01 00 00    	je     0x403049
402ed0:	39 1d 38 f4 42 00    	cmp    %ebx,0x42f438
402ed6:	75 7e                	jne    0x402f56
402ed8:	6a 1c                	push   $0x1c
402eda:	8d 45 dc             	lea    -0x24(%ebp),%eax
402edd:	68 40 14 42 00       	push   $0x421440
402ee2:	50                   	push   %eax
402ee3:	e8 d2 2d 00 00       	call   0x405cba
402ee8:	8b 45 dc             	mov    -0x24(%ebp),%eax
402eeb:	a9 f0 ff ff ff       	test   $0xfffffff0,%eax
402ef0:	75 71                	jne    0x402f63
402ef2:	81 7d e0 ef be ad de 	cmpl   $0xdeadbeef,-0x20(%ebp)
402ef9:	75 68                	jne    0x402f63
402efb:	81 7d ec 49 6e 73 74 	cmpl   $0x74736e49,-0x14(%ebp)
402f02:	75 5f                	jne    0x402f63
402f04:	81 7d e8 73 6f 66 74 	cmpl   $0x74666f73,-0x18(%ebp)
402f0b:	75 56                	jne    0x402f63
402f0d:	81 7d e4 4e 75 6c 6c 	cmpl   $0x6c6c754e,-0x1c(%ebp)
402f14:	75 4d                	jne    0x402f63
402f16:	09 45 08             	or     %eax,0x8(%ebp)
402f19:	8b 45 08             	mov    0x8(%ebp),%eax
402f1c:	8b 0d 40 94 42 00    	mov    0x429440,%ecx
402f22:	83 e0 02             	and    $0x2,%eax
402f25:	09 05 e0 f4 42 00    	or     %eax,0x42f4e0
402f2b:	8b 45 f4             	mov    -0xc(%ebp),%eax
402f2e:	3b c6                	cmp    %esi,%eax
402f30:	89 0d 38 f4 42 00    	mov    %ecx,0x42f438
402f36:	0f 87 51 01 00 00    	ja     0x40308d
402f3c:	f6 45 08 08          	testb  $0x8,0x8(%ebp)
402f40:	75 06                	jne    0x402f48
402f42:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
402f46:	75 42                	jne    0x402f8a
402f48:	ff 45 f8             	incl   -0x8(%ebp)
402f4b:	8d 70 fc             	lea    -0x4(%eax),%esi
402f4e:	3b fe                	cmp    %esi,%edi
402f50:	76 11                	jbe    0x402f63
402f52:	8b fe                	mov    %esi,%edi
402f54:	eb 0d                	jmp    0x402f63
402f56:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
402f5a:	75 07                	jne    0x402f63
402f5c:	53                   	push   %ebx
402f5d:	e8 13 fe ff ff       	call   0x402d75
402f62:	59                   	pop    %ecx
402f63:	3b 35 50 94 42 00    	cmp    0x429450,%esi
402f69:	73 11                	jae    0x402f7c
402f6b:	57                   	push   %edi
402f6c:	68 40 14 42 00       	push   $0x421440
402f71:	ff 75 fc             	push   -0x4(%ebp)
402f74:	e8 3c 36 00 00       	call   0x4065b5
402f79:	89 45 fc             	mov    %eax,-0x4(%ebp)
402f7c:	01 3d 40 94 42 00    	add    %edi,0x429440
402f82:	2b f7                	sub    %edi,%esi
402f84:	0f 85 18 ff ff ff    	jne    0x402ea2
402f8a:	6a 01                	push   $0x1
402f8c:	e8 e4 fd ff ff       	call   0x402d75
402f91:	39 1d 38 f4 42 00    	cmp    %ebx,0x42f438
402f97:	59                   	pop    %ecx
402f98:	0f 84 ef 00 00 00    	je     0x40308d
402f9e:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
402fa1:	74 2a                	je     0x402fcd
402fa3:	ff 35 40 94 42 00    	push   0x429440
402fa9:	e8 b3 03 00 00       	call   0x403361
402fae:	8d 45 08             	lea    0x8(%ebp),%eax
402fb1:	6a 04                	push   $0x4
402fb3:	50                   	push   %eax
402fb4:	e8 92 03 00 00       	call   0x40334b
402fb9:	85 c0                	test   %eax,%eax
402fbb:	0f 84 cc 00 00 00    	je     0x40308d
402fc1:	8b 45 fc             	mov    -0x4(%ebp),%eax
402fc4:	3b 45 08             	cmp    0x8(%ebp),%eax
402fc7:	0f 85 c0 00 00 00    	jne    0x40308d
402fcd:	ff 75 f0             	push   -0x10(%ebp)
402fd0:	6a 40                	push   $0x40
402fd2:	ff 15 58 81 40 00    	call   *0x408158
402fd8:	8b f0                	mov    %eax,%esi
402fda:	6a 08                	push   $0x8
402fdc:	b8 30 d4 40 00       	mov    $0x40d430,%eax
402fe1:	5f                   	pop    %edi
402fe2:	a3 38 54 41 00       	mov    %eax,0x415438
402fe7:	a3 34 54 41 00       	mov    %eax,0x415434
402fec:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
402ff2:	68 00 64 43 00       	push   $0x436400
402ff7:	50                   	push   %eax
402ff8:	89 3d 90 b8 40 00    	mov    %edi,0x40b890
402ffe:	89 1d ac bd 40 00    	mov    %ebx,0x40bdac
403004:	89 1d a8 bd 40 00    	mov    %ebx,0x40bda8
40300a:	c7 05 30 54 41 00 30 	movl   $0x415430,0x415430
403011:	54 41 00
403014:	e8 15 2d 00 00       	call   0x405d2e
403019:	53                   	push   %ebx
40301a:	68 00 01 00 04       	push   $0x4000100
40301f:	6a 02                	push   $0x2
403021:	53                   	push   %ebx
403022:	53                   	push   %ebx
403023:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
403029:	68 00 00 00 c0       	push   $0xc0000000
40302e:	50                   	push   %eax
40302f:	ff 15 74 80 40 00    	call   *0x408074
403035:	83 f8 ff             	cmp    $0xffffffff,%eax
403038:	a3 1c a0 40 00       	mov    %eax,0x40a01c
40303d:	75 14                	jne    0x403053
40303f:	b8 30 a1 40 00       	mov    $0x40a130,%eax
403044:	e9 8a 00 00 00       	jmp    0x4030d3
403049:	6a 01                	push   $0x1
40304b:	e8 25 fd ff ff       	call   0x402d75
403050:	59                   	pop    %ecx
403051:	eb 3a                	jmp    0x40308d
403053:	a1 38 f4 42 00       	mov    0x42f438,%eax
403058:	83 c0 1c             	add    $0x1c,%eax
40305b:	50                   	push   %eax
40305c:	e8 00 03 00 00       	call   0x403361
403061:	8b 4d dc             	mov    -0x24(%ebp),%ecx
403064:	ff 75 f0             	push   -0x10(%ebp)
403067:	f7 d1                	not    %ecx
403069:	83 e1 04             	and    $0x4,%ecx
40306c:	a3 54 94 42 00       	mov    %eax,0x429454
403071:	2b c1                	sub    %ecx,%eax
403073:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403076:	56                   	push   %esi
403077:	53                   	push   %ebx
403078:	8d 44 08 e4          	lea    -0x1c(%eax,%ecx,1),%eax
40307c:	6a ff                	push   $0xffffffff
40307e:	a3 48 94 42 00       	mov    %eax,0x429448
403083:	e8 52 00 00 00       	call   0x4030da
403088:	3b 45 f0             	cmp    -0x10(%ebp),%eax
40308b:	74 07                	je     0x403094
40308d:	b8 60 a0 40 00       	mov    $0x40a060,%eax
403092:	eb 3f                	jmp    0x4030d3
403094:	f6 45 dc 01          	testb  $0x1,-0x24(%ebp)
403098:	89 35 34 f4 42 00    	mov    %esi,0x42f434
40309e:	8b 06                	mov    (%esi),%eax
4030a0:	a3 3c f4 42 00       	mov    %eax,0x42f43c
4030a5:	74 06                	je     0x4030ad
4030a7:	ff 05 40 f4 42 00    	incl   0x42f440
4030ad:	8d 46 44             	lea    0x44(%esi),%eax
4030b0:	8b cf                	mov    %edi,%ecx
4030b2:	2b c7                	sub    %edi,%eax
4030b4:	01 30                	add    %esi,(%eax)
4030b6:	49                   	dec    %ecx
4030b7:	75 f9                	jne    0x4030b2
4030b9:	a1 44 94 42 00       	mov    0x429444,%eax
4030be:	6a 40                	push   $0x40
4030c0:	89 46 3c             	mov    %eax,0x3c(%esi)
4030c3:	83 c6 04             	add    $0x4,%esi
4030c6:	56                   	push   %esi
4030c7:	68 60 f4 42 00       	push   $0x42f460
4030cc:	e8 e9 2b 00 00       	call   0x405cba
4030d1:	33 c0                	xor    %eax,%eax
4030d3:	5f                   	pop    %edi
4030d4:	5e                   	pop    %esi
4030d5:	5b                   	pop    %ebx
4030d6:	c9                   	leave
4030d7:	c2 04 00             	ret    $0x4
4030da:	55                   	push   %ebp
4030db:	8b ec                	mov    %esp,%ebp
4030dd:	51                   	push   %ecx
4030de:	8b 45 08             	mov    0x8(%ebp),%eax
4030e1:	53                   	push   %ebx
4030e2:	56                   	push   %esi
4030e3:	33 f6                	xor    %esi,%esi
4030e5:	3b c6                	cmp    %esi,%eax
4030e7:	7c 1c                	jl     0x403105
4030e9:	8b 0d 98 f4 42 00    	mov    0x42f498,%ecx
4030ef:	56                   	push   %esi
4030f0:	03 c1                	add    %ecx,%eax
4030f2:	56                   	push   %esi
4030f3:	50                   	push   %eax
4030f4:	a3 44 94 42 00       	mov    %eax,0x429444
4030f9:	ff 35 1c a0 40 00    	push   0x40a01c
4030ff:	ff 15 38 81 40 00    	call   *0x408138
403105:	6a 04                	push   $0x4
403107:	e8 d6 00 00 00       	call   0x4031e2
40310c:	3b c6                	cmp    %esi,%eax
40310e:	0f 8c c8 00 00 00    	jl     0x4031dc
403114:	8d 45 08             	lea    0x8(%ebp),%eax
403117:	6a 04                	push   $0x4
403119:	50                   	push   %eax
40311a:	ff 35 1c a0 40 00    	push   0x40a01c
403120:	e8 52 2c 00 00       	call   0x405d77
403125:	85 c0                	test   %eax,%eax
403127:	0f 84 9f 00 00 00    	je     0x4031cc
40312d:	ff 75 08             	push   0x8(%ebp)
403130:	83 05 44 94 42 00 04 	addl   $0x4,0x429444
403137:	e8 a6 00 00 00       	call   0x4031e2
40313c:	8b d8                	mov    %eax,%ebx
40313e:	3b de                	cmp    %esi,%ebx
403140:	0f 8c 94 00 00 00    	jl     0x4031da
403146:	39 75 10             	cmp    %esi,0x10(%ebp)
403149:	75 5d                	jne    0x4031a8
40314b:	39 75 08             	cmp    %esi,0x8(%ebp)
40314e:	0f 8e 86 00 00 00    	jle    0x4031da
403154:	be 40 d4 41 00       	mov    $0x41d440,%esi
403159:	81 7d 08 00 40 00 00 	cmpl   $0x4000,0x8(%ebp)
403160:	8b 45 08             	mov    0x8(%ebp),%eax
403163:	7c 05                	jl     0x40316a
403165:	b8 00 40 00 00       	mov    $0x4000,%eax
40316a:	50                   	push   %eax
40316b:	56                   	push   %esi
40316c:	ff 35 1c a0 40 00    	push   0x40a01c
403172:	89 45 fc             	mov    %eax,-0x4(%ebp)
403175:	e8 fd 2b 00 00       	call   0x405d77
40317a:	85 c0                	test   %eax,%eax
40317c:	74 4e                	je     0x4031cc
40317e:	ff 75 fc             	push   -0x4(%ebp)
403181:	56                   	push   %esi
403182:	ff 75 0c             	push   0xc(%ebp)
403185:	e8 1c 2c 00 00       	call   0x405da6
40318a:	85 c0                	test   %eax,%eax
40318c:	74 16                	je     0x4031a4
40318e:	8b 45 fc             	mov    -0x4(%ebp),%eax
403191:	29 45 08             	sub    %eax,0x8(%ebp)
403194:	01 05 44 94 42 00    	add    %eax,0x429444
40319a:	03 d8                	add    %eax,%ebx
40319c:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4031a0:	7f b7                	jg     0x403159
4031a2:	eb 36                	jmp    0x4031da
4031a4:	6a fe                	push   $0xfffffffe
4031a6:	eb 26                	jmp    0x4031ce
4031a8:	8b 45 08             	mov    0x8(%ebp),%eax
4031ab:	3b 45 14             	cmp    0x14(%ebp),%eax
4031ae:	7c 03                	jl     0x4031b3
4031b0:	8b 45 14             	mov    0x14(%ebp),%eax
4031b3:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4031b6:	56                   	push   %esi
4031b7:	51                   	push   %ecx
4031b8:	50                   	push   %eax
4031b9:	ff 75 10             	push   0x10(%ebp)
4031bc:	ff 35 1c a0 40 00    	push   0x40a01c
4031c2:	ff 15 80 80 40 00    	call   *0x408080
4031c8:	85 c0                	test   %eax,%eax
4031ca:	75 05                	jne    0x4031d1
4031cc:	6a fd                	push   $0xfffffffd
4031ce:	58                   	pop    %eax
4031cf:	eb 0b                	jmp    0x4031dc
4031d1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4031d4:	01 1d 44 94 42 00    	add    %ebx,0x429444
4031da:	8b c3                	mov    %ebx,%eax
4031dc:	5e                   	pop    %esi
4031dd:	5b                   	pop    %ebx
4031de:	c9                   	leave
4031df:	c2 10 00             	ret    $0x10
4031e2:	53                   	push   %ebx
4031e3:	55                   	push   %ebp
4031e4:	56                   	push   %esi
4031e5:	8b 35 44 94 42 00    	mov    0x429444,%esi
4031eb:	2b 35 78 b8 40 00    	sub    0x40b878,%esi
4031f1:	57                   	push   %edi
4031f2:	03 74 24 14          	add    0x14(%esp),%esi
4031f6:	ff 15 90 80 40 00    	call   *0x408090
4031fc:	33 db                	xor    %ebx,%ebx
4031fe:	05 f4 01 00 00       	add    $0x1f4,%eax
403203:	3b f3                	cmp    %ebx,%esi
403205:	a3 30 f4 42 00       	mov    %eax,0x42f430
40320a:	0f 8e 2a 01 00 00    	jle    0x40333a
403210:	ff 35 54 94 42 00    	push   0x429454
403216:	e8 46 01 00 00       	call   0x403361
40321b:	53                   	push   %ebx
40321c:	53                   	push   %ebx
40321d:	ff 35 78 b8 40 00    	push   0x40b878
403223:	ff 35 1c a0 40 00    	push   0x40a01c
403229:	ff 15 38 81 40 00    	call   *0x408138
40322f:	89 35 50 94 42 00    	mov    %esi,0x429450
403235:	89 1d 40 94 42 00    	mov    %ebx,0x429440
40323b:	bd 40 54 41 00       	mov    $0x415440,%ebp
403240:	a1 48 94 42 00       	mov    0x429448,%eax
403245:	bf 00 40 00 00       	mov    $0x4000,%edi
40324a:	2b 05 54 94 42 00    	sub    0x429454,%eax
403250:	3b c7                	cmp    %edi,%eax
403252:	7f 02                	jg     0x403256
403254:	8b f8                	mov    %eax,%edi
403256:	be 40 d4 41 00       	mov    $0x41d440,%esi
40325b:	57                   	push   %edi
40325c:	56                   	push   %esi
40325d:	e8 e9 00 00 00       	call   0x40334b
403262:	85 c0                	test   %eax,%eax
403264:	0f 84 c2 00 00 00    	je     0x40332c
40326a:	01 3d 54 94 42 00    	add    %edi,0x429454
403270:	89 35 80 b8 40 00    	mov    %esi,0x40b880
403276:	89 3d 84 b8 40 00    	mov    %edi,0x40b884
40327c:	39 1d 34 f4 42 00    	cmp    %ebx,0x42f434
403282:	74 29                	je     0x4032ad
403284:	39 1d e0 f4 42 00    	cmp    %ebx,0x42f4e0
40328a:	75 21                	jne    0x4032ad
40328c:	a1 50 94 42 00       	mov    0x429450,%eax
403291:	53                   	push   %ebx
403292:	2b 05 44 94 42 00    	sub    0x429444,%eax
403298:	2b 44 24 18          	sub    0x18(%esp),%eax
40329c:	03 05 78 b8 40 00    	add    0x40b878,%eax
4032a2:	a3 40 94 42 00       	mov    %eax,0x429440
4032a7:	e8 c9 fa ff ff       	call   0x402d75
4032ac:	59                   	pop    %ecx
4032ad:	68 80 b8 40 00       	push   $0x40b880
4032b2:	89 2d 88 b8 40 00    	mov    %ebp,0x40b888
4032b8:	c7 05 8c b8 40 00 00 	movl   $0x8000,0x40b88c