40d237:	8b d7                	mov    %edi,%edx
40d239:	8b ce                	mov    %esi,%ecx
40d23b:	e8 7d 00 00 00       	call   0x40d2bd
40d240:	85 c0                	test   %eax,%eax
40d242:	74 0d                	je     0x40d251
40d244:	8b d6                	mov    %esi,%edx
40d246:	8b cf                	mov    %edi,%ecx
40d248:	e8 70 00 00 00       	call   0x40d2bd
40d24d:	85 c0                	test   %eax,%eax
40d24f:	75 e6                	jne    0x40d237
40d251:	5f                   	pop    %edi
40d252:	5e                   	pop    %esi
40d253:	33 c0                	xor    %eax,%eax
40d255:	5b                   	pop    %ebx
40d256:	8b e5                	mov    %ebp,%esp
40d258:	5d                   	pop    %ebp
40d259:	c2 04 00             	ret    $0x4
40d25c:	55                   	push   %ebp
40d25d:	8b ec                	mov    %esp,%ebp
40d25f:	51                   	push   %ecx
40d260:	53                   	push   %ebx
40d261:	8b 1d dc 22 41 00    	mov    0x4122dc,%ebx
40d267:	8d 45 ff             	lea    -0x1(%ebp),%eax
40d26a:	56                   	push   %esi
40d26b:	57                   	push   %edi
40d26c:	6a 00                	push   $0x0
40d26e:	6a 01                	push   $0x1
40d270:	8b f9                	mov    %ecx,%edi
40d272:	88 55 fe             	mov    %dl,-0x2(%ebp)
40d275:	50                   	push   %eax
40d276:	57                   	push   %edi
40d277:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40d27b:	ff d3                	call   *%ebx
40d27d:	85 c0                	test   %eax,%eax
40d27f:	7e 35                	jle    0x40d2b6
40d281:	8a 45 fe             	mov    -0x2(%ebp),%al
40d284:	6a 00                	push   $0x0
40d286:	88 45 ff             	mov    %al,-0x1(%ebp)
40d289:	8d 45 ff             	lea    -0x1(%ebp),%eax
40d28c:	6a 01                	push   $0x1
40d28e:	50                   	push   %eax
40d28f:	57                   	push   %edi
40d290:	ff d3                	call   *%ebx
40d292:	85 c0                	test   %eax,%eax
40d294:	7e 20                	jle    0x40d2b6
40d296:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40d29a:	33 f6                	xor    %esi,%esi
40d29c:	6a 00                	push   $0x0
40d29e:	6a 01                	push   $0x1
40d2a0:	8d 45 ff             	lea    -0x1(%ebp),%eax
40d2a3:	50                   	push   %eax
40d2a4:	57                   	push   %edi
40d2a5:	ff d3                	call   *%ebx
40d2a7:	85 c0                	test   %eax,%eax
40d2a9:	7e 0b                	jle    0x40d2b6
40d2ab:	46                   	inc    %esi
40d2ac:	83 fe 06             	cmp    $0x6,%esi
40d2af:	7c eb                	jl     0x40d29c
40d2b1:	33 c0                	xor    %eax,%eax
40d2b3:	40                   	inc    %eax
40d2b4:	eb 02                	jmp    0x40d2b8
40d2b6:	33 c0                	xor    %eax,%eax
40d2b8:	5f                   	pop    %edi
40d2b9:	5e                   	pop    %esi
40d2ba:	5b                   	pop    %ebx
40d2bb:	c9                   	leave
40d2bc:	c3                   	ret
40d2bd:	55                   	push   %ebp
40d2be:	8b ec                	mov    %esp,%ebp
40d2c0:	81 ec 04 08 00 00    	sub    $0x804,%esp
40d2c6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d2ca:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d2cd:	56                   	push   %esi
40d2ce:	57                   	push   %edi
40d2cf:	50                   	push   %eax
40d2d0:	8b f1                	mov    %ecx,%esi
40d2d2:	8b fa                	mov    %edx,%edi
40d2d4:	68 7f 66 04 40       	push   $0x4004667f
40d2d9:	56                   	push   %esi
40d2da:	ff 15 f0 22 41 00    	call   *0x4122f0
40d2e0:	83 f8 ff             	cmp    $0xffffffff,%eax
40d2e3:	74 4c                	je     0x40d331
40d2e5:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d2e9:	74 4c                	je     0x40d337
40d2eb:	53                   	push   %ebx
40d2ec:	bb 00 08 00 00       	mov    $0x800,%ebx
40d2f1:	8d 85 fc f7 ff ff    	lea    -0x804(%ebp),%eax
40d2f7:	53                   	push   %ebx
40d2f8:	6a 00                	push   $0x0
40d2fa:	50                   	push   %eax
40d2fb:	e8 52 3d ff ff       	call   0x401052
40d300:	83 c4 0c             	add    $0xc,%esp
40d303:	8d 85 fc f7 ff ff    	lea    -0x804(%ebp),%eax
40d309:	6a 00                	push   $0x0
40d30b:	53                   	push   %ebx
40d30c:	50                   	push   %eax
40d30d:	56                   	push   %esi
40d30e:	ff 15 10 23 41 00    	call   *0x412310
40d314:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d317:	5b                   	pop    %ebx
40d318:	85 c0                	test   %eax,%eax
40d31a:	74 15                	je     0x40d331
40d31c:	6a 00                	push   $0x0
40d31e:	50                   	push   %eax
40d31f:	8d 85 fc f7 ff ff    	lea    -0x804(%ebp),%eax
40d325:	50                   	push   %eax
40d326:	57                   	push   %edi
40d327:	ff 15 dc 22 41 00    	call   *0x4122dc
40d32d:	85 c0                	test   %eax,%eax
40d32f:	7f 0e                	jg     0x40d33f
40d331:	33 c0                	xor    %eax,%eax
40d333:	5f                   	pop    %edi
40d334:	5e                   	pop    %esi
40d335:	c9                   	leave
40d336:	c3                   	ret
40d337:	6a 01                	push   $0x1
40d339:	ff 15 e4 21 41 00    	call   *0x4121e4
40d33f:	33 c0                	xor    %eax,%eax
40d341:	40                   	inc    %eax
40d342:	eb ef                	jmp    0x40d333
40d344:	55                   	push   %ebp
40d345:	8b ec                	mov    %esp,%ebp
40d347:	83 e4 f8             	and    $0xfffffff8,%esp
40d34a:	81 ec a4 01 00 00    	sub    $0x1a4,%esp
40d350:	8d 44 24 14          	lea    0x14(%esp),%eax
40d354:	53                   	push   %ebx
40d355:	56                   	push   %esi
40d356:	57                   	push   %edi
40d357:	50                   	push   %eax
40d358:	68 02 02 00 00       	push   $0x202
40d35d:	8b fa                	mov    %edx,%edi
40d35f:	8b d9                	mov    %ecx,%ebx
40d361:	ff 15 e0 22 41 00    	call   *0x4122e0
40d367:	85 c0                	test   %eax,%eax
40d369:	75 5c                	jne    0x40d3c7
40d36b:	50                   	push   %eax
40d36c:	6a 01                	push   $0x1
40d36e:	6a 02                	push   $0x2
40d370:	58                   	pop    %eax
40d371:	50                   	push   %eax
40d372:	ff 15 18 23 41 00    	call   *0x412318
40d378:	8b f0                	mov    %eax,%esi
40d37a:	83 fe ff             	cmp    $0xffffffff,%esi
40d37d:	74 48                	je     0x40d3c7
40d37f:	53                   	push   %ebx
40d380:	ff 15 f8 22 41 00    	call   *0x4122f8
40d386:	0f bf 48 0a          	movswl 0xa(%eax),%ecx
40d38a:	51                   	push   %ecx
40d38b:	8b 48 0c             	mov    0xc(%eax),%ecx
40d38e:	8d 44 24 18          	lea    0x18(%esp),%eax
40d392:	ff 31                	push   (%ecx)
40d394:	50                   	push   %eax
40d395:	e8 92 3c ff ff       	call   0x40102c
40d39a:	83 c4 0c             	add    $0xc,%esp
40d39d:	6a 02                	push   $0x2
40d39f:	58                   	pop    %eax
40d3a0:	57                   	push   %edi
40d3a1:	66 89 44 24 14       	mov    %ax,0x14(%esp)
40d3a6:	ff 15 0c 23 41 00    	call   *0x41230c
40d3ac:	66 89 44 24 12       	mov    %ax,0x12(%esp)
40d3b1:	8d 44 24 10          	lea    0x10(%esp),%eax
40d3b5:	6a 10                	push   $0x10
40d3b7:	50                   	push   %eax
40d3b8:	56                   	push   %esi
40d3b9:	ff 15 14 23 41 00    	call   *0x412314
40d3bf:	85 c0                	test   %eax,%eax
40d3c1:	75 04                	jne    0x40d3c7
40d3c3:	8b c6                	mov    %esi,%eax
40d3c5:	eb 02                	jmp    0x40d3c9
40d3c7:	33 c0                	xor    %eax,%eax
40d3c9:	5f                   	pop    %edi
40d3ca:	5e                   	pop    %esi
40d3cb:	5b                   	pop    %ebx
40d3cc:	8b e5                	mov    %ebp,%esp
40d3ce:	5d                   	pop    %ebp
40d3cf:	c3                   	ret
40d3d0:	68 08 01 00 00       	push   $0x108
40d3d5:	e8 d3 3c ff ff       	call   0x4010ad
40d3da:	59                   	pop    %ecx
40d3db:	c3                   	ret
40d3dc:	53                   	push   %ebx
40d3dd:	56                   	push   %esi
40d3de:	57                   	push   %edi
40d3df:	8b da                	mov    %edx,%ebx
40d3e1:	8b f9                	mov    %ecx,%edi
40d3e3:	e8 e8 ff ff ff       	call   0x40d3d0
40d3e8:	8b f0                	mov    %eax,%esi
40d3ea:	85 f6                	test   %esi,%esi
40d3ec:	74 29                	je     0x40d417
40d3ee:	85 ff                	test   %edi,%edi
40d3f0:	74 25                	je     0x40d417
40d3f2:	57                   	push   %edi
40d3f3:	56                   	push   %esi
40d3f4:	ff 15 e0 21 41 00    	call   *0x4121e0
40d3fa:	33 c0                	xor    %eax,%eax
40d3fc:	89 9e 04 01 00 00    	mov    %ebx,0x104(%esi)
40d402:	50                   	push   %eax
40d403:	50                   	push   %eax
40d404:	56                   	push   %esi
40d405:	68 78 d0 40 00       	push   $0x40d078
40d40a:	50                   	push   %eax
40d40b:	50                   	push   %eax
40d40c:	ff 15 8c 20 41 00    	call   *0x41208c
40d412:	33 c0                	xor    %eax,%eax
40d414:	40                   	inc    %eax
40d415:	eb 09                	jmp    0x40d420
40d417:	56                   	push   %esi
40d418:	e8 a4 3c ff ff       	call   0x4010c1
40d41d:	59                   	pop    %ecx
40d41e:	33 c0                	xor    %eax,%eax
40d420:	5f                   	pop    %edi
40d421:	5e                   	pop    %esi
40d422:	5b                   	pop    %ebx
40d423:	c3                   	ret
40d424:	c3                   	ret
40d425:	55                   	push   %ebp
40d426:	8b ec                	mov    %esp,%ebp
40d428:	51                   	push   %ecx
40d429:	56                   	push   %esi
40d42a:	57                   	push   %edi
40d42b:	8b f9                	mov    %ecx,%edi
40d42d:	b9 d0 07 00 00       	mov    $0x7d0,%ecx
40d432:	e8 a4 86 ff ff       	call   0x405adb
40d437:	83 27 00             	andl   $0x0,(%edi)
40d43a:	8b f0                	mov    %eax,%esi
40d43c:	68 e8 03 00 00       	push   $0x3e8
40d441:	56                   	push   %esi
40d442:	6a 00                	push   $0x0
40d444:	ff 15 08 21 41 00    	call   *0x412108
40d44a:	56                   	push   %esi
40d44b:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40d44e:	e8 bf 5f ff ff       	call   0x403412
40d453:	50                   	push   %eax
40d454:	8b cf                	mov    %edi,%ecx
40d456:	e8 09 5e ff ff       	call   0x403264
40d45b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d45e:	e8 ca 85 ff ff       	call   0x405a2d
40d463:	8b c7                	mov    %edi,%eax
40d465:	5f                   	pop    %edi
40d466:	5e                   	pop    %esi
40d467:	c9                   	leave
40d468:	c3                   	ret
40d469:	55                   	push   %ebp
40d46a:	8b ec                	mov    %esp,%ebp
40d46c:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
40d472:	68 a0 42 41 00       	push   $0x4142a0
40d477:	c7 85 e4 fe ff ff 1c 	movl   $0x11c,-0x11c(%ebp)
40d47e:	01 00 00
40d481:	ff 15 b8 21 41 00    	call   *0x4121b8
40d487:	85 c0                	test   %eax,%eax
40d489:	74 19                	je     0x40d4a4
40d48b:	68 ac 42 41 00       	push   $0x4142ac
40d490:	50                   	push   %eax
40d491:	ff 15 b4 21 41 00    	call   *0x4121b4
40d497:	85 c0                	test   %eax,%eax
40d499:	74 14                	je     0x40d4af
40d49b:	8d 8d e4 fe ff ff    	lea    -0x11c(%ebp),%ecx
40d4a1:	51                   	push   %ecx
40d4a2:	ff d0                	call   *%eax
40d4a4:	8a 45 fe             	mov    -0x2(%ebp),%al
40d4a7:	3c 02                	cmp    $0x2,%al
40d4a9:	74 08                	je     0x40d4b3
40d4ab:	3c 03                	cmp    $0x3,%al
40d4ad:	74 04                	je     0x40d4b3
40d4af:	33 c0                	xor    %eax,%eax
40d4b1:	c9                   	leave
40d4b2:	c3                   	ret
40d4b3:	33 c0                	xor    %eax,%eax
40d4b5:	40                   	inc    %eax
40d4b6:	c9                   	leave
40d4b7:	c3                   	ret
40d4b8:	55                   	push   %ebp
40d4b9:	8b ec                	mov    %esp,%ebp
40d4bb:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
40d4c1:	68 a0 42 41 00       	push   $0x4142a0
40d4c6:	c7 85 e4 fe ff ff 1c 	movl   $0x11c,-0x11c(%ebp)
40d4cd:	01 00 00
40d4d0:	ff 15 b8 21 41 00    	call   *0x4121b8
40d4d6:	85 c0                	test   %eax,%eax
40d4d8:	74 19                	je     0x40d4f3
40d4da:	68 ac 42 41 00       	push   $0x4142ac
40d4df:	50                   	push   %eax
40d4e0:	ff 15 b4 21 41 00    	call   *0x4121b4
40d4e6:	85 c0                	test   %eax,%eax
40d4e8:	74 1a                	je     0x40d504
40d4ea:	8d 8d e4 fe ff ff    	lea    -0x11c(%ebp),%ecx
40d4f0:	51                   	push   %ecx
40d4f1:	ff d0                	call   *%eax
40d4f3:	83 bd f4 fe ff ff 02 	cmpl   $0x2,-0x10c(%ebp)
40d4fa:	75 08                	jne    0x40d504
40d4fc:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
40d502:	c9                   	leave
40d503:	c3                   	ret
40d504:	33 c0                	xor    %eax,%eax
40d506:	c9                   	leave
40d507:	c3                   	ret
40d508:	55                   	push   %ebp
40d509:	8b ec                	mov    %esp,%ebp
40d50b:	81 ec 40 02 00 00    	sub    $0x240,%esp
40d511:	53                   	push   %ebx
40d512:	56                   	push   %esi
40d513:	33 db                	xor    %ebx,%ebx
40d515:	c7 45 f0 10 00 00 00 	movl   $0x10,-0x10(%ebp)
40d51c:	68 08 02 00 00       	push   $0x208
40d521:	8d 85 c0 fd ff ff    	lea    -0x240(%ebp),%eax
40d527:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d52a:	53                   	push   %ebx
40d52b:	50                   	push   %eax
40d52c:	8b f1                	mov    %ecx,%esi
40d52e:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40d531:	66 c7 45 f8 00 05    	movw   $0x500,-0x8(%ebp)
40d537:	e8 16 3b ff ff       	call   0x401052
40d53c:	83 c4 0c             	add    $0xc,%esp
40d53f:	c7 45 ec 04 01 00 00 	movl   $0x104,-0x14(%ebp)
40d546:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d549:	50                   	push   %eax
40d54a:	53                   	push   %ebx
40d54b:	53                   	push   %ebx
40d54c:	53                   	push   %ebx
40d54d:	53                   	push   %ebx
40d54e:	53                   	push   %ebx
40d54f:	53                   	push   %ebx
40d550:	68 20 02 00 00       	push   $0x220
40d555:	6a 20                	push   $0x20
40d557:	6a 02                	push   $0x2
40d559:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d55c:	50                   	push   %eax
40d55d:	ff 15 58 20 41 00    	call   *0x412058
40d563:	85 c0                	test   %eax,%eax
40d565:	74 25                	je     0x40d58c
40d567:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d56a:	50                   	push   %eax
40d56b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d56e:	50                   	push   %eax
40d56f:	8d 45 c8             	lea    -0x38(%ebp),%eax
40d572:	50                   	push   %eax
40d573:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d576:	50                   	push   %eax
40d577:	8d 85 c0 fd ff ff    	lea    -0x240(%ebp),%eax
40d57d:	50                   	push   %eax
40d57e:	ff 75 fc             	push   -0x4(%ebp)
40d581:	53                   	push   %ebx
40d582:	ff 15 4c 20 41 00    	call   *0x41204c
40d588:	85 c0                	test   %eax,%eax
40d58a:	75 06                	jne    0x40d592
40d58c:	ff 15 0c 22 41 00    	call   *0x41220c
40d592:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
40d595:	74 09                	je     0x40d5a0
40d597:	ff 75 fc             	push   -0x4(%ebp)
40d59a:	ff 15 50 20 41 00    	call   *0x412050