4043ca:	0f 84 b1 01 00 00    	je     0x404581
4043d0:	53                   	push   %ebx
4043d1:	c1 e6 17             	shl    $0x17,%esi
4043d4:	8d 8c 24 34 03 00 00 	lea    0x334(%esp),%ecx
4043db:	81 ce 00 00 08 00    	or     $0x80000,%esi
4043e1:	56                   	push   %esi
4043e2:	53                   	push   %ebx
4043e3:	53                   	push   %ebx
4043e4:	53                   	push   %ebx
4043e5:	51                   	push   %ecx
4043e6:	68 a0 95 43 00       	push   $0x4395a0
4043eb:	50                   	push   %eax
4043ec:	ff 15 dc 11 43 00    	call   *0x4311dc
4043f2:	8b f0                	mov    %eax,%esi
4043f4:	85 f6                	test   %esi,%esi
4043f6:	0f 84 7f 01 00 00    	je     0x40457b
4043fc:	e8 2f b0 02 00       	call   0x42f430
404401:	8b d8                	mov    %eax,%ebx
404403:	e8 28 b0 02 00       	call   0x42f430
404408:	50                   	push   %eax
404409:	53                   	push   %ebx
40440a:	68 6c 97 43 00       	push   $0x43976c
40440f:	68 ac 95 43 00       	push   $0x4395ac
404414:	8d 84 24 e8 00 00 00 	lea    0xe8(%esp),%eax
40441b:	6a 2c                	push   $0x2c
40441d:	50                   	push   %eax
40441e:	e8 fa f5 ff ff       	call   0x403a1d
404423:	33 c0                	xor    %eax,%eax
404425:	8d 8c 24 b0 00 00 00 	lea    0xb0(%esp),%ecx
40442c:	83 c4 18             	add    $0x18,%esp
40442f:	66 89 84 24 2e 01 00 	mov    %ax,0x12e(%esp)
404436:	00
404437:	8d 84 24 d8 00 00 00 	lea    0xd8(%esp),%eax
40443e:	50                   	push   %eax
40443f:	e8 ac db ff ff       	call   0x401ff0
404444:	68 c8 95 43 00       	push   $0x4395c8
404449:	8d 8c 24 84 00 00 00 	lea    0x84(%esp),%ecx
404450:	e8 9b db ff ff       	call   0x401ff0
404455:	6a ff                	push   $0xffffffff
404457:	33 db                	xor    %ebx,%ebx
404459:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
404460:	53                   	push   %ebx
404461:	50                   	push   %eax
404462:	8d 8c 24 8c 00 00 00 	lea    0x8c(%esp),%ecx
404469:	e8 51 f1 ff ff       	call   0x4035bf
40446e:	83 bc 24 94 00 00 00 	cmpl   $0x8,0x94(%esp)
404475:	08
404476:	8d 84 24 80 00 00 00 	lea    0x80(%esp),%eax
40447d:	68 00 00 00 20       	push   $0x20000000
404482:	0f 43 84 24 84 00 00 	cmovae 0x84(%esp),%eax
404489:	00
40448a:	6a ff                	push   $0xffffffff
40448c:	50                   	push   %eax
40448d:	56                   	push   %esi
40448e:	ff 15 d4 11 43 00    	call   *0x4311d4
404494:	8b 54 24 18          	mov    0x18(%esp),%edx
404498:	8d 44 24 68          	lea    0x68(%esp),%eax
40449c:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4044a0:	50                   	push   %eax
4044a1:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
4044a8:	c7 84 24 80 00 00 00 	movl   $0xf,0x80(%esp)
4044af:	0f 00 00 00
4044b3:	50                   	push   %eax
4044b4:	ff 74 24 1c          	push   0x1c(%esp)
4044b8:	89 9c 24 84 00 00 00 	mov    %ebx,0x84(%esp)
4044bf:	88 5c 24 74          	mov    %bl,0x74(%esp)
4044c3:	e8 5f 02 00 00       	call   0x404727
4044c8:	83 c4 0c             	add    $0xc,%esp
4044cb:	84 c0                	test   %al,%al
4044cd:	74 7c                	je     0x40454b
4044cf:	ff 74 24 78          	push   0x78(%esp)
4044d3:	83 bc 24 80 00 00 00 	cmpl   $0x10,0x80(%esp)
4044da:	10
4044db:	8d 44 24 6c          	lea    0x6c(%esp),%eax
4044df:	0f 43 44 24 6c       	cmovae 0x6c(%esp),%eax
4044e4:	50                   	push   %eax
4044e5:	53                   	push   %ebx
4044e6:	53                   	push   %ebx
4044e7:	56                   	push   %esi
4044e8:	ff 15 d0 11 43 00    	call   *0x4311d0
4044ee:	85 c0                	test   %eax,%eax
4044f0:	74 59                	je     0x40454b
4044f2:	53                   	push   %ebx
4044f3:	8d 44 24 24          	lea    0x24(%esp),%eax
4044f7:	c7 44 24 24 08 00 00 	movl   $0x8,0x24(%esp)
4044fe:	00
4044ff:	50                   	push   %eax
404500:	8d 84 24 b8 00 00 00 	lea    0xb8(%esp),%eax
404507:	50                   	push   %eax
404508:	6a 13                	push   $0x13
40450a:	56                   	push   %esi
40450b:	ff 15 c8 11 43 00    	call   *0x4311c8
404511:	85 c0                	test   %eax,%eax
404513:	74 36                	je     0x40454b
404515:	6a 0a                	push   $0xa
404517:	8d 84 24 b4 00 00 00 	lea    0xb4(%esp),%eax
40451e:	53                   	push   %ebx
40451f:	50                   	push   %eax
404520:	e8 a0 4e 01 00       	call   0x4193c5
404525:	8b 4c 24 30          	mov    0x30(%esp),%ecx
404529:	83 c4 0c             	add    $0xc,%esp
40452c:	85 c9                	test   %ecx,%ecx
40452e:	74 02                	je     0x404532
404530:	89 01                	mov    %eax,(%ecx)
404532:	b9 c8 00 00 00       	mov    $0xc8,%ecx
404537:	3b c1                	cmp    %ecx,%eax
404539:	0f 94 c3             	sete   %bl
40453c:	75 0d                	jne    0x40454b
40453e:	8b 54 24 28          	mov    0x28(%esp),%edx
404542:	8b ce                	mov    %esi,%ecx
404544:	e8 5a 00 00 00       	call   0x4045a3
404549:	8a d8                	mov    %al,%bl
40454b:	6a 00                	push   $0x0
40454d:	6a 01                	push   $0x1
40454f:	8d 4c 24 70          	lea    0x70(%esp),%ecx
404553:	e8 a7 18 00 00       	call   0x405dff
404558:	6a 00                	push   $0x0
40455a:	6a 01                	push   $0x1
40455c:	8d 8c 24 88 00 00 00 	lea    0x88(%esp),%ecx
404563:	e8 5d db ff ff       	call   0x4020c5
404568:	6a 00                	push   $0x0
40456a:	6a 01                	push   $0x1
40456c:	8d 8c 24 a0 00 00 00 	lea    0xa0(%esp),%ecx
404573:	e8 4d db ff ff       	call   0x4020c5
404578:	56                   	push   %esi
404579:	ff d5                	call   *%ebp
40457b:	ff 74 24 10          	push   0x10(%esp)
40457f:	ff d5                	call   *%ebp
404581:	57                   	push   %edi
404582:	ff d5                	call   *%ebp
404584:	8a c3                	mov    %bl,%al
404586:	eb 02                	jmp    0x40458a
404588:	32 c0                	xor    %al,%al
40458a:	8b 8c 24 34 05 00 00 	mov    0x534(%esp),%ecx
404591:	5f                   	pop    %edi
404592:	5e                   	pop    %esi
404593:	5d                   	pop    %ebp
404594:	5b                   	pop    %ebx
404595:	33 cc                	xor    %esp,%ecx
404597:	e8 0b 57 00 00       	call   0x409ca7
40459c:	81 c4 28 05 00 00    	add    $0x528,%esp
4045a2:	c3                   	ret
4045a3:	81 ec 9c 00 00 00    	sub    $0x9c,%esp
4045a9:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
4045ae:	33 c4                	xor    %esp,%eax
4045b0:	89 84 24 94 00 00 00 	mov    %eax,0x94(%esp)
4045b7:	53                   	push   %ebx
4045b8:	55                   	push   %ebp
4045b9:	56                   	push   %esi
4045ba:	33 c0                	xor    %eax,%eax
4045bc:	89 54 24 28          	mov    %edx,0x28(%esp)
4045c0:	57                   	push   %edi
4045c1:	50                   	push   %eax
4045c2:	88 44 24 1b          	mov    %al,0x1b(%esp)
4045c6:	8b d8                	mov    %eax,%ebx
4045c8:	89 44 24 44          	mov    %eax,0x44(%esp)
4045cc:	8b e9                	mov    %ecx,%ebp
4045ce:	88 44 24 34          	mov    %al,0x34(%esp)
4045d2:	8d 44 24 24          	lea    0x24(%esp),%eax
4045d6:	50                   	push   %eax
4045d7:	8d 44 24 68          	lea    0x68(%esp),%eax
4045db:	c7 44 24 28 40 00 00 	movl   $0x40,0x28(%esp)
4045e2:	00
4045e3:	50                   	push   %eax
4045e4:	6a 05                	push   $0x5
4045e6:	55                   	push   %ebp
4045e7:	c7 44 24 58 0f 00 00 	movl   $0xf,0x58(%esp)
4045ee:	00
4045ef:	ff 15 c8 11 43 00    	call   *0x4311c8
4045f5:	85 c0                	test   %eax,%eax
4045f7:	74 21                	je     0x40461a
4045f9:	6a 0a                	push   $0xa
4045fb:	8d 44 24 64          	lea    0x64(%esp),%eax
4045ff:	c6 44 24 1b 01       	movb   $0x1,0x1b(%esp)
404604:	53                   	push   %ebx
404605:	50                   	push   %eax
404606:	e8 ba 4d 01 00       	call   0x4193c5
40460b:	83 c4 0c             	add    $0xc,%esp
40460e:	8d 4c 24 30          	lea    0x30(%esp),%ecx
404612:	8b d8                	mov    %eax,%ebx
404614:	53                   	push   %ebx
404615:	e8 d3 07 00 00       	call   0x404ded
40461a:	33 c0                	xor    %eax,%eax
40461c:	50                   	push   %eax
40461d:	89 44 24 20          	mov    %eax,0x20(%esp)
404621:	50                   	push   %eax
404622:	eb 6a                	jmp    0x40468e
404624:	8b 7c 24 18          	mov    0x18(%esp),%edi
404628:	85 ff                	test   %edi,%edi
40462a:	0f 84 b9 00 00 00    	je     0x4046e9
404630:	33 d2                	xor    %edx,%edx
404632:	51                   	push   %ecx
404633:	42                   	inc    %edx
404634:	8b cf                	mov    %edi,%ecx
404636:	e8 4b cb ff ff       	call   0x401186
40463b:	59                   	pop    %ecx
40463c:	57                   	push   %edi
40463d:	8b f0                	mov    %eax,%esi
40463f:	6a 00                	push   $0x0
404641:	56                   	push   %esi
404642:	e8 79 6d 00 00       	call   0x40b3c0
404647:	83 c4 0c             	add    $0xc,%esp
40464a:	8d 44 24 24          	lea    0x24(%esp),%eax
40464e:	50                   	push   %eax
40464f:	ff 74 24 1c          	push   0x1c(%esp)
404653:	56                   	push   %esi
404654:	55                   	push   %ebp
404655:	ff 15 d8 11 43 00    	call   *0x4311d8
40465b:	89 44 24 28          	mov    %eax,0x28(%esp)
40465f:	85 c0                	test   %eax,%eax
404661:	74 6e                	je     0x4046d1
404663:	8b 4c 24 24          	mov    0x24(%esp),%ecx
404667:	85 c9                	test   %ecx,%ecx
404669:	74 66                	je     0x4046d1
40466b:	01 4c 24 1c          	add    %ecx,0x1c(%esp)
40466f:	51                   	push   %ecx
404670:	56                   	push   %esi
404671:	8d 4c 24 38          	lea    0x38(%esp),%ecx
404675:	e8 a7 07 00 00       	call   0x404e21
40467a:	85 f6                	test   %esi,%esi
40467c:	74 0c                	je     0x40468a
40467e:	6a 01                	push   $0x1
404680:	8b d7                	mov    %edi,%edx
404682:	8b ce                	mov    %esi,%ecx
404684:	e8 55 cb ff ff       	call   0x4011de
404689:	59                   	pop    %ecx
40468a:	6a 00                	push   $0x0
40468c:	6a 00                	push   $0x0
40468e:	8d 44 24 20          	lea    0x20(%esp),%eax
404692:	50                   	push   %eax
404693:	55                   	push   %ebp
404694:	ff 15 c0 11 43 00    	call   *0x4311c0
40469a:	85 c0                	test   %eax,%eax
40469c:	75 86                	jne    0x404624
40469e:	32 db                	xor    %bl,%bl
4046a0:	8b 54 24 44          	mov    0x44(%esp),%edx
4046a4:	83 fa 10             	cmp    $0x10,%edx
4046a7:	72 0d                	jb     0x4046b6
4046a9:	8b 4c 24 30          	mov    0x30(%esp),%ecx
4046ad:	42                   	inc    %edx
4046ae:	6a 01                	push   $0x1
4046b0:	e8 29 cb ff ff       	call   0x4011de
4046b5:	59                   	pop    %ecx
4046b6:	8b 8c 24 a4 00 00 00 	mov    0xa4(%esp),%ecx
4046bd:	8a c3                	mov    %bl,%al
4046bf:	5f                   	pop    %edi
4046c0:	5e                   	pop    %esi
4046c1:	5d                   	pop    %ebp
4046c2:	5b                   	pop    %ebx
4046c3:	33 cc                	xor    %esp,%ecx
4046c5:	e8 dd 55 00 00       	call   0x409ca7
4046ca:	81 c4 9c 00 00 00    	add    $0x9c,%esp
4046d0:	c3                   	ret
4046d1:	85 f6                	test   %esi,%esi
4046d3:	74 10                	je     0x4046e5
4046d5:	6a 01                	push   $0x1
4046d7:	8b d7                	mov    %edi,%edx
4046d9:	8b ce                	mov    %esi,%ecx
4046db:	e8 fe ca ff ff       	call   0x4011de
4046e0:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4046e4:	59                   	pop    %ecx
4046e5:	85 c0                	test   %eax,%eax
4046e7:	74 b5                	je     0x40469e
4046e9:	80 7c 24 17 00       	cmpb   $0x0,0x17(%esp)
4046ee:	74 06                	je     0x4046f6
4046f0:	39 5c 24 1c          	cmp    %ebx,0x1c(%esp)
4046f4:	75 a8                	jne    0x40469e
4046f6:	8b 74 24 2c          	mov    0x2c(%esp),%esi
4046fa:	b3 01                	mov    $0x1,%bl
4046fc:	85 f6                	test   %esi,%esi
4046fe:	74 a0                	je     0x4046a0
404700:	8d 54 24 30          	lea    0x30(%esp),%edx
404704:	8d 4c 24 48          	lea    0x48(%esp),%ecx
404708:	e8 11 05 00 00       	call   0x404c1e
40470d:	50                   	push   %eax
40470e:	8b ce                	mov    %esi,%ecx
404710:	e8 90 ec ff ff       	call   0x4033a5
404715:	6a 00                	push   $0x0
404717:	6a 01                	push   $0x1
404719:	8d 4c 24 50          	lea    0x50(%esp),%ecx
40471d:	e8 a3 d9 ff ff       	call   0x4020c5
404722:	e9 79 ff ff ff       	jmp    0x4046a0
404727:	81 ec f0 00 00 00    	sub    $0xf0,%esp
40472d:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
404732:	33 c4                	xor    %esp,%eax
404734:	89 84 24 ec 00 00 00 	mov    %eax,0xec(%esp)
40473b:	8b 84 24 f4 00 00 00 	mov    0xf4(%esp),%eax
404742:	53                   	push   %ebx
404743:	55                   	push   %ebp
404744:	8b da                	mov    %edx,%ebx
404746:	89 44 24 18          	mov    %eax,0x18(%esp)
40474a:	33 c0                	xor    %eax,%eax
40474c:	8d 54 24 0c          	lea    0xc(%esp),%edx
404750:	56                   	push   %esi
404751:	8b b4 24 04 01 00 00 	mov    0x104(%esp),%esi
404758:	8b e9                	mov    %ecx,%ebp
40475a:	57                   	push   %edi
40475b:	8b bc 24 0c 01 00 00 	mov    0x10c(%esp),%edi
404762:	8b cb                	mov    %ebx,%ecx
404764:	89 44 24 14          	mov    %eax,0x14(%esp)
404768:	89 44 24 18          	mov    %eax,0x18(%esp)
40476c:	89 44 24 1c          	mov    %eax,0x1c(%esp)
404770:	e8 cc 03 00 00       	call   0x404b41
404775:	84 c0                	test   %al,%al
404777:	75 07                	jne    0x404780
404779:	32 db                	xor    %bl,%bl
40477b:	e9 9d 03 00 00       	jmp    0x404b1d
404780:	51                   	push   %ecx
404781:	8b d6                	mov    %esi,%edx
404783:	8d 8c 24 a0 00 00 00 	lea    0xa0(%esp),%ecx
40478a:	e8 51 05 00 00       	call   0x404ce0
40478f:	83 bc 24 b0 00 00 00 	cmpl   $0x0,0xb0(%esp)
404796:	00
404797:	59                   	pop    %ecx
404798:	75 07                	jne    0x4047a1
40479a:	32 db                	xor    %bl,%bl
40479c:	e9 6c 03 00 00       	jmp    0x404b0d
4047a1:	83 67 10 00          	andl   $0x0,0x10(%edi)
4047a5:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
4047a9:	72 04                	jb     0x4047af
4047ab:	8b 07                	mov    (%edi),%eax
4047ad:	eb 02                	jmp    0x4047b1
4047af:	8b c7                	mov    %edi,%eax
4047b1:	c6 00 00             	movb   $0x0,(%eax)
4047b4:	8b 45 00             	mov    0x0(%ebp),%eax
4047b7:	8b 30                	mov    (%eax),%esi
4047b9:	89 74 24 10          	mov    %esi,0x10(%esp)
4047bd:	3b f0                	cmp    %eax,%esi
4047bf:	0f 84 73 01 00 00    	je     0x404938
4047c5:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
4047cc:	ba 28 96 43 00       	mov    $0x439628,%edx
4047d1:	68 24 96 43 00       	push   $0x439624
4047d6:	50                   	push   %eax
4047d7:	8d 8c 24 8c 00 00 00 	lea    0x8c(%esp),%ecx
4047de:	e8 aa 1e 00 00       	call   0x40668d
4047e3:	59                   	pop    %ecx
4047e4:	8b d0                	mov    %eax,%edx
4047e6:	8d 4c 24 28          	lea    0x28(%esp),%ecx
4047ea:	e8 eb 1e 00 00       	call   0x4066da
4047ef:	59                   	pop    %ecx
4047f0:	6a ff                	push   $0xffffffff
4047f2:	6a 00                	push   $0x0
4047f4:	50                   	push   %eax
4047f5:	8b cf                	mov    %edi,%ecx
4047f7:	e8 13 18 00 00       	call   0x40600f
4047fc:	6a 00                	push   $0x0
4047fe:	6a 01                	push   $0x1
404800:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
404804:	e8 f6 15 00 00       	call   0x405dff
404809:	6a 00                	push   $0x0