407035:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40703c:	85 ff                	test   %edi,%edi
40703e:	74 0e                	je     0x40704e
407040:	8b cf                	mov    %edi,%ecx
407042:	e8 cf e1 00 00       	call   0x415216
407047:	57                   	push   %edi
407048:	e8 8a 2e 01 00       	call   0x419ed7
40704d:	59                   	pop    %ecx
40704e:	8d 8e f4 4a 00 00    	lea    0x4af4(%esi),%ecx
407054:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
407058:	e8 c6 5e 00 00       	call   0x40cf23
40705d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407061:	8d 4e 10             	lea    0x10(%esi),%ecx
407064:	e8 98 9f ff ff       	call   0x401001
407069:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40706c:	5f                   	pop    %edi
40706d:	5e                   	pop    %esi
40706e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407075:	c9                   	leave
407076:	c3                   	ret
407077:	53                   	push   %ebx
407078:	8b d9                	mov    %ecx,%ebx
40707a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40707e:	e8 12 1d 00 00       	call   0x408d95
407083:	89 93 7c 18 00 00    	mov    %edx,0x187c(%ebx)
407089:	33 d2                	xor    %edx,%edx
40708b:	89 83 78 18 00 00    	mov    %eax,0x1878(%ebx)
407091:	8b 43 08             	mov    0x8(%ebx),%eax
407094:	89 93 e8 3a 00 00    	mov    %edx,0x3ae8(%ebx)
40709a:	89 93 ec 3a 00 00    	mov    %edx,0x3aec(%ebx)
4070a0:	8a 88 20 41 00 00    	mov    0x4120(%eax),%cl
4070a6:	88 8b f6 4b 00 00    	mov    %cl,0x4bf6(%ebx)
4070ac:	3a ca                	cmp    %dl,%cl
4070ae:	74 17                	je     0x4070c7
4070b0:	56                   	push   %esi
4070b1:	57                   	push   %edi
4070b2:	6a 40                	push   $0x40
4070b4:	59                   	pop    %ecx
4070b5:	8d b0 20 40 00 00    	lea    0x4020(%eax),%esi
4070bb:	8d bb f4 4a 00 00    	lea    0x4af4(%ebx),%edi
4070c1:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4070c3:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
4070c5:	5f                   	pop    %edi
4070c6:	5e                   	pop    %esi
4070c7:	8b cb                	mov    %ebx,%ecx
4070c9:	88 93 6f 18 00 00    	mov    %dl,0x186f(%ebx)
4070cf:	88 93 f7 4b 00 00    	mov    %dl,0x4bf7(%ebx)
4070d5:	c6 83 f1 3a 00 00 01 	movb   $0x1,0x3af1(%ebx)
4070dc:	88 93 f2 3a 00 00    	mov    %dl,0x3af2(%ebx)
4070e2:	88 93 f3 3a 00 00    	mov    %dl,0x3af3(%ebx)
4070e8:	e8 da 9f 00 00       	call   0x4110c7
4070ed:	5b                   	pop    %ebx
4070ee:	c2 04 00             	ret    $0x4
4070f1:	55                   	push   %ebp
4070f2:	8b ec                	mov    %esp,%ebp
4070f4:	83 ec 4c             	sub    $0x4c,%esp
4070f7:	8b 45 08             	mov    0x8(%ebp),%eax
4070fa:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4070fe:	89 45 fc             	mov    %eax,-0x4(%ebp)
407101:	8b 45 0c             	mov    0xc(%ebp),%eax
407104:	89 45 b4             	mov    %eax,-0x4c(%ebp)
407107:	8b 45 10             	mov    0x10(%ebp),%eax
40710a:	89 45 b8             	mov    %eax,-0x48(%ebp)
40710d:	8b 45 14             	mov    0x14(%ebp),%eax
407110:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
407113:	89 45 bc             	mov    %eax,-0x44(%ebp)
407116:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
40711d:	e8 50 a2 00 00       	call   0x411372
407122:	c9                   	leave
407123:	c2 10 00             	ret    $0x10
407126:	b8 f3 92 42 00       	mov    $0x4292f3,%eax
40712b:	e8 88 2d 01 00       	call   0x419eb8
407130:	51                   	push   %ecx
407131:	53                   	push   %ebx
407132:	56                   	push   %esi
407133:	8b f1                	mov    %ecx,%esi
407135:	57                   	push   %edi
407136:	33 ff                	xor    %edi,%edi
407138:	8d 4e 10             	lea    0x10(%esi),%ecx
40713b:	89 75 f0             	mov    %esi,-0x10(%ebp)
40713e:	89 3e                	mov    %edi,(%esi)
407140:	89 7e 04             	mov    %edi,0x4(%esi)
407143:	e8 34 46 00 00       	call   0x40b77c
407148:	89 7d fc             	mov    %edi,-0x4(%ebp)
40714b:	8d be f4 4a 00 00    	lea    0x4af4(%esi),%edi
407151:	8b cf                	mov    %edi,%ecx
407153:	e8 a7 5d 00 00       	call   0x40ceff
407158:	8b 5d 08             	mov    0x8(%ebp),%ebx
40715b:	33 c0                	xor    %eax,%eax
40715d:	21 86 e4 3a 00 00    	and    %eax,0x3ae4(%esi)
407163:	68 3c a5 42 00       	push   $0x42a53c
407168:	8b cf                	mov    %edi,%ecx
40716a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40716e:	89 5e 08             	mov    %ebx,0x8(%esi)
407171:	66 89 86 f4 3a 00 00 	mov    %ax,0x3af4(%esi)
407178:	66 89 86 f8 4b 00 00 	mov    %ax,0x4bf8(%esi)
40717f:	e8 c8 5c 00 00       	call   0x40ce4c
407184:	68 00 e7 00 00       	push   $0xe700
407189:	e8 ec 30 01 00       	call   0x41a27a
40718e:	59                   	pop    %ecx
40718f:	8b c8                	mov    %eax,%ecx
407191:	89 4d 08             	mov    %ecx,0x8(%ebp)
407194:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407198:	85 c9                	test   %ecx,%ecx
40719a:	74 0b                	je     0x4071a7
40719c:	8d 46 10             	lea    0x10(%esi),%eax
40719f:	50                   	push   %eax
4071a0:	e8 f0 00 01 00       	call   0x417295
4071a5:	eb 02                	jmp    0x4071a9
4071a7:	33 c0                	xor    %eax,%eax
4071a9:	89 86 e0 3a 00 00    	mov    %eax,0x3ae0(%esi)
4071af:	8b 9b 98 72 00 00    	mov    0x7298(%ebx),%ebx
4071b5:	83 fb 08             	cmp    $0x8,%ebx
4071b8:	72 03                	jb     0x4071bd
4071ba:	6a 08                	push   $0x8
4071bc:	5b                   	pop    %ebx
4071bd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4071c0:	89 58 1c             	mov    %ebx,0x1c(%eax)
4071c3:	5f                   	pop    %edi
4071c4:	8b c6                	mov    %esi,%eax
4071c6:	5e                   	pop    %esi
4071c7:	5b                   	pop    %ebx
4071c8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4071cf:	c9                   	leave
4071d0:	c2 04 00             	ret    $0x4
4071d3:	b8 19 91 42 00       	mov    $0x429119,%eax
4071d8:	e8 db 2c 01 00       	call   0x419eb8
4071dd:	83 ec 10             	sub    $0x10,%esp
4071e0:	56                   	push   %esi
4071e1:	57                   	push   %edi
4071e2:	68 00 00 04 00       	push   $0x40000
4071e7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4071ea:	e8 e1 a0 ff ff       	call   0x4012d0
4071ef:	ff 75 e8             	push   -0x18(%ebp)
4071f2:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4071f5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4071f8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4071fc:	57                   	push   %edi
4071fd:	e8 e5 45 00 00       	call   0x40b7e7
407202:	8b f0                	mov    %eax,%esi
407204:	85 f6                	test   %esi,%esi
407206:	74 47                	je     0x40724f
407208:	53                   	push   %ebx
407209:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40720c:	83 fe ff             	cmp    $0xffffffff,%esi
40720f:	74 3d                	je     0x40724e
407211:	33 c0                	xor    %eax,%eax
407213:	3b 45 10             	cmp    0x10(%ebp),%eax
407216:	7c 08                	jl     0x407220
407218:	7f 04                	jg     0x40721e
40721a:	3b f3                	cmp    %ebx,%esi
40721c:	72 02                	jb     0x407220
40721e:	8b f3                	mov    %ebx,%esi
407220:	8b 4d 08             	mov    0x8(%ebp),%ecx
407223:	56                   	push   %esi
407224:	57                   	push   %edi
407225:	e8 25 47 00 00       	call   0x40b94f
40722a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40722e:	7c 0c                	jl     0x40723c
407230:	7f 04                	jg     0x407236
407232:	85 db                	test   %ebx,%ebx
407234:	72 06                	jb     0x40723c
407236:	2b de                	sub    %esi,%ebx
407238:	83 5d 10 00          	sbbl   $0x0,0x10(%ebp)
40723c:	ff 75 e8             	push   -0x18(%ebp)
40723f:	8b 4d 08             	mov    0x8(%ebp),%ecx
407242:	57                   	push   %edi
407243:	e8 9f 45 00 00       	call   0x40b7e7
407248:	8b f0                	mov    %eax,%esi
40724a:	85 f6                	test   %esi,%esi
40724c:	75 be                	jne    0x40720c
40724e:	5b                   	pop    %ebx
40724f:	85 ff                	test   %edi,%edi
407251:	74 07                	je     0x40725a
407253:	57                   	push   %edi
407254:	e8 89 2c 01 00       	call   0x419ee2
407259:	59                   	pop    %ecx
40725a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40725d:	5f                   	pop    %edi
40725e:	5e                   	pop    %esi
40725f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407266:	c9                   	leave
407267:	c2 0c 00             	ret    $0xc
40726a:	b8 10 93 42 00       	mov    $0x429310,%eax
40726f:	e8 44 2c 01 00       	call   0x419eb8
407274:	b8 34 10 00 00       	mov    $0x1034,%eax
407279:	e8 52 32 01 00       	call   0x41a4d0
40727e:	53                   	push   %ebx
40727f:	56                   	push   %esi
407280:	ff 75 18             	push   0x18(%ebp)
407283:	8b 75 14             	mov    0x14(%ebp),%esi
407286:	56                   	push   %esi
407287:	56                   	push   %esi
407288:	e8 1d 2f 00 00       	call   0x40a1aa
40728d:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
407293:	e8 ac 14 00 00       	call   0x408744
407298:	33 db                	xor    %ebx,%ebx
40729a:	56                   	push   %esi
40729b:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
4072a1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4072a4:	e8 13 16 00 00       	call   0x4088bc
4072a9:	84 c0                	test   %al,%al
4072ab:	75 39                	jne    0x4072e6
4072ad:	ff 75 10             	push   0x10(%ebp)
4072b0:	56                   	push   %esi
4072b1:	ff 75 0c             	push   0xc(%ebp)
4072b4:	6a 11                	push   $0x11
4072b6:	e8 36 fe ff ff       	call   0x4070f1
4072bb:	ff 75 0c             	push   0xc(%ebp)
4072be:	6a 12                	push   $0x12
4072c0:	e8 eb f1 ff ff       	call   0x4064b0
4072c5:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4072c9:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
4072cf:	e8 36 19 00 00       	call   0x408c0a
4072d4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4072d7:	5e                   	pop    %esi
4072d8:	8a c3                	mov    %bl,%al
4072da:	5b                   	pop    %ebx
4072db:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4072e2:	c9                   	leave
4072e3:	c2 14 00             	ret    $0x14
4072e6:	68 00 00 10 00       	push   $0x100000
4072eb:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4072ee:	e8 dd 9f ff ff       	call   0x4012d0
4072f3:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4072f7:	e8 78 98 00 00       	call   0x410b74
4072fc:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4072ff:	eb 0f                	jmp    0x407310
407301:	8b 4d 08             	mov    0x8(%ebp),%ecx
407304:	50                   	push   %eax
407305:	56                   	push   %esi
407306:	e8 3b 17 00 00       	call   0x408a46
40730b:	e8 64 98 00 00       	call   0x410b74
407310:	ff 75 e8             	push   -0x18(%ebp)
407313:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
407319:	56                   	push   %esi
40731a:	e8 ee 1a 00 00       	call   0x408e0d
40731f:	3b c3                	cmp    %ebx,%eax
407321:	75 de                	jne    0x407301
407323:	3b f3                	cmp    %ebx,%esi
407325:	74 07                	je     0x40732e
407327:	56                   	push   %esi
407328:	e8 b5 2b 01 00       	call   0x419ee2
40732d:	59                   	pop    %ecx
40732e:	b3 01                	mov    $0x1,%bl
407330:	eb 93                	jmp    0x4072c5
407332:	80 b9 f4 4b 00 00 00 	cmpb   $0x0,0x4bf4(%ecx)
407339:	75 2c                	jne    0x407367
40733b:	81 c1 f4 4a 00 00    	add    $0x4af4,%ecx
407341:	51                   	push   %ecx
407342:	ff 74 24 0c          	push   0xc(%esp)
407346:	6a 01                	push   $0x1
407348:	e8 7d a2 00 00       	call   0x4115ca
40734d:	84 c0                	test   %al,%al
40734f:	75 16                	jne    0x407367
407351:	6a 02                	push   $0x2
407353:	e8 11 a8 ff ff       	call   0x401b69
407358:	ff 74 24 08          	push   0x8(%esp)
40735c:	6a 06                	push   $0x6
40735e:	e8 4d f1 ff ff       	call   0x4064b0
407363:	32 c0                	xor    %al,%al
407365:	eb 02                	jmp    0x407369
407367:	b0 01                	mov    $0x1,%al
407369:	c2 08 00             	ret    $0x8
40736c:	55                   	push   %ebp
40736d:	8b ec                	mov    %esp,%ebp
40736f:	51                   	push   %ecx
407370:	57                   	push   %edi
407371:	8b f9                	mov    %ecx,%edi
407373:	8b 47 08             	mov    0x8(%edi),%eax
407376:	80 b8 c1 51 00 00 00 	cmpb   $0x0,0x51c1(%eax)
40737d:	0f 85 44 01 00 00    	jne    0x4074c7
407383:	80 b8 9b 51 00 00 00 	cmpb   $0x0,0x519b(%eax)
40738a:	53                   	push   %ebx
40738b:	56                   	push   %esi
40738c:	8b 75 08             	mov    0x8(%ebp),%esi
40738f:	ff b6 e4 57 00 00    	push   0x57e4(%esi)
407395:	0f 94 c0             	sete   %al
407398:	0f b6 c0             	movzbl %al,%eax
40739b:	50                   	push   %eax
40739c:	8d 9f f8 4b 00 00    	lea    0x4bf8(%edi),%ebx
4073a2:	53                   	push   %ebx
4073a3:	e8 b3 1e 00 00       	call   0x40925b
4073a8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4073ab:	85 c0                	test   %eax,%eax
4073ad:	0f 84 9c 00 00 00    	je     0x40744f
4073b3:	53                   	push   %ebx
4073b4:	e8 7e 1e 00 00       	call   0x409237
4073b9:	88 45 0b             	mov    %al,0xb(%ebp)
4073bc:	84 c0                	test   %al,%al
4073be:	74 43                	je     0x407403
4073c0:	53                   	push   %ebx
4073c1:	e8 0d 1c 00 00       	call   0x408fd3
4073c6:	50                   	push   %eax
4073c7:	e8 e2 1b 00 00       	call   0x408fae
4073cc:	84 c0                	test   %al,%al
4073ce:	75 2d                	jne    0x4073fd
4073d0:	6a 00                	push   $0x0
4073d2:	8d 86 f8 67 00 00    	lea    0x67f8(%esi),%eax
4073d8:	50                   	push   %eax
4073d9:	ff b6 1c 68 00 00    	push   0x681c(%esi)
4073df:	8d 45 0b             	lea    0xb(%ebp),%eax
4073e2:	ff b6 18 68 00 00    	push   0x6818(%esi)
4073e8:	50                   	push   %eax
4073e9:	68 00 08 00 00       	push   $0x800
4073ee:	53                   	push   %ebx
4073ef:	6a 00                	push   $0x0
4073f1:	ff 77 08             	push   0x8(%edi)
4073f4:	e8 7d 12 00 00       	call   0x408676
4073f9:	c6 45 0b 00          	movb   $0x0,0xb(%ebp)
4073fd:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
407401:	75 28                	jne    0x40742b
407403:	6a 01                	push   $0x1
407405:	53                   	push   %ebx
407406:	e8 d1 1e 00 00       	call   0x4092dc
40740b:	8b 47 08             	mov    0x8(%edi),%eax
40740e:	80 b8 9b 51 00 00 00 	cmpb   $0x0,0x519b(%eax)
407415:	ff b6 e4 57 00 00    	push   0x57e4(%esi)
40741b:	0f 94 c0             	sete   %al
40741e:	0f b6 c0             	movzbl %al,%eax
407421:	50                   	push   %eax
407422:	53                   	push   %ebx
407423:	e8 33 1e 00 00       	call   0x40925b
407428:	89 45 fc             	mov    %eax,-0x4(%ebp)
40742b:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40742f:	74 1e                	je     0x40744f
407431:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
407435:	74 21                	je     0x407458
407437:	8b 47 08             	mov    0x8(%edi),%eax
40743a:	80 b8 9b 51 00 00 00 	cmpb   $0x0,0x519b(%eax)
407441:	75 0c                	jne    0x40744f
407443:	ff b6 e4 57 00 00    	push   0x57e4(%esi)
407449:	53                   	push   %ebx
40744a:	e8 d0 1b 00 00       	call   0x40901f
40744f:	c6 87 f7 4b 00 00 01 	movb   $0x1,0x4bf7(%edi)
407456:	eb 22                	jmp    0x40747a
407458:	53                   	push   %ebx
407459:	8d 46 1e             	lea    0x1e(%esi),%eax
40745c:	50                   	push   %eax
40745d:	6a 13                	push   $0x13
40745f:	e8 75 f0 ff ff       	call   0x4064d9
407464:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
407469:	e8 92 9b ff ff       	call   0x401000
40746e:	6a 09                	push   $0x9
407470:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
407475:	e8 90 ef ff ff       	call   0x40640a
40747a:	80 bf f7 4b 00 00 00 	cmpb   $0x0,0x4bf7(%edi)
407481:	74 42                	je     0x4074c5
407483:	8b 7f 08             	mov    0x8(%edi),%edi
407486:	8b 87 94 62 00 00    	mov    0x6294(%edi),%eax