404019:	84 c0                	test   %al,%al
40401b:	74 10                	je     0x40402d
40401d:	c6 05 60 d5 40 00 01 	movb   $0x1,0x40d560
404024:	83 fe 04             	cmp    $0x4,%esi
404027:	7f 04                	jg     0x40402d
404029:	b0 01                	mov    $0x1,%al
40402b:	eb 02                	jmp    0x40402f
40402d:	32 c0                	xor    %al,%al
40402f:	5f                   	pop    %edi
404030:	5e                   	pop    %esi
404031:	c3                   	ret
404032:	8b ff                	mov    %edi,%edi
404034:	55                   	push   %ebp
404035:	8b ec                	mov    %esp,%ebp
404037:	83 e4 f8             	and    $0xfffffff8,%esp
40403a:	83 ec 70             	sub    $0x70,%esp
40403d:	33 c0                	xor    %eax,%eax
40403f:	56                   	push   %esi
404040:	57                   	push   %edi
404041:	8b f1                	mov    %ecx,%esi
404043:	50                   	push   %eax
404044:	50                   	push   %eax
404045:	88 06                	mov    %al,(%esi)
404047:	ff 15 18 e0 40 00    	call   *0x40e018
40404d:	8b f8                	mov    %eax,%edi
40404f:	81 ff 06 01 01 80    	cmp    $0x80010106,%edi
404055:	74 07                	je     0x40405e
404057:	85 ff                	test   %edi,%edi
404059:	78 0b                	js     0x404066
40405b:	c6 06 01             	movb   $0x1,(%esi)
40405e:	5f                   	pop    %edi
40405f:	8b c6                	mov    %esi,%eax
404061:	5e                   	pop    %esi
404062:	8b e5                	mov    %ebp,%esp
404064:	5d                   	pop    %ebp
404065:	c3                   	ret
404066:	8b 0d 00 d0 40 00    	mov    0x40d000,%ecx
40406c:	81 f9 00 d0 40 00    	cmp    $0x40d000,%ecx
404072:	74 19                	je     0x40408d
404074:	80 79 19 02          	cmpb   $0x2,0x19(%ecx)
404078:	72 13                	jb     0x40408d
40407a:	ff 71 14             	push   0x14(%ecx)
40407d:	ba 3c 18 40 00       	mov    $0x40183c,%edx
404082:	ff 71 10             	push   0x10(%ecx)
404085:	6a 0a                	push   $0xa
404087:	59                   	pop    %ecx
404088:	e8 00 ff ff ff       	call   0x403f8d
40408d:	57                   	push   %edi
40408e:	8d 4c 24 10          	lea    0x10(%esp),%ecx
404092:	e8 d7 fd ff ff       	call   0x403e6e
404097:	68 a4 c6 40 00       	push   $0x40c6a4
40409c:	8d 44 24 10          	lea    0x10(%esp),%eax
4040a0:	50                   	push   %eax
4040a1:	e8 94 6a 00 00       	call   0x40ab3a
4040a6:	cc                   	int3
4040a7:	80 39 00             	cmpb   $0x0,(%ecx)
4040aa:	74 06                	je     0x4040b2
4040ac:	ff 25 24 e0 40 00    	jmp    *0x40e024
4040b2:	c3                   	ret
4040b3:	8b ff                	mov    %edi,%edi
4040b5:	55                   	push   %ebp
4040b6:	8b ec                	mov    %esp,%ebp
4040b8:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
4040be:	a1 50 d1 40 00       	mov    0x40d150,%eax
4040c3:	33 c5                	xor    %ebp,%eax
4040c5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4040c8:	56                   	push   %esi
4040c9:	57                   	push   %edi
4040ca:	be 04 01 00 00       	mov    $0x104,%esi
4040cf:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4040d5:	56                   	push   %esi
4040d6:	50                   	push   %eax
4040d7:	6a 00                	push   $0x0
4040d9:	ff 15 8c e0 40 00    	call   *0x40e08c
4040df:	85 c0                	test   %eax,%eax
4040e1:	0f 84 9b 00 00 00    	je     0x404182
4040e7:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4040ed:	6a 5c                	push   $0x5c
4040ef:	50                   	push   %eax
4040f0:	ff 15 98 e1 40 00    	call   *0x40e198
4040f6:	59                   	pop    %ecx
4040f7:	59                   	pop    %ecx
4040f8:	85 c0                	test   %eax,%eax
4040fa:	0f 84 82 00 00 00    	je     0x404182
404100:	83 c0 02             	add    $0x2,%eax
404103:	8d 95 f4 fd ff ff    	lea    -0x20c(%ebp),%edx
404109:	8b c8                	mov    %eax,%ecx
40410b:	2b ca                	sub    %edx,%ecx
40410d:	d1 f9                	sar    $1,%ecx
40410f:	68 9c 17 40 00       	push   $0x40179c
404114:	2b f1                	sub    %ecx,%esi
404116:	56                   	push   %esi
404117:	50                   	push   %eax
404118:	ff 15 70 e1 40 00    	call   *0x40e170
40411e:	83 c4 0c             	add    $0xc,%esp
404121:	85 c0                	test   %eax,%eax
404123:	75 5d                	jne    0x404182
404125:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40412b:	50                   	push   %eax
40412c:	ff 15 98 e0 40 00    	call   *0x40e098
404132:	8b f0                	mov    %eax,%esi
404134:	85 f6                	test   %esi,%esi
404136:	74 4a                	je     0x404182
404138:	68 c0 17 40 00       	push   $0x4017c0
40413d:	56                   	push   %esi
40413e:	ff 15 80 e0 40 00    	call   *0x40e080
404144:	68 e0 17 40 00       	push   $0x4017e0
404149:	56                   	push   %esi
40414a:	8b f8                	mov    %eax,%edi
40414c:	ff 15 80 e0 40 00    	call   *0x40e080
404152:	a3 00 d6 40 00       	mov    %eax,0x40d600
404157:	85 ff                	test   %edi,%edi
404159:	74 20                	je     0x40417b
40415b:	85 c0                	test   %eax,%eax
40415d:	74 1c                	je     0x40417b
40415f:	68 d0 d5 40 00       	push   $0x40d5d0
404164:	8b cf                	mov    %edi,%ecx
404166:	ff 15 f0 e1 40 00    	call   *0x40e1f0
40416c:	ff d7                	call   *%edi
40416e:	a3 68 d5 40 00       	mov    %eax,0x40d568
404173:	85 c0                	test   %eax,%eax
404175:	74 04                	je     0x40417b
404177:	8b c6                	mov    %esi,%eax
404179:	eb 09                	jmp    0x404184
40417b:	56                   	push   %esi
40417c:	ff 15 84 e0 40 00    	call   *0x40e084
404182:	33 c0                	xor    %eax,%eax
404184:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404187:	5f                   	pop    %edi
404188:	33 cd                	xor    %ebp,%ecx
40418a:	5e                   	pop    %esi
40418b:	e8 d0 5c 00 00       	call   0x409e60
404190:	c9                   	leave
404191:	c3                   	ret
404192:	8b ff                	mov    %edi,%edi
404194:	55                   	push   %ebp
404195:	8b ec                	mov    %esp,%ebp
404197:	51                   	push   %ecx
404198:	51                   	push   %ecx
404199:	a1 50 d1 40 00       	mov    0x40d150,%eax
40419e:	33 c5                	xor    %ebp,%eax
4041a0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4041a3:	53                   	push   %ebx
4041a4:	56                   	push   %esi
4041a5:	8b 75 0c             	mov    0xc(%ebp),%esi
4041a8:	8d 45 f8             	lea    -0x8(%ebp),%eax
4041ab:	57                   	push   %edi
4041ac:	6a 04                	push   $0x4
4041ae:	50                   	push   %eax
4041af:	33 ff                	xor    %edi,%edi
4041b1:	6a 36                	push   $0x36
4041b3:	47                   	inc    %edi
4041b4:	6a ff                	push   $0xffffffff
4041b6:	89 7d f8             	mov    %edi,-0x8(%ebp)
4041b9:	ff 15 e4 e1 40 00    	call   *0x40e1e4
4041bf:	85 c0                	test   %eax,%eax
4041c1:	78 39                	js     0x4041fc
4041c3:	57                   	push   %edi
4041c4:	ff 15 40 e0 40 00    	call   *0x40e040
4041ca:	33 db                	xor    %ebx,%ebx
4041cc:	53                   	push   %ebx
4041cd:	53                   	push   %ebx
4041ce:	57                   	push   %edi
4041cf:	53                   	push   %ebx
4041d0:	ff 15 60 e0 40 00    	call   *0x40e060
4041d6:	85 c0                	test   %eax,%eax
4041d8:	74 22                	je     0x4041fc
4041da:	8b 4d 08             	mov    0x8(%ebp),%ecx
4041dd:	8b d6                	mov    %esi,%edx
4041df:	e8 eb fd ff ff       	call   0x403fcf
4041e4:	84 c0                	test   %al,%al
4041e6:	75 07                	jne    0x4041ef
4041e8:	b8 57 00 07 80       	mov    $0x80070057,%eax
4041ed:	eb 12                	jmp    0x404201
4041ef:	88 5d f8             	mov    %bl,-0x8(%ebp)
4041f2:	ff 75 f8             	push   -0x8(%ebp)
4041f5:	e8 af 07 00 00       	call   0x4049a9
4041fa:	eb 05                	jmp    0x404201
4041fc:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
404201:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404204:	5f                   	pop    %edi
404205:	5e                   	pop    %esi
404206:	33 cd                	xor    %ebp,%ecx
404208:	5b                   	pop    %ebx
404209:	e8 52 5c 00 00       	call   0x409e60
40420e:	c9                   	leave
40420f:	c3                   	ret
404210:	68 c4 00 00 00       	push   $0xc4
404215:	b8 0c ad 40 00       	mov    $0x40ad0c,%eax
40421a:	e8 f5 69 00 00       	call   0x40ac14
40421f:	33 db                	xor    %ebx,%ebx
404221:	8b f3                	mov    %ebx,%esi
404223:	89 75 a4             	mov    %esi,-0x5c(%ebp)
404226:	89 75 e8             	mov    %esi,-0x18(%ebp)
404229:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40422c:	38 1d 60 d5 40 00    	cmp    %bl,0x40d560
404232:	74 15                	je     0x404249
404234:	e8 7a fe ff ff       	call   0x4040b3
404239:	8b f0                	mov    %eax,%esi
40423b:	89 75 a4             	mov    %esi,-0x5c(%ebp)
40423e:	85 f6                	test   %esi,%esi
404240:	0f 84 75 01 00 00    	je     0x4043bb
404246:	89 75 e8             	mov    %esi,-0x18(%ebp)
404249:	53                   	push   %ebx
40424a:	53                   	push   %ebx
40424b:	6a 01                	push   $0x1
40424d:	53                   	push   %ebx
40424e:	ff 15 d8 e0 40 00    	call   *0x40e0d8
404254:	85 c0                	test   %eax,%eax
404256:	0f 84 64 01 00 00    	je     0x4043c0
40425c:	89 45 ec             	mov    %eax,-0x14(%ebp)
40425f:	8d 4d ab             	lea    -0x55(%ebp),%ecx
404262:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404266:	e8 c7 fd ff ff       	call   0x404032
40426b:	88 5d ac             	mov    %bl,-0x54(%ebp)
40426e:	8d 7d c8             	lea    -0x38(%ebp),%edi
404271:	89 5d b0             	mov    %ebx,-0x50(%ebp)
404274:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
404277:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
40427a:	be e0 d5 40 00       	mov    $0x40d5e0,%esi
40427f:	89 5d b8             	mov    %ebx,-0x48(%ebp)
404282:	89 5d bc             	mov    %ebx,-0x44(%ebp)
404285:	89 5d c0             	mov    %ebx,-0x40(%ebp)
404288:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
40428b:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40428e:	88 5d dc             	mov    %bl,-0x24(%ebp)
404291:	89 5d e0             	mov    %ebx,-0x20(%ebp)
404294:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
404297:	a5                   	movsl  %ds:(%esi),%es:(%edi)
404298:	a5                   	movsl  %ds:(%esi),%es:(%edi)
404299:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40429a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40429b:	bf f0 d5 40 00       	mov    $0x40d5f0,%edi
4042a0:	57                   	push   %edi
4042a1:	e8 8e 08 00 00       	call   0x404b34
4042a6:	a1 18 d7 40 00       	mov    0x40d718,%eax
4042ab:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4042ae:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4042b1:	8d 45 ac             	lea    -0x54(%ebp),%eax
4042b4:	a3 18 d7 40 00       	mov    %eax,0x40d718
4042b9:	e8 47 08 00 00       	call   0x404b05
4042be:	8d 45 ec             	lea    -0x14(%ebp),%eax
4042c1:	68 f8 d5 40 00       	push   $0x40d5f8
4042c6:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4042c9:	89 45 d8             	mov    %eax,-0x28(%ebp)
4042cc:	e8 63 08 00 00       	call   0x404b34
4042d1:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
4042d5:	80 7d ac 00          	cmpb   $0x0,-0x54(%ebp)
4042d9:	75 1d                	jne    0x4042f8
4042db:	a1 24 d7 40 00       	mov    0x40d724,%eax
4042e0:	85 c0                	test   %eax,%eax
4042e2:	75 0a                	jne    0x4042ee
4042e4:	e8 08 0a 00 00       	call   0x404cf1
4042e9:	a1 24 d7 40 00       	mov    0x40d724,%eax
4042ee:	40                   	inc    %eax
4042ef:	c6 45 ac 01          	movb   $0x1,-0x54(%ebp)
4042f3:	a3 24 d7 40 00       	mov    %eax,0x40d724
4042f8:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4042fb:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
4042ff:	e8 01 08 00 00       	call   0x404b05
404304:	a1 5c d5 40 00       	mov    0x40d55c,%eax
404309:	c6 45 dc 01          	movb   $0x1,-0x24(%ebp)
40430d:	85 c0                	test   %eax,%eax
40430f:	74 07                	je     0x404318
404311:	50                   	push   %eax
404312:	ff 15 d0 e0 40 00    	call   *0x40e0d0
404318:	6a ff                	push   $0xffffffff
40431a:	ff 75 ec             	push   -0x14(%ebp)
40431d:	ff 15 f0 e0 40 00    	call   *0x40e0f0
404323:	a1 68 d5 40 00       	mov    0x40d568,%eax
404328:	85 c0                	test   %eax,%eax
40432a:	74 11                	je     0x40433d
40432c:	8b 35 00 d6 40 00    	mov    0x40d600,%esi
404332:	8b ce                	mov    %esi,%ecx
404334:	50                   	push   %eax
404335:	ff 15 f0 e1 40 00    	call   *0x40e1f0
40433b:	ff d6                	call   *%esi
40433d:	8d 4d ac             	lea    -0x54(%ebp),%ecx
404340:	88 5d dc             	mov    %bl,-0x24(%ebp)
404343:	e8 f6 0b 00 00       	call   0x404f3e
404348:	57                   	push   %edi
404349:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40434c:	e8 e3 07 00 00       	call   0x404b34
404351:	a1 18 d7 40 00       	mov    0x40d718,%eax
404356:	b9 18 d7 40 00       	mov    $0x40d718,%ecx
40435b:	eb 0c                	jmp    0x404369
40435d:	8d 55 ac             	lea    -0x54(%ebp),%edx
404360:	3b c2                	cmp    %edx,%eax
404362:	74 0b                	je     0x40436f
404364:	8d 48 38             	lea    0x38(%eax),%ecx
404367:	8b 01                	mov    (%ecx),%eax
404369:	85 c0                	test   %eax,%eax
40436b:	75 f0                	jne    0x40435d
40436d:	eb 05                	jmp    0x404374
40436f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
404372:	89 01                	mov    %eax,(%ecx)
404374:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
404377:	e8 89 07 00 00       	call   0x404b05
40437c:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40437f:	e8 c8 08 00 00       	call   0x404c4c
404384:	8d 4d ac             	lea    -0x54(%ebp),%ecx
404387:	e8 b2 0b 00 00       	call   0x404f3e
40438c:	80 7d ab 00          	cmpb   $0x0,-0x55(%ebp)
404390:	74 06                	je     0x404398
404392:	ff 15 24 e0 40 00    	call   *0x40e024
404398:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40439c:	74 09                	je     0x4043a7
40439e:	ff 75 ec             	push   -0x14(%ebp)
4043a1:	ff 15 54 e0 40 00    	call   *0x40e054
4043a7:	8b 45 a4             	mov    -0x5c(%ebp),%eax
4043aa:	85 c0                	test   %eax,%eax
4043ac:	74 07                	je     0x4043b5
4043ae:	50                   	push   %eax
4043af:	ff 15 84 e0 40 00    	call   *0x40e084
4043b5:	e8 15 68 00 00       	call   0x40abcf
4043ba:	c3                   	ret
4043bb:	e8 7f fb ff ff       	call   0x403f3f
4043c0:	6a 06                	push   $0x6
4043c2:	8d 8d 30 ff ff ff    	lea    -0xd0(%ebp),%ecx
4043c8:	e8 48 fb ff ff       	call   0x403f15
4043cd:	68 f0 c6 40 00       	push   $0x40c6f0
4043d2:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
4043d8:	50                   	push   %eax
4043d9:	e8 5c 67 00 00       	call   0x40ab3a
4043de:	cc                   	int3
4043df:	83 39 00             	cmpl   $0x0,(%ecx)
4043e2:	74 08                	je     0x4043ec
4043e4:	ff 31                	push   (%ecx)
4043e6:	ff 15 84 e0 40 00    	call   *0x40e084
4043ec:	c3                   	ret
4043ed:	83 39 00             	cmpl   $0x0,(%ecx)
4043f0:	74 08                	je     0x4043fa
4043f2:	ff 31                	push   (%ecx)
4043f4:	ff 15 54 e0 40 00    	call   *0x40e054
4043fa:	c3                   	ret
4043fb:	8b ff                	mov    %edi,%edi
4043fd:	55                   	push   %ebp
4043fe:	8b ec                	mov    %esp,%ebp
404400:	53                   	push   %ebx
404401:	57                   	push   %edi
404402:	8b f9                	mov    %ecx,%edi
404404:	8b 1f                	mov    (%edi),%ebx
404406:	85 db                	test   %ebx,%ebx
404408:	74 17                	je     0x404421
40440a:	56                   	push   %esi
40440b:	ff 15 44 e0 40 00    	call   *0x40e044
404411:	53                   	push   %ebx
404412:	8b f0                	mov    %eax,%esi
404414:	e8 91 f1 ff ff       	call   0x4035aa
404419:	56                   	push   %esi