4052d7:	0f 84 91 00 00 00    	je     0x40536e
4052dd:	83 e8 01             	sub    $0x1,%eax
4052e0:	74 64                	je     0x405346
4052e2:	83 e8 01             	sub    $0x1,%eax
4052e5:	74 37                	je     0x40531e
4052e7:	83 e8 01             	sub    $0x1,%eax
4052ea:	74 0f                	je     0x4052fb
4052ec:	be ff ff 00 80       	mov    $0x8000ffff,%esi
4052f1:	68 bc ba 44 00       	push   $0x44babc
4052f6:	e9 a8 fe ff ff       	jmp    0x4051a3
4052fb:	ff 75 14             	push   0x14(%ebp)
4052fe:	8d 85 d0 fa ff ff    	lea    -0x530(%ebp),%eax
405304:	50                   	push   %eax
405305:	e8 76 f8 ff ff       	call   0x404b80
40530a:	8b f0                	mov    %eax,%esi
40530c:	85 f6                	test   %esi,%esi
40530e:	0f 89 a4 00 00 00    	jns    0x4053b8
405314:	68 a0 ba 44 00       	push   $0x44baa0
405319:	e9 85 fe ff ff       	jmp    0x4051a3
40531e:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
405324:	89 bd d0 fe ff ff    	mov    %edi,-0x130(%ebp)
40532a:	50                   	push   %eax
40532b:	ff b5 d4 fe ff ff    	push   -0x12c(%ebp)
405331:	e8 4c f6 ff ff       	call   0x404982
405336:	8b f0                	mov    %eax,%esi
405338:	85 f6                	test   %esi,%esi
40533a:	79 7c                	jns    0x4053b8
40533c:	68 80 ba 44 00       	push   $0x44ba80
405341:	e9 5d fe ff ff       	jmp    0x4051a3
405346:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
40534c:	50                   	push   %eax
40534d:	ff b5 cc fe ff ff    	push   -0x134(%ebp)
405353:	ff b5 d4 fe ff ff    	push   -0x12c(%ebp)
405359:	e8 8b f4 ff ff       	call   0x4047e9
40535e:	8b f0                	mov    %eax,%esi
405360:	85 f6                	test   %esi,%esi
405362:	79 54                	jns    0x4053b8
405364:	68 60 ba 44 00       	push   $0x44ba60
405369:	e9 35 fe ff ff       	jmp    0x4051a3
40536e:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
405374:	89 bd d0 fe ff ff    	mov    %edi,-0x130(%ebp)
40537a:	50                   	push   %eax
40537b:	ff b5 d4 fe ff ff    	push   -0x12c(%ebp)
405381:	e8 59 f6 ff ff       	call   0x4049df
405386:	8b f0                	mov    %eax,%esi
405388:	85 f6                	test   %esi,%esi
40538a:	79 2c                	jns    0x4053b8
40538c:	68 40 ba 44 00       	push   $0x44ba40
405391:	e9 0d fe ff ff       	jmp    0x4051a3
405396:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
40539c:	50                   	push   %eax
40539d:	ff b5 cc fe ff ff    	push   -0x134(%ebp)
4053a3:	e8 8b f8 ff ff       	call   0x404c33
4053a8:	8b f0                	mov    %eax,%esi
4053aa:	85 f6                	test   %esi,%esi
4053ac:	79 0a                	jns    0x4053b8
4053ae:	68 20 ba 44 00       	push   $0x44ba20
4053b3:	e9 eb fd ff ff       	jmp    0x4051a3
4053b8:	8b 8d b8 fe ff ff    	mov    -0x148(%ebp),%ecx
4053be:	8b 85 c8 fa ff ff    	mov    -0x538(%ebp),%eax
4053c4:	8b 9d e8 f9 ff ff    	mov    -0x618(%ebp),%ebx
4053ca:	89 01                	mov    %eax,(%ecx)
4053cc:	83 bd dc fe ff ff 00 	cmpl   $0x0,-0x124(%ebp)
4053d3:	74 0b                	je     0x4053e0
4053d5:	ff b5 dc fe ff ff    	push   -0x124(%ebp)
4053db:	e8 0f 01 04 00       	call   0x4454ef
4053e0:	85 f6                	test   %esi,%esi
4053e2:	79 23                	jns    0x405407
4053e4:	83 bd c4 fd ff ff 00 	cmpl   $0x0,-0x23c(%ebp)
4053eb:	75 1a                	jne    0x405407
4053ed:	33 c0                	xor    %eax,%eax
4053ef:	50                   	push   %eax
4053f0:	50                   	push   %eax
4053f1:	50                   	push   %eax
4053f2:	68 d0 ba 44 00       	push   $0x44bad0
4053f7:	68 d8 ba 44 00       	push   $0x44bad8
4053fc:	68 e8 ba 44 00       	push   $0x44bae8
405401:	50                   	push   %eax
405402:	e8 14 b0 03 00       	call   0x44041b
405407:	8d 85 88 fa ff ff    	lea    -0x578(%ebp),%eax
40540d:	50                   	push   %eax
40540e:	e8 10 83 00 00       	call   0x40d723
405413:	ff b5 e0 fa ff ff    	push   -0x520(%ebp)
405419:	e8 b2 52 01 00       	call   0x41a6d0
40541e:	e8 fb 54 01 00       	call   0x41a91e
405423:	85 db                	test   %ebx,%ebx
405425:	74 2c                	je     0x405453
405427:	8b 85 08 fa ff ff    	mov    -0x5f8(%ebp),%eax
40542d:	85 c0                	test   %eax,%eax
40542f:	74 22                	je     0x405453
405431:	83 f8 06             	cmp    $0x6,%eax
405434:	74 1d                	je     0x405453
405436:	50                   	push   %eax
405437:	e8 2e ed 00 00       	call   0x41416a
40543c:	50                   	push   %eax
40543d:	68 08 00 00 a0       	push   $0xa0000008
405442:	6a 02                	push   $0x2
405444:	e8 c6 00 00 00       	call   0x40550f
405449:	83 c4 0c             	add    $0xc,%esp
40544c:	be c2 0b 07 80       	mov    $0x80070bc2,%esi
405451:	33 db                	xor    %ebx,%ebx
405453:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
405459:	50                   	push   %eax
40545a:	e8 3d fa ff ff       	call   0x404e9c
40545f:	83 bd c8 fe ff ff 00 	cmpl   $0x0,-0x138(%ebp)
405466:	74 05                	je     0x40546d
405468:	e8 a4 e4 03 00       	call   0x443911
40546d:	83 bd c4 fe ff ff 00 	cmpl   $0x0,-0x13c(%ebp)
405474:	74 05                	je     0x40547b
405476:	e8 55 d9 03 00       	call   0x442dd0
40547b:	83 bd c0 fe ff ff 00 	cmpl   $0x0,-0x140(%ebp)
405482:	74 05                	je     0x405489
405484:	e8 8e be 03 00       	call   0x441317
405489:	83 bd bc fe ff ff 00 	cmpl   $0x0,-0x144(%ebp)
405490:	74 05                	je     0x405497
405492:	e8 25 a8 03 00       	call   0x43fcbc
405497:	85 ff                	test   %edi,%edi
405499:	74 06                	je     0x4054a1
40549b:	ff 15 ac b3 44 00    	call   *0x44b3ac
4054a1:	83 bd d0 fe ff ff 00 	cmpl   $0x0,-0x130(%ebp)
4054a8:	74 39                	je     0x4054e3
4054aa:	85 f6                	test   %esi,%esi
4054ac:	79 04                	jns    0x4054b2
4054ae:	8b fe                	mov    %esi,%edi
4054b0:	eb 08                	jmp    0x4054ba
4054b2:	8b 85 b8 fe ff ff    	mov    -0x148(%ebp),%eax
4054b8:	8b 38                	mov    (%eax),%edi
4054ba:	53                   	push   %ebx
4054bb:	e8 70 e7 00 00       	call   0x413c30
4054c0:	50                   	push   %eax
4054c1:	57                   	push   %edi
4054c2:	68 07 00 00 20       	push   $0x20000007
4054c7:	6a 02                	push   $0x2
4054c9:	e8 41 00 00 00       	call   0x40550f
4054ce:	83 c4 10             	add    $0x10,%esp
4054d1:	85 db                	test   %ebx,%ebx
4054d3:	74 0e                	je     0x4054e3
4054d5:	68 05 00 00 a0       	push   $0xa0000005
4054da:	6a 02                	push   $0x2
4054dc:	e8 2e 00 00 00       	call   0x40550f
4054e1:	59                   	pop    %ecx
4054e2:	59                   	pop    %ecx
4054e3:	6a 00                	push   $0x0
4054e5:	e8 21 ab 03 00       	call   0x44000b
4054ea:	85 db                	test   %ebx,%ebx
4054ec:	74 05                	je     0x4054f3
4054ee:	e8 f6 ef ff ff       	call   0x4044e9
4054f3:	6a 00                	push   $0x0
4054f5:	e8 fb b1 03 00       	call   0x4406f5
4054fa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4054fd:	8b c6                	mov    %esi,%eax
4054ff:	5f                   	pop    %edi
405500:	5e                   	pop    %esi
405501:	33 cd                	xor    %ebp,%ecx
405503:	5b                   	pop    %ebx
405504:	e8 2d 89 02 00       	call   0x42de36
405509:	8b e5                	mov    %ebp,%esp
40550b:	5d                   	pop    %ebp
40550c:	c2 14 00             	ret    $0x14
40550f:	55                   	push   %ebp
405510:	8b ec                	mov    %esp,%ebp
405512:	8d 45 10             	lea    0x10(%ebp),%eax
405515:	50                   	push   %eax
405516:	6a 00                	push   $0x0
405518:	ff 75 0c             	push   0xc(%ebp)
40551b:	ff 75 08             	push   0x8(%ebp)
40551e:	e8 95 ae 03 00       	call   0x4403b8
405523:	5d                   	pop    %ebp
405524:	c3                   	ret
405525:	a1 14 b0 44 00       	mov    0x44b014,%eax
40552a:	a3 5c aa 46 00       	mov    %eax,0x46aa5c
40552f:	c3                   	ret
405530:	55                   	push   %ebp
405531:	8b ec                	mov    %esp,%ebp
405533:	51                   	push   %ecx
405534:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405538:	8d 45 fc             	lea    -0x4(%ebp),%eax
40553b:	56                   	push   %esi
40553c:	57                   	push   %edi
40553d:	8b 7d 08             	mov    0x8(%ebp),%edi
405540:	50                   	push   %eax
405541:	ff 75 0c             	push   0xc(%ebp)
405544:	57                   	push   %edi
405545:	e8 6c 00 00 00       	call   0x4055b6
40554a:	8b f0                	mov    %eax,%esi
40554c:	85 f6                	test   %esi,%esi
40554e:	79 0f                	jns    0x40555f
405550:	68 50 d4 44 00       	push   $0x44d450
405555:	56                   	push   %esi
405556:	e8 d4 ab 03 00       	call   0x44012f
40555b:	59                   	pop    %ecx
40555c:	59                   	pop    %ecx
40555d:	eb 4d                	jmp    0x4055ac
40555f:	53                   	push   %ebx
405560:	8b 5d fc             	mov    -0x4(%ebp),%ebx
405563:	83 fe 01             	cmp    $0x1,%esi
405566:	75 1f                	jne    0x405587
405568:	53                   	push   %ebx
405569:	ff 75 0c             	push   0xc(%ebp)
40556c:	57                   	push   %edi
40556d:	e8 54 15 00 00       	call   0x406ac6
405572:	8b f0                	mov    %eax,%esi
405574:	85 f6                	test   %esi,%esi
405576:	79 0f                	jns    0x405587
405578:	68 70 d4 44 00       	push   $0x44d470
40557d:	56                   	push   %esi
40557e:	e8 ac ab 03 00       	call   0x44012f
405583:	59                   	pop    %ecx
405584:	59                   	pop    %ecx
405585:	eb 24                	jmp    0x4055ab
405587:	8b 45 18             	mov    0x18(%ebp),%eax
40558a:	6b cb 38             	imul   $0x38,%ebx,%ecx
40558d:	03 4f 20             	add    0x20(%edi),%ecx
405590:	89 41 28             	mov    %eax,0x28(%ecx)
405593:	33 c0                	xor    %eax,%eax
405595:	39 45 1c             	cmp    %eax,0x1c(%ebp)
405598:	0f 94 c0             	sete   %al
40559b:	40                   	inc    %eax
40559c:	89 41 2c             	mov    %eax,0x2c(%ecx)
40559f:	8b 45 10             	mov    0x10(%ebp),%eax
4055a2:	89 41 30             	mov    %eax,0x30(%ecx)
4055a5:	8b 45 14             	mov    0x14(%ebp),%eax
4055a8:	89 41 34             	mov    %eax,0x34(%ecx)
4055ab:	5b                   	pop    %ebx
4055ac:	5f                   	pop    %edi
4055ad:	8b c6                	mov    %esi,%eax
4055af:	5e                   	pop    %esi
4055b0:	8b e5                	mov    %ebp,%esp
4055b2:	5d                   	pop    %ebp
4055b3:	c2 18 00             	ret    $0x18
4055b6:	55                   	push   %ebp
4055b7:	8b ec                	mov    %esp,%ebp
4055b9:	51                   	push   %ecx
4055ba:	51                   	push   %ecx
4055bb:	8b 4d 08             	mov    0x8(%ebp),%ecx
4055be:	53                   	push   %ebx
4055bf:	56                   	push   %esi
4055c0:	57                   	push   %edi
4055c1:	8b 79 1c             	mov    0x1c(%ecx),%edi
4055c4:	33 f6                	xor    %esi,%esi
4055c6:	8b de                	mov    %esi,%ebx
4055c8:	85 ff                	test   %edi,%edi
4055ca:	0f 84 9a 00 00 00    	je     0x40566a
4055d0:	8b c7                	mov    %edi,%eax
4055d2:	d1 e8                	shr    $1,%eax
4055d4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4055d7:	03 c3                	add    %ebx,%eax
4055d9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4055dc:	6b c0 38             	imul   $0x38,%eax,%eax
4055df:	6a ff                	push   $0xffffffff
4055e1:	03 41 20             	add    0x20(%ecx),%eax
4055e4:	ff 30                	push   (%eax)
4055e6:	6a ff                	push   $0xffffffff
4055e8:	ff 75 0c             	push   0xc(%ebp)
4055eb:	68 00 10 00 00       	push   $0x1000
4055f0:	6a 7f                	push   $0x7f
4055f2:	ff 15 28 b1 44 00    	call   *0x44b128
4055f8:	83 e8 01             	sub    $0x1,%eax
4055fb:	74 18                	je     0x405615
4055fd:	83 e8 01             	sub    $0x1,%eax
405600:	74 5c                	je     0x40565e
405602:	83 e8 01             	sub    $0x1,%eax
405605:	75 1a                	jne    0x405621
405607:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40560a:	83 c8 ff             	or     $0xffffffff,%eax
40560d:	2b 45 fc             	sub    -0x4(%ebp),%eax
405610:	43                   	inc    %ebx
405611:	03 f8                	add    %eax,%edi
405613:	eb 03                	jmp    0x405618
405615:	8b 7d fc             	mov    -0x4(%ebp),%edi
405618:	85 ff                	test   %edi,%edi
40561a:	74 4e                	je     0x40566a
40561c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40561f:	eb af                	jmp    0x4055d0
405621:	ff 15 e8 b0 44 00    	call   *0x44b0e8
405627:	0f b7 f0             	movzwl %ax,%esi
40562a:	81 ce 00 00 07 80    	or     $0x80070000,%esi
405630:	85 c0                	test   %eax,%eax
405632:	0f 4e f0             	cmovle %eax,%esi
405635:	b8 05 40 00 80       	mov    $0x80004005,%eax
40563a:	85 f6                	test   %esi,%esi
40563c:	0f 49 f0             	cmovns %eax,%esi
40563f:	56                   	push   %esi
405640:	68 9f 05 00 00       	push   $0x59f
405645:	68 bc cc 44 00       	push   $0x44ccbc
40564a:	e8 84 e1 ff ff       	call   0x4037d3
40564f:	68 c0 d4 44 00       	push   $0x44d4c0
405654:	56                   	push   %esi
405655:	e8 d5 aa 03 00       	call   0x44012f
40565a:	59                   	pop    %ecx
40565b:	59                   	pop    %ecx
40565c:	eb 14                	jmp    0x405672
40565e:	8b 45 10             	mov    0x10(%ebp),%eax
405661:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405664:	03 cb                	add    %ebx,%ecx
405666:	89 08                	mov    %ecx,(%eax)
405668:	eb 08                	jmp    0x405672
40566a:	8b 45 10             	mov    0x10(%ebp),%eax
40566d:	33 f6                	xor    %esi,%esi
40566f:	46                   	inc    %esi
405670:	89 18                	mov    %ebx,(%eax)
405672:	5f                   	pop    %edi
405673:	8b c6                	mov    %esi,%eax
405675:	5e                   	pop    %esi
405676:	5b                   	pop    %ebx
405677:	8b e5                	mov    %ebp,%esp
405679:	5d                   	pop    %ebp
40567a:	c2 0c 00             	ret    $0xc
40567d:	55                   	push   %ebp
40567e:	8b ec                	mov    %esp,%ebp
405680:	83 ec 24             	sub    $0x24,%esp
405683:	53                   	push   %ebx
405684:	33 c0                	xor    %eax,%eax
405686:	56                   	push   %esi
405687:	57                   	push   %edi
405688:	ff 75 08             	push   0x8(%ebp)
40568b:	8b d8                	mov    %eax,%ebx
40568d:	89 45 f4             	mov    %eax,-0xc(%ebp)
405690:	89 45 f8             	mov    %eax,-0x8(%ebp)
405693:	89 45 ec             	mov    %eax,-0x14(%ebp)
405696:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405699:	89 45 f0             	mov    %eax,-0x10(%ebp)
40569c:	89 45 e0             	mov    %eax,-0x20(%ebp)
40569f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4056a2:	ff 15 b4 b1 44 00    	call   *0x44b1b4
4056a8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4056ab:	57                   	push   %edi
4056ac:	ff 15 f8 b0 44 00    	call   *0x44b0f8
4056b2:	40                   	inc    %eax
4056b3:	50                   	push   %eax
4056b4:	8d 45 f4             	lea    -0xc(%ebp),%eax
4056b7:	50                   	push   %eax
4056b8:	e8 21 c8 ff ff       	call   0x401ede
4056bd:	8b f0                	mov    %eax,%esi
4056bf:	89 75 0c             	mov    %esi,0xc(%ebp)
4056c2:	85 f6                	test   %esi,%esi
4056c4:	0f 89 e7 01 00 00    	jns    0x4058b1
4056ca:	68 5c d2 44 00       	push   $0x44d25c
4056cf:	56                   	push   %esi
4056d0:	e8 5a aa 03 00       	call   0x44012f
4056d5:	59                   	pop    %ecx
4056d6:	59                   	pop    %ecx
4056d7:	e9 77 04 00 00       	jmp    0x405b53
4056dc:	8d 43 02             	lea    0x2(%ebx),%eax
4056df:	6a 5d                	push   $0x5d
4056e1:	50                   	push   %eax
4056e2:	e8 e3 a0 02 00       	call   0x42f7ca
4056e7:	89 45 dc             	mov    %eax,-0x24(%ebp)
4056ea:	59                   	pop    %ecx
4056eb:	59                   	pop    %ecx