404097:	ff 15 74 f0 40 00    	call   *0x40f074
40409d:	a1 44 47 41 00       	mov    0x414744,%eax
4040a2:	8b 3c b0             	mov    (%eax,%esi,4),%edi
4040a5:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4040a8:	89 5f 0c             	mov    %ebx,0xc(%edi)
4040ab:	3b fb                	cmp    %ebx,%edi
4040ad:	74 16                	je     0x4040c5
4040af:	81 67 0c 00 80 00 00 	andl   $0x8000,0xc(%edi)
4040b6:	89 5f 04             	mov    %ebx,0x4(%edi)
4040b9:	89 5f 08             	mov    %ebx,0x8(%edi)
4040bc:	89 1f                	mov    %ebx,(%edi)
4040be:	89 5f 1c             	mov    %ebx,0x1c(%edi)
4040c1:	83 4f 10 ff          	orl    $0xffffffff,0x10(%edi)
4040c5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4040cc:	e8 0b 00 00 00       	call   0x4040dc
4040d1:	8b c7                	mov    %edi,%eax
4040d3:	e8 dd 00 00 00       	call   0x4041b5
4040d8:	c3                   	ret
4040d9:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4040dc:	6a 01                	push   $0x1
4040de:	e8 dd 2b 00 00       	call   0x406cc0
4040e3:	59                   	pop    %ecx
4040e4:	c3                   	ret
4040e5:	8b ff                	mov    %edi,%edi
4040e7:	55                   	push   %ebp
4040e8:	8b ec                	mov    %esp,%ebp
4040ea:	8b 45 08             	mov    0x8(%ebp),%eax
4040ed:	33 c9                	xor    %ecx,%ecx
4040ef:	3b 04 cd 90 22 41 00 	cmp    0x412290(,%ecx,8),%eax
4040f6:	74 13                	je     0x40410b
4040f8:	41                   	inc    %ecx
4040f9:	83 f9 2d             	cmp    $0x2d,%ecx
4040fc:	72 f1                	jb     0x4040ef
4040fe:	8d 48 ed             	lea    -0x13(%eax),%ecx
404101:	83 f9 11             	cmp    $0x11,%ecx
404104:	77 0e                	ja     0x404114
404106:	6a 0d                	push   $0xd
404108:	58                   	pop    %eax
404109:	5d                   	pop    %ebp
40410a:	c3                   	ret
40410b:	8b 04 cd 94 22 41 00 	mov    0x412294(,%ecx,8),%eax
404112:	5d                   	pop    %ebp
404113:	c3                   	ret
404114:	05 44 ff ff ff       	add    $0xffffff44,%eax
404119:	6a 0e                	push   $0xe
40411b:	59                   	pop    %ecx
40411c:	3b c8                	cmp    %eax,%ecx
40411e:	1b c0                	sbb    %eax,%eax
404120:	23 c1                	and    %ecx,%eax
404122:	83 c0 08             	add    $0x8,%eax
404125:	5d                   	pop    %ebp
404126:	c3                   	ret
404127:	e8 41 1c 00 00       	call   0x405d6d
40412c:	85 c0                	test   %eax,%eax
40412e:	75 06                	jne    0x404136
404130:	b8 f8 23 41 00       	mov    $0x4123f8,%eax
404135:	c3                   	ret
404136:	83 c0 08             	add    $0x8,%eax
404139:	c3                   	ret
40413a:	e8 2e 1c 00 00       	call   0x405d6d
40413f:	85 c0                	test   %eax,%eax
404141:	75 06                	jne    0x404149
404143:	b8 fc 23 41 00       	mov    $0x4123fc,%eax
404148:	c3                   	ret
404149:	83 c0 0c             	add    $0xc,%eax
40414c:	c3                   	ret
40414d:	8b ff                	mov    %edi,%edi
40414f:	55                   	push   %ebp
404150:	8b ec                	mov    %esp,%ebp
404152:	56                   	push   %esi
404153:	e8 e2 ff ff ff       	call   0x40413a
404158:	8b 4d 08             	mov    0x8(%ebp),%ecx
40415b:	51                   	push   %ecx
40415c:	89 08                	mov    %ecx,(%eax)
40415e:	e8 82 ff ff ff       	call   0x4040e5
404163:	59                   	pop    %ecx
404164:	8b f0                	mov    %eax,%esi
404166:	e8 bc ff ff ff       	call   0x404127
40416b:	89 30                	mov    %esi,(%eax)
40416d:	5e                   	pop    %esi
40416e:	5d                   	pop    %ebp
40416f:	c3                   	ret
404170:	68 d0 41 40 00       	push   $0x4041d0
404175:	64 ff 35 00 00 00 00 	push   %fs:0x0
40417c:	8b 44 24 10          	mov    0x10(%esp),%eax
404180:	89 6c 24 10          	mov    %ebp,0x10(%esp)
404184:	8d 6c 24 10          	lea    0x10(%esp),%ebp
404188:	2b e0                	sub    %eax,%esp
40418a:	53                   	push   %ebx
40418b:	56                   	push   %esi
40418c:	57                   	push   %edi
40418d:	a1 84 22 41 00       	mov    0x412284,%eax
404192:	31 45 fc             	xor    %eax,-0x4(%ebp)
404195:	33 c5                	xor    %ebp,%eax
404197:	50                   	push   %eax
404198:	89 65 e8             	mov    %esp,-0x18(%ebp)
40419b:	ff 75 f8             	push   -0x8(%ebp)
40419e:	8b 45 fc             	mov    -0x4(%ebp),%eax
4041a1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4041a8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4041ab:	8d 45 f0             	lea    -0x10(%ebp),%eax
4041ae:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4041b4:	c3                   	ret
4041b5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4041b8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4041bf:	59                   	pop    %ecx
4041c0:	5f                   	pop    %edi
4041c1:	5f                   	pop    %edi
4041c2:	5e                   	pop    %esi
4041c3:	5b                   	pop    %ebx
4041c4:	8b e5                	mov    %ebp,%esp
4041c6:	5d                   	pop    %ebp
4041c7:	51                   	push   %ecx
4041c8:	c3                   	ret
4041c9:	cc                   	int3
4041ca:	cc                   	int3
4041cb:	cc                   	int3
4041cc:	cc                   	int3
4041cd:	cc                   	int3
4041ce:	cc                   	int3
4041cf:	cc                   	int3
4041d0:	8b ff                	mov    %edi,%edi
4041d2:	55                   	push   %ebp
4041d3:	8b ec                	mov    %esp,%ebp
4041d5:	83 ec 18             	sub    $0x18,%esp
4041d8:	53                   	push   %ebx
4041d9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4041dc:	56                   	push   %esi
4041dd:	8b 73 08             	mov    0x8(%ebx),%esi
4041e0:	33 35 84 22 41 00    	xor    0x412284,%esi
4041e6:	57                   	push   %edi
4041e7:	8b 06                	mov    (%esi),%eax
4041e9:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
4041ed:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4041f4:	8d 7b 10             	lea    0x10(%ebx),%edi
4041f7:	83 f8 fe             	cmp    $0xfffffffe,%eax
4041fa:	74 0d                	je     0x404209
4041fc:	8b 4e 04             	mov    0x4(%esi),%ecx
4041ff:	03 cf                	add    %edi,%ecx
404201:	33 0c 38             	xor    (%eax,%edi,1),%ecx
404204:	e8 9b db ff ff       	call   0x401da4
404209:	8b 4e 0c             	mov    0xc(%esi),%ecx
40420c:	8b 46 08             	mov    0x8(%esi),%eax
40420f:	03 cf                	add    %edi,%ecx
404211:	33 0c 38             	xor    (%eax,%edi,1),%ecx
404214:	e8 8b db ff ff       	call   0x401da4
404219:	8b 45 08             	mov    0x8(%ebp),%eax
40421c:	f6 40 04 66          	testb  $0x66,0x4(%eax)
404220:	0f 85 19 01 00 00    	jne    0x40433f
404226:	8b 4d 10             	mov    0x10(%ebp),%ecx
404229:	8d 55 e8             	lea    -0x18(%ebp),%edx
40422c:	89 53 fc             	mov    %edx,-0x4(%ebx)
40422f:	8b 5b 0c             	mov    0xc(%ebx),%ebx
404232:	89 45 e8             	mov    %eax,-0x18(%ebp)
404235:	89 4d ec             	mov    %ecx,-0x14(%ebp)
404238:	83 fb fe             	cmp    $0xfffffffe,%ebx
40423b:	74 5f                	je     0x40429c
40423d:	8d 49 00             	lea    0x0(%ecx),%ecx
404240:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
404243:	8b 4c 86 14          	mov    0x14(%esi,%eax,4),%ecx
404247:	8d 44 86 10          	lea    0x10(%esi,%eax,4),%eax
40424b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40424e:	8b 00                	mov    (%eax),%eax
404250:	89 45 f8             	mov    %eax,-0x8(%ebp)
404253:	85 c9                	test   %ecx,%ecx
404255:	74 14                	je     0x40426b
404257:	8b d7                	mov    %edi,%edx
404259:	e8 f4 01 00 00       	call   0x404452
40425e:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
404262:	85 c0                	test   %eax,%eax
404264:	78 40                	js     0x4042a6
404266:	7f 47                	jg     0x4042af
404268:	8b 45 f8             	mov    -0x8(%ebp),%eax
40426b:	8b d8                	mov    %eax,%ebx
40426d:	83 f8 fe             	cmp    $0xfffffffe,%eax
404270:	75 ce                	jne    0x404240
404272:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
404276:	74 24                	je     0x40429c
404278:	8b 06                	mov    (%esi),%eax
40427a:	83 f8 fe             	cmp    $0xfffffffe,%eax
40427d:	74 0d                	je     0x40428c
40427f:	8b 4e 04             	mov    0x4(%esi),%ecx
404282:	03 cf                	add    %edi,%ecx
404284:	33 0c 38             	xor    (%eax,%edi,1),%ecx
404287:	e8 18 db ff ff       	call   0x401da4
40428c:	8b 4e 0c             	mov    0xc(%esi),%ecx
40428f:	8b 56 08             	mov    0x8(%esi),%edx
404292:	03 cf                	add    %edi,%ecx
404294:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
404297:	e8 08 db ff ff       	call   0x401da4
40429c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40429f:	5f                   	pop    %edi
4042a0:	5e                   	pop    %esi
4042a1:	5b                   	pop    %ebx
4042a2:	8b e5                	mov    %ebp,%esp
4042a4:	5d                   	pop    %ebp
4042a5:	c3                   	ret
4042a6:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4042ad:	eb c9                	jmp    0x404278
4042af:	8b 4d 08             	mov    0x8(%ebp),%ecx
4042b2:	81 39 63 73 6d e0    	cmpl   $0xe06d7363,(%ecx)
4042b8:	75 29                	jne    0x4042e3
4042ba:	83 3d 38 47 41 00 00 	cmpl   $0x0,0x414738
4042c1:	74 20                	je     0x4042e3
4042c3:	68 38 47 41 00       	push   $0x414738
4042c8:	e8 83 64 00 00       	call   0x40a750
4042cd:	83 c4 04             	add    $0x4,%esp
4042d0:	85 c0                	test   %eax,%eax
4042d2:	74 0f                	je     0x4042e3
4042d4:	8b 55 08             	mov    0x8(%ebp),%edx
4042d7:	6a 01                	push   $0x1
4042d9:	52                   	push   %edx
4042da:	ff 15 38 47 41 00    	call   *0x414738
4042e0:	83 c4 08             	add    $0x8,%esp
4042e3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4042e6:	8b 55 08             	mov    0x8(%ebp),%edx
4042e9:	e8 94 01 00 00       	call   0x404482
4042ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4042f1:	39 58 0c             	cmp    %ebx,0xc(%eax)
4042f4:	74 12                	je     0x404308
4042f6:	68 84 22 41 00       	push   $0x412284
4042fb:	57                   	push   %edi
4042fc:	8b d3                	mov    %ebx,%edx
4042fe:	8b c8                	mov    %eax,%ecx
404300:	e8 96 01 00 00       	call   0x40449b
404305:	8b 45 0c             	mov    0xc(%ebp),%eax
404308:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40430b:	89 48 0c             	mov    %ecx,0xc(%eax)
40430e:	8b 06                	mov    (%esi),%eax
404310:	83 f8 fe             	cmp    $0xfffffffe,%eax
404313:	74 0d                	je     0x404322
404315:	8b 4e 04             	mov    0x4(%esi),%ecx
404318:	03 cf                	add    %edi,%ecx
40431a:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40431d:	e8 82 da ff ff       	call   0x401da4
404322:	8b 4e 0c             	mov    0xc(%esi),%ecx
404325:	8b 56 08             	mov    0x8(%esi),%edx
404328:	03 cf                	add    %edi,%ecx
40432a:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
40432d:	e8 72 da ff ff       	call   0x401da4
404332:	8b 45 f0             	mov    -0x10(%ebp),%eax
404335:	8b 48 08             	mov    0x8(%eax),%ecx
404338:	8b d7                	mov    %edi,%edx
40433a:	e8 2a 01 00 00       	call   0x404469
40433f:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
404344:	39 53 0c             	cmp    %edx,0xc(%ebx)
404347:	0f 84 4f ff ff ff    	je     0x40429c
40434d:	68 84 22 41 00       	push   $0x412284
404352:	57                   	push   %edi
404353:	8b cb                	mov    %ebx,%ecx
404355:	e8 41 01 00 00       	call   0x40449b
40435a:	e9 19 ff ff ff       	jmp    0x404278
40435f:	cc                   	int3
404360:	53                   	push   %ebx
404361:	56                   	push   %esi
404362:	57                   	push   %edi
404363:	8b 54 24 10          	mov    0x10(%esp),%edx
404367:	8b 44 24 14          	mov    0x14(%esp),%eax
40436b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40436f:	55                   	push   %ebp
404370:	52                   	push   %edx
404371:	50                   	push   %eax
404372:	51                   	push   %ecx
404373:	51                   	push   %ecx
404374:	68 f0 43 40 00       	push   $0x4043f0
404379:	64 ff 35 00 00 00 00 	push   %fs:0x0
404380:	a1 84 22 41 00       	mov    0x412284,%eax
404385:	33 c4                	xor    %esp,%eax
404387:	89 44 24 08          	mov    %eax,0x8(%esp)
40438b:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
404392:	8b 44 24 30          	mov    0x30(%esp),%eax
404396:	8b 58 08             	mov    0x8(%eax),%ebx
404399:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40439d:	33 19                	xor    (%ecx),%ebx
40439f:	8b 70 0c             	mov    0xc(%eax),%esi
4043a2:	83 fe fe             	cmp    $0xfffffffe,%esi
4043a5:	74 3b                	je     0x4043e2
4043a7:	8b 54 24 34          	mov    0x34(%esp),%edx
4043ab:	83 fa fe             	cmp    $0xfffffffe,%edx
4043ae:	74 04                	je     0x4043b4
4043b0:	3b f2                	cmp    %edx,%esi
4043b2:	76 2e                	jbe    0x4043e2
4043b4:	8d 34 76             	lea    (%esi,%esi,2),%esi
4043b7:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
4043bb:	8b 0b                	mov    (%ebx),%ecx
4043bd:	89 48 0c             	mov    %ecx,0xc(%eax)
4043c0:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
4043c4:	75 cc                	jne    0x404392
4043c6:	68 01 01 00 00       	push   $0x101
4043cb:	8b 43 08             	mov    0x8(%ebx),%eax
4043ce:	e8 52 65 00 00       	call   0x40a925
4043d3:	b9 01 00 00 00       	mov    $0x1,%ecx
4043d8:	8b 43 08             	mov    0x8(%ebx),%eax
4043db:	e8 64 65 00 00       	call   0x40a944
4043e0:	eb b0                	jmp    0x404392
4043e2:	64 8f 05 00 00 00 00 	pop    %fs:0x0
4043e9:	83 c4 18             	add    $0x18,%esp
4043ec:	5f                   	pop    %edi
4043ed:	5e                   	pop    %esi
4043ee:	5b                   	pop    %ebx
4043ef:	c3                   	ret
4043f0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4043f4:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
4043fb:	b8 01 00 00 00       	mov    $0x1,%eax
404400:	74 33                	je     0x404435
404402:	8b 44 24 08          	mov    0x8(%esp),%eax
404406:	8b 48 08             	mov    0x8(%eax),%ecx
404409:	33 c8                	xor    %eax,%ecx
40440b:	e8 94 d9 ff ff       	call   0x401da4
404410:	55                   	push   %ebp
404411:	8b 68 18             	mov    0x18(%eax),%ebp
404414:	ff 70 0c             	push   0xc(%eax)
404417:	ff 70 10             	push   0x10(%eax)
40441a:	ff 70 14             	push   0x14(%eax)
40441d:	e8 3e ff ff ff       	call   0x404360
404422:	83 c4 0c             	add    $0xc,%esp
404425:	5d                   	pop    %ebp
404426:	8b 44 24 08          	mov    0x8(%esp),%eax
40442a:	8b 54 24 10          	mov    0x10(%esp),%edx
40442e:	89 02                	mov    %eax,(%edx)
404430:	b8 03 00 00 00       	mov    $0x3,%eax
404435:	c3                   	ret
404436:	55                   	push   %ebp
404437:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40443b:	8b 29                	mov    (%ecx),%ebp
40443d:	ff 71 1c             	push   0x1c(%ecx)
404440:	ff 71 18             	push   0x18(%ecx)
404443:	ff 71 28             	push   0x28(%ecx)
404446:	e8 15 ff ff ff       	call   0x404360
40444b:	83 c4 0c             	add    $0xc,%esp
40444e:	5d                   	pop    %ebp
40444f:	c2 04 00             	ret    $0x4
404452:	55                   	push   %ebp
404453:	56                   	push   %esi
404454:	57                   	push   %edi
404455:	53                   	push   %ebx
404456:	8b ea                	mov    %edx,%ebp
404458:	33 c0                	xor    %eax,%eax
40445a:	33 db                	xor    %ebx,%ebx
40445c:	33 d2                	xor    %edx,%edx
40445e:	33 f6                	xor    %esi,%esi
404460:	33 ff                	xor    %edi,%edi
404462:	ff d1                	call   *%ecx
404464:	5b                   	pop    %ebx
404465:	5f                   	pop    %edi
404466:	5e                   	pop    %esi
404467:	5d                   	pop    %ebp
404468:	c3                   	ret
404469:	8b ea                	mov    %edx,%ebp
40446b:	8b f1                	mov    %ecx,%esi