40f161:	ff 15 80 33 42 00    	call   *0x423380
40f167:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f16b:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40f16e:	ff 15 44 32 42 00    	call   *0x423244
40f174:	8b 75 f0             	mov    -0x10(%ebp),%esi
40f177:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40f17a:	83 7e f8 00          	cmpl   $0x0,-0x8(%esi)
40f17e:	7e 4d                	jle    0x40f1cd
40f180:	8b 7b 08             	mov    0x8(%ebx),%edi
40f183:	85 ff                	test   %edi,%edi
40f185:	7e 39                	jle    0x40f1c0
40f187:	4f                   	dec    %edi
40f188:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f18b:	57                   	push   %edi
40f18c:	50                   	push   %eax
40f18d:	8b cb                	mov    %ebx,%ecx
40f18f:	e8 38 40 00 00       	call   0x4131cc
40f194:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
40f198:	56                   	push   %esi
40f199:	ff 30                	push   (%eax)
40f19b:	ff 15 64 35 42 00    	call   *0x423564
40f1a1:	59                   	pop    %ecx
40f1a2:	59                   	pop    %ecx
40f1a3:	8b f0                	mov    %eax,%esi
40f1a5:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f1a9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40f1ac:	ff 15 44 32 42 00    	call   *0x423244
40f1b2:	85 f6                	test   %esi,%esi
40f1b4:	74 17                	je     0x40f1cd
40f1b6:	8b 75 d4             	mov    -0x2c(%ebp),%esi
40f1b9:	85 ff                	test   %edi,%edi
40f1bb:	7f ca                	jg     0x40f187
40f1bd:	8b 7b 08             	mov    0x8(%ebx),%edi
40f1c0:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f1c3:	8b cb                	mov    %ebx,%ecx
40f1c5:	50                   	push   %eax
40f1c6:	57                   	push   %edi
40f1c7:	ff 15 fc 33 42 00    	call   *0x4233fc
40f1cd:	8d 4d 08             	lea    0x8(%ebp),%ecx
40f1d0:	ff 15 0c 34 42 00    	call   *0x42340c
40f1d6:	8b 45 08             	mov    0x8(%ebp),%eax
40f1d9:	6a 22                	push   $0x22
40f1db:	5f                   	pop    %edi
40f1dc:	8b 48 f8             	mov    -0x8(%eax),%ecx
40f1df:	8b f1                	mov    %ecx,%esi
40f1e1:	85 f6                	test   %esi,%esi
40f1e3:	0f 85 40 fe ff ff    	jne    0x40f029
40f1e9:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40f1ed:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f1f0:	ff 15 44 32 42 00    	call   *0x423244
40f1f6:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40f1fa:	8d 4d 08             	lea    0x8(%ebp),%ecx
40f1fd:	ff 15 44 32 42 00    	call   *0x423244
40f203:	e8 fe d1 00 00       	call   0x41c406
40f208:	c2 04 00             	ret    $0x4
40f20b:	6a 30                	push   $0x30
40f20d:	b8 5b d3 41 00       	mov    $0x41d35b,%eax
40f212:	e8 21 d2 00 00       	call   0x41c438
40f217:	8b f1                	mov    %ecx,%esi
40f219:	89 75 e0             	mov    %esi,-0x20(%ebp)
40f21c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f220:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f223:	ff 15 40 32 42 00    	call   *0x423240
40f229:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f22d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f230:	ff 15 40 32 42 00    	call   *0x423240
40f236:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40f23a:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40f23d:	ff 15 d0 33 42 00    	call   *0x4233d0
40f243:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40f247:	8d 45 08             	lea    0x8(%ebp),%eax
40f24a:	51                   	push   %ecx
40f24b:	8b cc                	mov    %esp,%ecx
40f24d:	89 65 d8             	mov    %esp,-0x28(%ebp)
40f250:	33 db                	xor    %ebx,%ebx
40f252:	8d 7d c4             	lea    -0x3c(%ebp),%edi
40f255:	50                   	push   %eax
40f256:	43                   	inc    %ebx
40f257:	ff 15 f0 33 42 00    	call   *0x4233f0
40f25d:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40f261:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40f265:	8b cf                	mov    %edi,%ecx
40f267:	e8 6d fd ff ff       	call   0x40efd9
40f26c:	8b 45 cc             	mov    -0x34(%ebp),%eax
40f26f:	8b 4e 08             	mov    0x8(%esi),%ecx
40f272:	89 45 d8             	mov    %eax,-0x28(%ebp)
40f275:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40f278:	3b c1                	cmp    %ecx,%eax
40f27a:	0f 85 84 00 00 00    	jne    0x40f304
40f280:	33 db                	xor    %ebx,%ebx
40f282:	33 f6                	xor    %esi,%esi
40f284:	85 c0                	test   %eax,%eax
40f286:	7e 7c                	jle    0x40f304
40f288:	56                   	push   %esi
40f289:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40f28c:	50                   	push   %eax
40f28d:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40f290:	e8 37 3f 00 00       	call   0x4131cc
40f295:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40f299:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f29c:	50                   	push   %eax
40f29d:	ff 15 80 33 42 00    	call   *0x423380
40f2a3:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40f2a7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40f2aa:	ff 15 44 32 42 00    	call   *0x423244
40f2b0:	33 db                	xor    %ebx,%ebx
40f2b2:	33 ff                	xor    %edi,%edi
40f2b4:	43                   	inc    %ebx
40f2b5:	39 7d e8             	cmp    %edi,-0x18(%ebp)
40f2b8:	7e 4a                	jle    0x40f304
40f2ba:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40f2bd:	8d 45 dc             	lea    -0x24(%ebp),%eax
40f2c0:	57                   	push   %edi
40f2c1:	50                   	push   %eax
40f2c2:	e8 05 3f 00 00       	call   0x4131cc
40f2c7:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40f2cb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f2ce:	50                   	push   %eax
40f2cf:	ff 15 80 33 42 00    	call   *0x423380
40f2d5:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40f2d9:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40f2dc:	ff 15 44 32 42 00    	call   *0x423244
40f2e2:	ff 75 f0             	push   -0x10(%ebp)
40f2e5:	ff 75 ec             	push   -0x14(%ebp)
40f2e8:	ff 15 64 35 42 00    	call   *0x423564
40f2ee:	59                   	pop    %ecx
40f2ef:	59                   	pop    %ecx
40f2f0:	85 c0                	test   %eax,%eax
40f2f2:	74 08                	je     0x40f2fc
40f2f4:	47                   	inc    %edi
40f2f5:	3b 7d e8             	cmp    -0x18(%ebp),%edi
40f2f8:	7c c0                	jl     0x40f2ba
40f2fa:	eb 08                	jmp    0x40f304
40f2fc:	33 db                	xor    %ebx,%ebx
40f2fe:	46                   	inc    %esi
40f2ff:	3b 75 d8             	cmp    -0x28(%ebp),%esi
40f302:	7c 84                	jl     0x40f288
40f304:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40f308:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40f30b:	ff 15 d4 33 42 00    	call   *0x4233d4
40f311:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f315:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f318:	ff 15 44 32 42 00    	call   *0x423244
40f31e:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40f322:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f325:	ff 15 44 32 42 00    	call   *0x423244
40f32b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40f32f:	8d 4d 08             	lea    0x8(%ebp),%ecx
40f332:	ff 15 44 32 42 00    	call   *0x423244
40f338:	8b c3                	mov    %ebx,%eax
40f33a:	e8 c7 d0 00 00       	call   0x41c406
40f33f:	c2 04 00             	ret    $0x4
40f342:	8b ff                	mov    %edi,%edi
40f344:	55                   	push   %ebp
40f345:	8b ec                	mov    %esp,%ebp
40f347:	51                   	push   %ecx
40f348:	51                   	push   %ecx
40f349:	53                   	push   %ebx
40f34a:	56                   	push   %esi
40f34b:	57                   	push   %edi
40f34c:	8b 7d 08             	mov    0x8(%ebp),%edi
40f34f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f352:	50                   	push   %eax
40f353:	57                   	push   %edi
40f354:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f357:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
40f35e:	50                   	push   %eax
40f35f:	33 f6                	xor    %esi,%esi
40f361:	8b da                	mov    %edx,%ebx
40f363:	56                   	push   %esi
40f364:	53                   	push   %ebx
40f365:	51                   	push   %ecx
40f366:	ff 15 14 30 42 00    	call   *0x423014
40f36c:	83 f8 02             	cmp    $0x2,%eax
40f36f:	75 07                	jne    0x40f378
40f371:	89 37                	mov    %esi,(%edi)
40f373:	33 f6                	xor    %esi,%esi
40f375:	46                   	inc    %esi
40f376:	eb 1f                	jmp    0x40f397
40f378:	85 c0                	test   %eax,%eax
40f37a:	75 0c                	jne    0x40f388
40f37c:	83 7d f8 04          	cmpl   $0x4,-0x8(%ebp)
40f380:	75 06                	jne    0x40f388
40f382:	83 7d fc 04          	cmpl   $0x4,-0x4(%ebp)
40f386:	74 eb                	je     0x40f373
40f388:	50                   	push   %eax
40f389:	53                   	push   %ebx
40f38a:	68 10 01 00 00       	push   $0x110
40f38f:	e8 bf f2 ff ff       	call   0x40e653
40f394:	83 c4 0c             	add    $0xc,%esp
40f397:	5f                   	pop    %edi
40f398:	8b c6                	mov    %esi,%eax
40f39a:	5e                   	pop    %esi
40f39b:	5b                   	pop    %ebx
40f39c:	c9                   	leave
40f39d:	c2 04 00             	ret    $0x4
40f3a0:	8b ff                	mov    %edi,%edi
40f3a2:	55                   	push   %ebp
40f3a3:	8b ec                	mov    %esp,%ebp
40f3a5:	83 ec 18             	sub    $0x18,%esp
40f3a8:	53                   	push   %ebx
40f3a9:	56                   	push   %esi
40f3aa:	57                   	push   %edi
40f3ab:	6a 08                	push   $0x8
40f3ad:	58                   	pop    %eax
40f3ae:	89 55 f0             	mov    %edx,-0x10(%ebp)
40f3b1:	33 ff                	xor    %edi,%edi
40f3b3:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f3b6:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f3b9:	8d 58 78             	lea    0x78(%eax),%ebx
40f3bc:	c7 45 fc fe 00 00 00 	movl   $0xfe,-0x4(%ebp)
40f3c3:	6a 02                	push   $0x2
40f3c5:	33 c9                	xor    %ecx,%ecx
40f3c7:	8b c3                	mov    %ebx,%eax
40f3c9:	5a                   	pop    %edx
40f3ca:	f7 e2                	mul    %edx
40f3cc:	0f 90 c1             	seto   %cl
40f3cf:	f7 d9                	neg    %ecx
40f3d1:	0b c8                	or     %eax,%ecx
40f3d3:	51                   	push   %ecx
40f3d4:	e8 f8 be 00 00       	call   0x41b2d1
40f3d9:	8b f0                	mov    %eax,%esi
40f3db:	59                   	pop    %ecx
40f3dc:	85 f6                	test   %esi,%esi
40f3de:	74 39                	je     0x40f419
40f3e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f3e3:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f3e6:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f3e9:	50                   	push   %eax
40f3ea:	56                   	push   %esi
40f3eb:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f3ee:	50                   	push   %eax
40f3ef:	57                   	push   %edi
40f3f0:	ff 75 f0             	push   -0x10(%ebp)
40f3f3:	ff 75 ec             	push   -0x14(%ebp)
40f3f6:	ff 15 14 30 42 00    	call   *0x423014
40f3fc:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f3ff:	2b c7                	sub    %edi,%eax
40f401:	74 0b                	je     0x40f40e
40f403:	48                   	dec    %eax
40f404:	83 e8 01             	sub    $0x1,%eax
40f407:	75 0b                	jne    0x40f414
40f409:	66 89 06             	mov    %ax,(%esi)
40f40c:	eb 56                	jmp    0x40f464
40f40e:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
40f412:	74 45                	je     0x40f459
40f414:	33 c0                	xor    %eax,%eax
40f416:	66 89 06             	mov    %ax,(%esi)
40f419:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f41c:	56                   	push   %esi
40f41d:	ff 15 08 34 42 00    	call   *0x423408
40f423:	56                   	push   %esi
40f424:	e8 b3 be 00 00       	call   0x41b2dc
40f429:	81 45 fc 00 01 00 00 	addl   $0x100,-0x4(%ebp)
40f430:	83 eb 80             	sub    $0xffffff80,%ebx
40f433:	59                   	pop    %ecx
40f434:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
40f43a:	72 87                	jb     0x40f3c3
40f43c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f43f:	50                   	push   %eax
40f440:	ff 75 f0             	push   -0x10(%ebp)
40f443:	68 93 00 00 00       	push   $0x93
40f448:	e8 06 f2 ff ff       	call   0x40e653
40f44d:	83 c4 0c             	add    $0xc,%esp
40f450:	8b c7                	mov    %edi,%eax
40f452:	5f                   	pop    %edi
40f453:	5e                   	pop    %esi
40f454:	5b                   	pop    %ebx
40f455:	c9                   	leave
40f456:	c2 04 00             	ret    $0x4
40f459:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f45c:	d1 e8                	shr    $1,%eax
40f45e:	33 c9                	xor    %ecx,%ecx
40f460:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
40f464:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f467:	56                   	push   %esi
40f468:	ff 15 08 34 42 00    	call   *0x423408
40f46e:	56                   	push   %esi
40f46f:	e8 68 be 00 00       	call   0x41b2dc
40f474:	33 ff                	xor    %edi,%edi
40f476:	59                   	pop    %ecx
40f477:	47                   	inc    %edi
40f478:	eb d6                	jmp    0x40f450
40f47a:	8b ff                	mov    %edi,%edi
40f47c:	55                   	push   %ebp
40f47d:	8b ec                	mov    %esp,%ebp
40f47f:	83 e4 f8             	and    $0xfffffff8,%esp
40f482:	83 ec 2c             	sub    $0x2c,%esp
40f485:	a1 e4 05 42 00       	mov    0x4205e4,%eax
40f48a:	33 c4                	xor    %esp,%eax
40f48c:	89 44 24 28          	mov    %eax,0x28(%esp)
40f490:	53                   	push   %ebx
40f491:	56                   	push   %esi
40f492:	57                   	push   %edi
40f493:	8d 44 24 0c          	lea    0xc(%esp),%eax
40f497:	33 db                	xor    %ebx,%ebx
40f499:	50                   	push   %eax
40f49a:	6a 02                	push   $0x2
40f49c:	53                   	push   %ebx
40f49d:	be 50 5a 40 00       	mov    $0x405a50,%esi
40f4a2:	89 5c 24 18          	mov    %ebx,0x18(%esp)
40f4a6:	56                   	push   %esi
40f4a7:	68 02 00 00 80       	push   $0x80000002
40f4ac:	8b fb                	mov    %ebx,%edi
40f4ae:	ff 15 08 30 42 00    	call   *0x423008
40f4b4:	85 c0                	test   %eax,%eax
40f4b6:	74 29                	je     0x40f4e1
40f4b8:	83 f8 05             	cmp    $0x5,%eax
40f4bb:	75 10                	jne    0x40f4cd
40f4bd:	68 91 00 00 00       	push   $0x91
40f4c2:	e8 8c f1 ff ff       	call   0x40e653
40f4c7:	59                   	pop    %ecx
40f4c8:	e9 30 01 00 00       	jmp    0x40f5fd
40f4cd:	50                   	push   %eax
40f4ce:	56                   	push   %esi
40f4cf:	68 92 00 00 00       	push   $0x92
40f4d4:	e8 7a f1 ff ff       	call   0x40e653
40f4d9:	83 c4 0c             	add    $0xc,%esp
40f4dc:	e9 1c 01 00 00       	jmp    0x40f5fd
40f4e1:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f4e5:	ba 2c 5a 40 00       	mov    $0x405a2c,%edx
40f4ea:	e8 22 01 00 00       	call   0x40f611
40f4ef:	85 c0                	test   %eax,%eax
40f4f1:	75 0f                	jne    0x40f502
40f4f3:	ff 74 24 0c          	push   0xc(%esp)
40f4f7:	ff 15 0c 30 42 00    	call   *0x42300c
40f4fd:	e9 fb 00 00 00       	jmp    0x40f5fd
40f502:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f506:	ba 00 5a 40 00       	mov    $0x405a00,%edx
40f50b:	e8 01 01 00 00       	call   0x40f611
40f510:	85 c0                	test   %eax,%eax
40f512:	74 df                	je     0x40f4f3
40f514:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f518:	ba e4 59 40 00       	mov    $0x4059e4,%edx
40f51d:	e8 ef 00 00 00       	call   0x40f611
40f522:	85 c0                	test   %eax,%eax
40f524:	74 cd                	je     0x40f4f3
40f526:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f52a:	ba c4 59 40 00       	mov    $0x4059c4,%edx
40f52f:	e8 dd 00 00 00       	call   0x40f611
40f534:	85 c0                	test   %eax,%eax
40f536:	74 bb                	je     0x40f4f3
40f538:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f53c:	ba 9c 59 40 00       	mov    $0x40599c,%edx
40f541:	e8 cb 00 00 00       	call   0x40f611
40f546:	85 c0                	test   %eax,%eax
40f548:	74 a9                	je     0x40f4f3
40f54a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40f54e:	ba 54 59 40 00       	mov    $0x405954,%edx
40f553:	e8 b9 00 00 00       	call   0x40f611