407065:	50                   	push   %eax
407066:	e8 d1 54 00 00       	call   0x40c53c
40706b:	c3                   	ret
40706c:	53                   	push   %ebx
40706d:	56                   	push   %esi
40706e:	8b f0                	mov    %eax,%esi
407070:	8b 15 6c 4c 40 00    	mov    0x404c6c,%edx
407076:	33 c0                	xor    %eax,%eax
407078:	e8 83 31 00 00       	call   0x40a200
40707d:	8b d8                	mov    %eax,%ebx
40707f:	c7 43 35 20 00 cc 00 	movl   $0xcc0020,0x35(%ebx)
407086:	85 f6                	test   %esi,%esi
407088:	74 0d                	je     0x407097
40708a:	8b c3                	mov    %ebx,%eax
40708c:	8b d6                	mov    %esi,%edx
40708e:	e8 95 37 00 00       	call   0x40a828
407093:	c6 43 4a 01          	movb   $0x1,0x4a(%ebx)
407097:	8b c3                	mov    %ebx,%eax
407099:	5e                   	pop    %esi
40709a:	5b                   	pop    %ebx
40709b:	c3                   	ret
40709c:	8b 15 94 4c 40 00    	mov    0x404c94,%edx
4070a2:	33 c0                	xor    %eax,%eax
4070a4:	e8 57 31 00 00       	call   0x40a200
4070a9:	c3                   	ret
4070aa:	8b c0                	mov    %eax,%eax
4070ac:	31 c9                	xor    %ecx,%ecx
4070ae:	41                   	inc    %ecx
4070af:	88 0d 9c 98 42 00    	mov    %cl,0x42989c
4070b5:	50                   	push   %eax
4070b6:	ba 64 62 42 00       	mov    $0x426264,%edx
4070bb:	31 c0                	xor    %eax,%eax
4070bd:	50                   	push   %eax
4070be:	e8 f9 3a 00 00       	call   0x40abbc
4070c3:	80 48 36 10          	orb    $0x10,0x36(%eax)
4070c7:	66 c7 40 26 ca 90    	movw   $0x90ca,0x26(%eax)
4070cd:	c6 40 2a 04          	movb   $0x4,0x2a(%eax)
4070d1:	e8 80 00 00 00       	call   0x407156
4070d6:	56                   	push   %esi
4070d7:	6a 00                	push   $0x0
4070d9:	ff 70 1c             	push   0x1c(%eax)
4070dc:	e8 97 d9 ff ff       	call   0x404a78
4070e1:	be e0 49 40 00       	mov    $0x4049e0,%esi
4070e6:	91                   	xchg   %eax,%ecx
4070e7:	b8 30 f0 00 00       	mov    $0xf030,%eax
4070ec:	99                   	cltd
4070ed:	52                   	push   %edx
4070ee:	50                   	push   %eax
4070ef:	51                   	push   %ecx
4070f0:	52                   	push   %edx
4070f1:	2c 20                	sub    $0x20,%al
4070f3:	50                   	push   %eax
4070f4:	51                   	push   %ecx
4070f5:	52                   	push   %edx
4070f6:	2c 10                	sub    $0x10,%al
4070f8:	50                   	push   %eax
4070f9:	51                   	push   %ecx
4070fa:	6a 01                	push   $0x1
4070fc:	66 b8 20 f1          	mov    $0xf120,%ax
407100:	50                   	push   %eax
407101:	51                   	push   %ecx
407102:	e8 f9 d8 ff ff       	call   0x404a00
407107:	ff d6                	call   *%esi
407109:	ff d6                	call   *%esi
40710b:	ff d6                	call   *%esi
40710d:	5e                   	pop    %esi
40710e:	31 c0                	xor    %eax,%eax
407110:	c3                   	ret
407111:	66 81 7a 04 12 01    	cmpw   $0x112,0x4(%edx)
407117:	75 f5                	jne    0x40710e
407119:	8b 52 08             	mov    0x8(%edx),%edx
40711c:	66 81 e2 f0 ff       	and    $0xfff0,%dx
407121:	66 81 fa 60 f0       	cmp    $0xf060,%dx
407126:	75 e6                	jne    0x40710e
407128:	51                   	push   %ecx
407129:	8b 48 44             	mov    0x44(%eax),%ecx
40712c:	e3 25                	jecxz  0x407153
40712e:	91                   	xchg   %eax,%ecx
40712f:	8b 48 1c             	mov    0x1c(%eax),%ecx
407132:	e3 1f                	jecxz  0x407153
407134:	8b 40 18             	mov    0x18(%eax),%eax
407137:	8b 08                	mov    (%eax),%ecx
407139:	e3 18                	jecxz  0x407153
40713b:	91                   	xchg   %eax,%ecx
40713c:	50                   	push   %eax
40713d:	e8 ea 49 00 00       	call   0x40bb2c
407142:	85 c0                	test   %eax,%eax
407144:	58                   	pop    %eax
407145:	74 0c                	je     0x407153
407147:	e8 60 2e 00 00       	call   0x409fac
40714c:	59                   	pop    %ecx
40714d:	31 c0                	xor    %eax,%eax
40714f:	89 01                	mov    %eax,(%ecx)
407151:	40                   	inc    %eax
407152:	c3                   	ret
407153:	59                   	pop    %ecx
407154:	eb b8                	jmp    0x40710e
407156:	8f 40 7c             	pop    0x7c(%eax)
407159:	50                   	push   %eax
40715a:	e8 22 00 00 00       	call   0x407181
40715f:	66 83 7a 04 07       	cmpw   $0x7,0x4(%edx)
407164:	75 ab                	jne    0x407111
407166:	8b 88 f2 00 00 00    	mov    0xf2(%eax),%ecx
40716c:	e3 a0                	jecxz  0x40710e
40716e:	91                   	xchg   %eax,%ecx
40716f:	50                   	push   %eax
407170:	e8 ff e1 ff ff       	call   0x405374
407175:	58                   	pop    %eax
407176:	ff 70 1c             	push   0x1c(%eax)
407179:	e8 9a d9 ff ff       	call   0x404b18
40717e:	b0 01                	mov    $0x1,%al
407180:	c3                   	ret
407181:	5a                   	pop    %edx
407182:	e8 b1 28 00 00       	call   0x409a38
407187:	58                   	pop    %eax
407188:	5a                   	pop    %edx
407189:	50                   	push   %eax
40718a:	e8 dd 46 00 00       	call   0x40b86c
40718f:	58                   	pop    %eax
407190:	c3                   	ret
407191:	8d 40 00             	lea    0x0(%eax),%eax
407194:	33 c9                	xor    %ecx,%ecx
407196:	8b 42 04             	mov    0x4(%edx),%eax
407199:	3d 00 01 00 00       	cmp    $0x100,%eax
40719e:	74 0e                	je     0x4071ae
4071a0:	3d 01 01 00 00       	cmp    $0x101,%eax
4071a5:	74 07                	je     0x4071ae
4071a7:	3d 02 01 00 00       	cmp    $0x102,%eax
4071ac:	75 0d                	jne    0x4071bb
4071ae:	83 7a 08 0d          	cmpl   $0xd,0x8(%edx)
4071b2:	75 07                	jne    0x4071bb
4071b4:	c7 42 08 20 00 00 00 	movl   $0x20,0x8(%edx)
4071bb:	8b c1                	mov    %ecx,%eax
4071bd:	c3                   	ret
4071be:	8b c0                	mov    %eax,%eax
4071c0:	33 c0                	xor    %eax,%eax
4071c2:	81 7a 04 03 02 00 00 	cmpl   $0x203,0x4(%edx)
4071c9:	75 07                	jne    0x4071d2
4071cb:	c7 42 04 01 02 00 00 	movl   $0x201,0x4(%edx)
4071d2:	c3                   	ret
4071d3:	90                   	nop
4071d4:	53                   	push   %ebx
4071d5:	56                   	push   %esi
4071d6:	57                   	push   %edi
4071d7:	83 c4 b4             	add    $0xffffffb4,%esp
4071da:	89 0c 24             	mov    %ecx,(%esp)
4071dd:	8b f2                	mov    %edx,%esi
4071df:	8b f8                	mov    %eax,%edi
4071e1:	33 db                	xor    %ebx,%ebx
4071e3:	8b 46 04             	mov    0x4(%esi),%eax
4071e6:	83 f8 0f             	cmp    $0xf,%eax
4071e9:	74 0b                	je     0x4071f6
4071eb:	3d 17 03 00 00       	cmp    $0x317,%eax
4071f0:	0f 85 9b 00 00 00    	jne    0x407291
4071f6:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
4071fc:	89 44 24 08          	mov    %eax,0x8(%esp)
407200:	8b 46 08             	mov    0x8(%esi),%eax
407203:	89 87 98 00 00 00    	mov    %eax,0x98(%edi)
407209:	85 c0                	test   %eax,%eax
40720b:	75 14                	jne    0x407221
40720d:	8d 44 24 0c          	lea    0xc(%esp),%eax
407211:	50                   	push   %eax
407212:	8b 47 1c             	mov    0x1c(%edi),%eax
407215:	50                   	push   %eax
407216:	e8 a5 d7 ff ff       	call   0x4049c0
40721b:	89 87 98 00 00 00    	mov    %eax,0x98(%edi)
407221:	ba 20 00 00 00       	mov    $0x20,%edx
407226:	8b c7                	mov    %edi,%eax
407228:	e8 7f 17 00 00       	call   0x4089ac
40722d:	89 44 24 04          	mov    %eax,0x4(%esp)
407231:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
407236:	74 34                	je     0x40726c
407238:	8b 44 24 04          	mov    0x4(%esp),%eax
40723c:	8a 15 9c 72 40 00    	mov    0x40729c,%dl
407242:	88 50 36             	mov    %dl,0x36(%eax)
407245:	0f be 87 b3 00 00 00 	movsbl 0xb3(%edi),%eax
40724c:	50                   	push   %eax
40724d:	0f be 87 b1 00 00 00 	movsbl 0xb1(%edi),%eax
407254:	50                   	push   %eax
407255:	8b 44 24 0c          	mov    0xc(%esp),%eax
407259:	8b 8f 98 00 00 00    	mov    0x98(%edi),%ecx
40725f:	8b 97 d2 00 00 00    	mov    0xd2(%edi),%edx
407265:	e8 b6 15 00 00       	call   0x408820
40726a:	b3 01                	mov    $0x1,%bl
40726c:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
407270:	75 0e                	jne    0x407280
407272:	8d 44 24 0c          	lea    0xc(%esp),%eax
407276:	50                   	push   %eax
407277:	8b 47 1c             	mov    0x1c(%edi),%eax
40727a:	50                   	push   %eax
40727b:	e8 90 d7 ff ff       	call   0x404a10
407280:	8b 44 24 08          	mov    0x8(%esp),%eax
407284:	89 87 98 00 00 00    	mov    %eax,0x98(%edi)
40728a:	8b 04 24             	mov    (%esp),%eax
40728d:	33 d2                	xor    %edx,%edx
40728f:	89 10                	mov    %edx,(%eax)
407291:	8b c3                	mov    %ebx,%eax
407293:	83 c4 4c             	add    $0x4c,%esp
407296:	5f                   	pop    %edi
407297:	5e                   	pop    %esi
407298:	5b                   	pop    %ebx
407299:	c3                   	ret
40729a:	00 00                	add    %al,(%eax)
40729c:	08 00                	or     %al,(%eax)
40729e:	00 00                	add    %al,(%eax)
4072a0:	53                   	push   %ebx
4072a1:	56                   	push   %esi
4072a2:	57                   	push   %edi
4072a3:	51                   	push   %ecx
4072a4:	8b f1                	mov    %ecx,%esi
4072a6:	8b da                	mov    %edx,%ebx
4072a8:	8b f8                	mov    %eax,%edi
4072aa:	33 d2                	xor    %edx,%edx
4072ac:	8b c7                	mov    %edi,%eax
4072ae:	e8 5d 68 00 00       	call   0x40db10
4072b3:	89 04 24             	mov    %eax,(%esp)
4072b6:	8b 04 24             	mov    (%esp),%eax
4072b9:	8b cb                	mov    %ebx,%ecx
4072bb:	ba 20 00 00 00       	mov    $0x20,%edx
4072c0:	e8 57 17 00 00       	call   0x408a1c
4072c5:	ba d4 71 40 00       	mov    $0x4071d4,%edx
4072ca:	8b 04 24             	mov    (%esp),%eax
4072cd:	e8 66 27 00 00       	call   0x409a38
4072d2:	ba ec ad 40 00       	mov    $0x40adec,%edx
4072d7:	8b 04 24             	mov    (%esp),%eax
4072da:	e8 59 27 00 00       	call   0x409a38
4072df:	ba 20 00 00 00       	mov    $0x20,%edx
4072e4:	b9 20 00 00 00       	mov    $0x20,%ecx
4072e9:	85 db                	test   %ebx,%ebx
4072eb:	74 06                	je     0x4072f3
4072ed:	8b 53 2e             	mov    0x2e(%ebx),%edx
4072f0:	8b 4b 32             	mov    0x32(%ebx),%ecx
4072f3:	8b 04 24             	mov    (%esp),%eax
4072f6:	05 b6 00 00 00       	add    $0xb6,%eax
4072fb:	03 10                	add    (%eax),%edx
4072fd:	89 50 08             	mov    %edx,0x8(%eax)
407300:	03 48 04             	add    0x4(%eax),%ecx
407303:	89 48 0c             	mov    %ecx,0xc(%eax)
407306:	8b 04 24             	mov    (%esp),%eax
407309:	8b d6                	mov    %esi,%edx
40730b:	e8 34 50 00 00       	call   0x40c344
407310:	8b 04 24             	mov    (%esp),%eax
407313:	5a                   	pop    %edx
407314:	5f                   	pop    %edi
407315:	5e                   	pop    %esi
407316:	5b                   	pop    %ebx
407317:	c3                   	ret
407318:	55                   	push   %ebp
407319:	8b ec                	mov    %esp,%ebp
40731b:	83 c4 d4             	add    $0xffffffd4,%esp
40731e:	53                   	push   %ebx
40731f:	56                   	push   %esi
407320:	57                   	push   %edi
407321:	8b 75 0c             	mov    0xc(%ebp),%esi
407324:	8b 5d 08             	mov    0x8(%ebp),%ebx
407327:	33 c0                	xor    %eax,%eax
407329:	89 45 f8             	mov    %eax,-0x8(%ebp)
40732c:	53                   	push   %ebx
40732d:	e8 36 d7 ff ff       	call   0x404a68
407332:	8b f8                	mov    %eax,%edi
407334:	85 ff                	test   %edi,%edi
407336:	74 0b                	je     0x407343
407338:	6a eb                	push   $0xffffffeb
40733a:	57                   	push   %edi
40733b:	e8 6c dc ff ff       	call   0x404fac
407340:	89 45 f8             	mov    %eax,-0x8(%ebp)
407343:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
407347:	0f 84 b8 01 00 00    	je     0x407505
40734d:	8b 45 f8             	mov    -0x8(%ebp),%eax
407350:	8b 40 1c             	mov    0x1c(%eax),%eax
407353:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407356:	89 75 d8             	mov    %esi,-0x28(%ebp)
407359:	8b 45 10             	mov    0x10(%ebp),%eax
40735c:	89 45 dc             	mov    %eax,-0x24(%ebp)
40735f:	8b 45 14             	mov    0x14(%ebp),%eax
407362:	89 45 e0             	mov    %eax,-0x20(%ebp)
407365:	8b 45 f8             	mov    -0x8(%ebp),%eax
407368:	e8 d3 4b 00 00       	call   0x40bf40
40736d:	89 45 f4             	mov    %eax,-0xc(%ebp)
407370:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407373:	8d 55 d4             	lea    -0x2c(%ebp),%edx
407376:	8b 45 f8             	mov    -0x8(%ebp),%eax
407379:	ff 15 5c 62 42 00    	call   *0x42625c
40737f:	84 c0                	test   %al,%al
407381:	0f 85 90 01 00 00    	jne    0x407517
407387:	8b 45 f8             	mov    -0x8(%ebp),%eax
40738a:	3b 58 1c             	cmp    0x1c(%eax),%ebx
40738d:	74 4d                	je     0x4073dc
40738f:	83 3d 98 98 42 00 00 	cmpl   $0x0,0x429898
407396:	74 1b                	je     0x4073b3
407398:	a1 98 98 42 00       	mov    0x429898,%eax
40739d:	8b 78 50             	mov    0x50(%eax),%edi
4073a0:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4073a3:	8d 55 d4             	lea    -0x2c(%ebp),%edx
4073a6:	8b 47 04             	mov    0x4(%edi),%eax
4073a9:	ff 17                	call   *(%edi)
4073ab:	84 c0                	test   %al,%al
4073ad:	0f 85 64 01 00 00    	jne    0x407517
4073b3:	a1 98 98 42 00       	mov    0x429898,%eax
4073b8:	3b 45 f4             	cmp    -0xc(%ebp),%eax
4073bb:	74 1f                	je     0x4073dc
4073bd:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
4073c1:	74 19                	je     0x4073dc
4073c3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4073c6:	8b 78 50             	mov    0x50(%eax),%edi
4073c9:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4073cc:	8d 55 d4             	lea    -0x2c(%ebp),%edx
4073cf:	8b 47 04             	mov    0x4(%edi),%eax
4073d2:	ff 17                	call   *(%edi)
4073d4:	84 c0                	test   %al,%al
4073d6:	0f 85 3b 01 00 00    	jne    0x407517
4073dc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4073df:	e8 5c 60 00 00       	call   0x40d440
4073e4:	84 c0                	test   %al,%al
4073e6:	0f 84 c9 00 00 00    	je     0x4074b5
4073ec:	81 fe 00 01 00 00    	cmp    $0x100,%esi
4073f2:	74 14                	je     0x407408
4073f4:	81 fe 01 01 00 00    	cmp    $0x101,%esi
4073fa:	74 0c                	je     0x407408
4073fc:	81 fe 02 01 00 00    	cmp    $0x102,%esi
407402:	0f 85 ad 00 00 00    	jne    0x4074b5
407408:	33 c0                	xor    %eax,%eax
40740a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40740d:	83 7d 10 09          	cmpl   $0x9,0x10(%ebp)
407411:	75 24                	jne    0x407437
407413:	81 ee 00 01 00 00    	sub    $0x100,%esi
407419:	0f 85 f8 00 00 00    	jne    0x407517
40741f:	8b 75 f8             	mov    -0x8(%ebp),%esi
407422:	33 c9                	xor    %ecx,%ecx
407424:	8b 55 10             	mov    0x10(%ebp),%edx
407427:	8b 45 f8             	mov    -0x8(%ebp),%eax
40742a:	ff 56 70             	call   *0x70(%esi)
40742d:	84 c0                	test   %al,%al
40742f:	0f 85 e2 00 00 00    	jne    0x407517
407435:	eb 6d                	jmp    0x4074a4
407437:	81 fe 02 01 00 00    	cmp    $0x102,%esi
40743d:	75 65                	jne    0x4074a4
40743f:	83 7d 10 1b          	cmpl   $0x1b,0x10(%ebp)
407443:	74 06                	je     0x40744b
407445:	83 7d 10 0d          	cmpl   $0xd,0x10(%ebp)
407449:	75 59                	jne    0x4074a4
40744b:	6a 00                	push   $0x0
40744d:	6a 00                	push   $0x0
40744f:	68 57 01 00 00       	push   $0x157
407454:	8b 45 f8             	mov    -0x8(%ebp),%eax
407457:	50                   	push   %eax
407458:	e8 df 50 00 00       	call   0x40c53c
40745d:	85 c0                	test   %eax,%eax
40745f:	74 43                	je     0x4074a4
407461:	6a 00                	push   $0x0