4052d2:	59                   	pop    %ecx
4052d3:	8b de                	mov    %esi,%ebx
4052d5:	85 f6                	test   %esi,%esi
4052d7:	75 e8                	jne    0x4052c1
4052d9:	5e                   	pop    %esi
4052da:	8b 4f 4c             	mov    0x4c(%edi),%ecx
4052dd:	33 db                	xor    %ebx,%ebx
4052df:	85 c9                	test   %ecx,%ecx
4052e1:	74 0d                	je     0x4052f0
4052e3:	8d 41 fc             	lea    -0x4(%ecx),%eax
4052e6:	39 18                	cmp    %ebx,(%eax)
4052e8:	74 44                	je     0x40532e
4052ea:	8b 01                	mov    (%ecx),%eax
4052ec:	6a 03                	push   $0x3
4052ee:	ff 10                	call   *(%eax)
4052f0:	ff 77 14             	push   0x14(%edi)
4052f3:	e8 66 a2 01 00       	call   0x41f55e
4052f8:	59                   	pop    %ecx
4052f9:	8d 4f 18             	lea    0x18(%edi),%ecx
4052fc:	89 5f 08             	mov    %ebx,0x8(%edi)
4052ff:	89 5f 0c             	mov    %ebx,0xc(%edi)
405302:	89 5f 10             	mov    %ebx,0x10(%edi)
405305:	89 5f 14             	mov    %ebx,0x14(%edi)
405308:	89 5f 4c             	mov    %ebx,0x4c(%edi)
40530b:	66 89 1f             	mov    %bx,(%edi)
40530e:	e8 fd 00 00 00       	call   0x405410
405313:	8d 4f 28             	lea    0x28(%edi),%ecx
405316:	e8 f0 e0 ff ff       	call   0x40340b
40531b:	39 5f 58             	cmp    %ebx,0x58(%edi)
40531e:	0f 87 f1 e4 06 00    	ja     0x473815
405324:	8d 4f 50             	lea    0x50(%edi),%ecx
405327:	5f                   	pop    %edi
405328:	5b                   	pop    %ebx
405329:	e9 50 e1 ff ff       	jmp    0x40347e
40532e:	50                   	push   %eax
40532f:	e8 2a a2 01 00       	call   0x41f55e
405334:	59                   	pop    %ecx
405335:	eb b9                	jmp    0x4052f0
405337:	56                   	push   %esi
405338:	b9 00 21 4c 00       	mov    $0x4c2100,%ecx
40533d:	e8 73 ff ff ff       	call   0x4052b5
405342:	be 38 21 4c 00       	mov    $0x4c2138,%esi
405347:	8b ce                	mov    %esi,%ecx
405349:	e8 c2 00 00 00       	call   0x405410
40534e:	b9 50 21 4c 00       	mov    $0x4c2150,%ecx
405353:	e8 d1 e3 ff ff       	call   0x403729
405358:	8b ce                	mov    %esi,%ecx
40535a:	e8 93 00 00 00       	call   0x4053f2
40535f:	b9 28 21 4c 00       	mov    $0x4c2128,%ecx
405364:	e8 e9 ec ff ff       	call   0x404052
405369:	b9 18 21 4c 00       	mov    $0x4c2118,%ecx
40536e:	5e                   	pop    %esi
40536f:	e9 7e 00 00 00       	jmp    0x4053f2
405374:	55                   	push   %ebp
405375:	8b ec                	mov    %esp,%ebp
405377:	b8 14 00 01 00       	mov    $0x10014,%eax
40537c:	e8 1f a5 02 00       	call   0x42f8a0
405381:	56                   	push   %esi
405382:	68 ff 7f 00 00       	push   $0x7fff
405387:	8d 85 f0 ff fe ff    	lea    -0x10010(%ebp),%eax
40538d:	50                   	push   %eax
40538e:	6a 00                	push   $0x0
405390:	8b f1                	mov    %ecx,%esi
405392:	ff 15 98 d1 48 00    	call   *0x48d198
405398:	8d 85 f0 ff fe ff    	lea    -0x10010(%ebp),%eax
40539e:	50                   	push   %eax
40539f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4053a2:	e8 72 7a 00 00       	call   0x40ce19
4053a7:	8b d6                	mov    %esi,%edx
4053a9:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4053ac:	e8 5e 12 00 00       	call   0x40660f
4053b1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4053b4:	e8 7e 77 00 00       	call   0x40cb37
4053b9:	5e                   	pop    %esi
4053ba:	c9                   	leave
4053bb:	c3                   	ret
4053bc:	55                   	push   %ebp
4053bd:	8b ec                	mov    %esp,%ebp
4053bf:	56                   	push   %esi
4053c0:	8b 75 08             	mov    0x8(%ebp),%esi
4053c3:	57                   	push   %edi
4053c4:	56                   	push   %esi
4053c5:	8b f9                	mov    %ecx,%edi
4053c7:	e8 21 1b 00 00       	call   0x406eed
4053cc:	8b 46 10             	mov    0x10(%esi),%eax
4053cf:	89 47 10             	mov    %eax,0x10(%edi)
4053d2:	8b 46 14             	mov    0x14(%esi),%eax
4053d5:	89 47 14             	mov    %eax,0x14(%edi)
4053d8:	8b 46 18             	mov    0x18(%esi),%eax
4053db:	89 47 18             	mov    %eax,0x18(%edi)
4053de:	8b 46 1c             	mov    0x1c(%esi),%eax
4053e1:	89 47 1c             	mov    %eax,0x1c(%edi)
4053e4:	8a 46 20             	mov    0x20(%esi),%al
4053e7:	88 47 20             	mov    %al,0x20(%edi)
4053ea:	8b c7                	mov    %edi,%eax
4053ec:	5f                   	pop    %edi
4053ed:	5e                   	pop    %esi
4053ee:	5d                   	pop    %ebp
4053ef:	c2 04 00             	ret    $0x4
4053f2:	56                   	push   %esi
4053f3:	8b f1                	mov    %ecx,%esi
4053f5:	c7 06 04 dc 49 00    	movl   $0x49dc04,(%esi)
4053fb:	e8 10 00 00 00       	call   0x405410
405400:	ff 76 04             	push   0x4(%esi)
405403:	e8 56 a1 01 00       	call   0x41f55e
405408:	59                   	pop    %ecx
405409:	5e                   	pop    %esi
40540a:	c3                   	ret
40540b:	cc                   	int3
40540c:	cc                   	int3
40540d:	cc                   	int3
40540e:	cc                   	int3
40540f:	cc                   	int3
405410:	53                   	push   %ebx
405411:	57                   	push   %edi
405412:	8b d9                	mov    %ecx,%ebx
405414:	33 ff                	xor    %edi,%edi
405416:	39 7b 08             	cmp    %edi,0x8(%ebx)
405419:	76 55                	jbe    0x405470
40541b:	56                   	push   %esi
40541c:	8d 64 24 00          	lea    0x0(%esp),%esp
405420:	8b 73 04             	mov    0x4(%ebx),%esi
405423:	8b 34 be             	mov    (%esi,%edi,4),%esi
405426:	85 f6                	test   %esi,%esi
405428:	74 16                	je     0x405440
40542a:	8b 46 0c             	mov    0xc(%esi),%eax
40542d:	ff 08                	decl   (%eax)
40542f:	8b 46 0c             	mov    0xc(%esi),%eax
405432:	83 38 00             	cmpl   $0x0,(%eax)
405435:	74 25                	je     0x40545c
405437:	56                   	push   %esi
405438:	e8 21 a1 01 00       	call   0x41f55e
40543d:	83 c4 04             	add    $0x4,%esp
405440:	8b 43 04             	mov    0x4(%ebx),%eax
405443:	47                   	inc    %edi
405444:	c7 44 b8 fc 00 00 00 	movl   $0x0,-0x4(%eax,%edi,4)
40544b:	00
40544c:	3b 7b 08             	cmp    0x8(%ebx),%edi
40544f:	72 cf                	jb     0x405420
405451:	5e                   	pop    %esi
405452:	5f                   	pop    %edi
405453:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
40545a:	5b                   	pop    %ebx
40545b:	c3                   	ret
40545c:	ff 36                	push   (%esi)
40545e:	e8 fb a0 01 00       	call   0x41f55e
405463:	ff 76 0c             	push   0xc(%esi)
405466:	e8 f3 a0 01 00       	call   0x41f55e
40546b:	83 c4 08             	add    $0x8,%esp
40546e:	eb c7                	jmp    0x405437
405470:	89 7b 08             	mov    %edi,0x8(%ebx)
405473:	5f                   	pop    %edi
405474:	5b                   	pop    %ebx
405475:	c3                   	ret
405476:	55                   	push   %ebp
405477:	8b ec                	mov    %esp,%ebp
405479:	57                   	push   %edi
40547a:	8b f9                	mov    %ecx,%edi
40547c:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
405480:	75 47                	jne    0x4054c9
405482:	56                   	push   %esi
405483:	6a 28                	push   $0x28
405485:	e8 60 a0 01 00       	call   0x41f4ea
40548a:	8b f0                	mov    %eax,%esi
40548c:	59                   	pop    %ecx
40548d:	85 f6                	test   %esi,%esi
40548f:	74 41                	je     0x4054d2
405491:	8b ce                	mov    %esi,%ecx
405493:	e8 5f 83 00 00       	call   0x40d7f7
405498:	ff 75 08             	push   0x8(%ebp)
40549b:	8b ce                	mov    %esi,%ecx
40549d:	e8 1a ff ff ff       	call   0x4053bc
4054a2:	8b ce                	mov    %esi,%ecx
4054a4:	e8 51 69 00 00       	call   0x40bdfa
4054a9:	ff 76 04             	push   0x4(%esi)
4054ac:	ff 36                	push   (%esi)
4054ae:	ff 15 60 d6 48 00    	call   *0x48d660
4054b4:	83 66 24 00          	andl   $0x0,0x24(%esi)
4054b8:	8b 47 04             	mov    0x4(%edi),%eax
4054bb:	85 c0                	test   %eax,%eax
4054bd:	74 0f                	je     0x4054ce
4054bf:	89 70 24             	mov    %esi,0x24(%eax)
4054c2:	ff 47 0c             	incl   0xc(%edi)
4054c5:	89 77 04             	mov    %esi,0x4(%edi)
4054c8:	5e                   	pop    %esi
4054c9:	5f                   	pop    %edi
4054ca:	5d                   	pop    %ebp
4054cb:	c2 04 00             	ret    $0x4
4054ce:	89 37                	mov    %esi,(%edi)
4054d0:	eb f0                	jmp    0x4054c2
4054d2:	33 f6                	xor    %esi,%esi
4054d4:	eb c2                	jmp    0x405498
4054d6:	55                   	push   %ebp
4054d7:	8b ec                	mov    %esp,%ebp
4054d9:	83 ec 44             	sub    $0x44,%esp
4054dc:	53                   	push   %ebx
4054dd:	56                   	push   %esi
4054de:	8b d9                	mov    %ecx,%ebx
4054e0:	57                   	push   %edi
4054e1:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4054e4:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4054e7:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4054ee:	e8 78 09 00 00       	call   0x405e6b
4054f3:	8b 75 08             	mov    0x8(%ebp),%esi
4054f6:	8d 45 ff             	lea    -0x1(%ebp),%eax
4054f9:	50                   	push   %eax
4054fa:	8d 45 f8             	lea    -0x8(%ebp),%eax
4054fd:	50                   	push   %eax
4054fe:	56                   	push   %esi
4054ff:	8b cb                	mov    %ebx,%ecx
405501:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
405508:	e8 a3 01 00 00       	call   0x4056b0
40550d:	85 c0                	test   %eax,%eax
40550f:	0f 88 8b 00 00 00    	js     0x4055a0
405515:	8b 4e 04             	mov    0x4(%esi),%ecx
405518:	8b 45 f8             	mov    -0x8(%ebp),%eax
40551b:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40551e:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
405523:	0f 85 9f 30 07 00    	jne    0x4785c8
405529:	8b 55 0c             	mov    0xc(%ebp),%edx
40552c:	8b 7d c8             	mov    -0x38(%ebp),%edi
40552f:	8b 32                	mov    (%edx),%esi
405531:	4e                   	dec    %esi
405532:	33 c0                	xor    %eax,%eax
405534:	89 75 0c             	mov    %esi,0xc(%ebp)
405537:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40553a:	8b c8                	mov    %eax,%ecx
40553c:	8a d8                	mov    %al,%bl
40553e:	8b 02                	mov    (%edx),%eax
405540:	50                   	push   %eax
405541:	8d 70 01             	lea    0x1(%eax),%esi
405544:	89 75 08             	mov    %esi,0x8(%ebp)
405547:	89 32                	mov    %esi,(%edx)
405549:	e8 fa 08 00 00       	call   0x405e48
40554e:	85 c0                	test   %eax,%eax
405550:	74 27                	je     0x405579
405552:	84 db                	test   %bl,%bl
405554:	75 23                	jne    0x405579
405556:	8b 40 04             	mov    0x4(%eax),%eax
405559:	33 f6                	xor    %esi,%esi
40555b:	8b 00                	mov    (%eax),%eax
40555d:	66 39 70 08          	cmp    %si,0x8(%eax)
405561:	75 db                	jne    0x40553e
405563:	8b 00                	mov    (%eax),%eax
405565:	83 e8 09             	sub    $0x9,%eax
405568:	74 50                	je     0x4055ba
40556a:	48                   	dec    %eax
40556b:	75 d1                	jne    0x40553e
40556d:	85 c9                	test   %ecx,%ecx
40556f:	75 46                	jne    0x4055b7
405571:	8b 7d 08             	mov    0x8(%ebp),%edi
405574:	fe c3                	inc    %bl
405576:	4f                   	dec    %edi
405577:	eb c5                	jmp    0x40553e
405579:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40557d:	8b 75 0c             	mov    0xc(%ebp),%esi
405580:	8b 5d f4             	mov    -0xc(%ebp),%ebx
405583:	89 7d c8             	mov    %edi,-0x38(%ebp)
405586:	0f 84 4f 30 07 00    	je     0x4785db
40558c:	8d 46 01             	lea    0x1(%esi),%eax
40558f:	89 02                	mov    %eax,(%edx)
405591:	8d 45 c0             	lea    -0x40(%ebp),%eax
405594:	50                   	push   %eax
405595:	8d 8b 60 01 00 00    	lea    0x160(%ebx),%ecx
40559b:	e8 e5 08 00 00       	call   0x405e85
4055a0:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4055a3:	e8 78 d6 00 00       	call   0x412c20
4055a8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4055ab:	e8 70 d6 00 00       	call   0x412c20
4055b0:	5f                   	pop    %edi
4055b1:	5e                   	pop    %esi
4055b2:	5b                   	pop    %ebx
4055b3:	c9                   	leave
4055b4:	c2 08 00             	ret    $0x8
4055b7:	49                   	dec    %ecx
4055b8:	eb 84                	jmp    0x40553e
4055ba:	41                   	inc    %ecx
4055bb:	eb 81                	jmp    0x40553e
4055bd:	e8 3e 01 00 00       	call   0x405700
4055c2:	84 c0                	test   %al,%al
4055c4:	74 0f                	je     0x4055d5
4055c6:	8b ca                	mov    %edx,%ecx
4055c8:	e8 33 01 00 00       	call   0x405700
4055cd:	84 c0                	test   %al,%al
4055cf:	74 04                	je     0x4055d5
4055d1:	33 c0                	xor    %eax,%eax
4055d3:	40                   	inc    %eax
4055d4:	c3                   	ret
4055d5:	33 c0                	xor    %eax,%eax
4055d7:	c3                   	ret
4055d8:	e8 23 01 00 00       	call   0x405700
4055dd:	84 c0                	test   %al,%al
4055df:	75 0e                	jne    0x4055ef
4055e1:	8b ca                	mov    %edx,%ecx
4055e3:	e8 18 01 00 00       	call   0x405700
4055e8:	84 c0                	test   %al,%al
4055ea:	75 03                	jne    0x4055ef
4055ec:	33 c0                	xor    %eax,%eax
4055ee:	c3                   	ret
4055ef:	33 c0                	xor    %eax,%eax
4055f1:	40                   	inc    %eax
4055f2:	c3                   	ret
4055f3:	55                   	push   %ebp
4055f4:	8b ec                	mov    %esp,%ebp
4055f6:	83 ec 0c             	sub    $0xc,%esp
4055f9:	56                   	push   %esi
4055fa:	8b f1                	mov    %ecx,%esi
4055fc:	57                   	push   %edi
4055fd:	8d be 60 01 00 00    	lea    0x160(%esi),%edi
405603:	8b cf                	mov    %edi,%ecx
405605:	e8 3a 01 00 00       	call   0x405744
40560a:	ff 70 04             	push   0x4(%eax)
40560d:	e8 36 08 00 00       	call   0x405e48
405612:	8d 4d ff             	lea    -0x1(%ebp),%ecx
405615:	51                   	push   %ecx
405616:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405619:	51                   	push   %ecx
40561a:	50                   	push   %eax
40561b:	8b ce                	mov    %esi,%ecx
40561d:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
405624:	e8 87 00 00 00       	call   0x4056b0
405629:	85 c0                	test   %eax,%eax
40562b:	78 16                	js     0x405643
40562d:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
405631:	8b cf                	mov    %edi,%ecx
405633:	74 14                	je     0x405649
405635:	e8 0a 01 00 00       	call   0x405744
40563a:	8b 48 04             	mov    0x4(%eax),%ecx
40563d:	8b 45 08             	mov    0x8(%ebp),%eax
405640:	41                   	inc    %ecx
405641:	89 08                	mov    %ecx,(%eax)
405643:	5f                   	pop    %edi
405644:	5e                   	pop    %esi
405645:	c9                   	leave
405646:	c2 04 00             	ret    $0x4
405649:	e8 d4 87 00 00       	call   0x40de22
40564e:	eb f3                	jmp    0x405643
405650:	55                   	push   %ebp
405651:	8b ec                	mov    %esp,%ebp
405653:	51                   	push   %ecx
405654:	51                   	push   %ecx
405655:	56                   	push   %esi
405656:	57                   	push   %edi
405657:	8b 7d 08             	mov    0x8(%ebp),%edi
40565a:	8d 45 ff             	lea    -0x1(%ebp),%eax
40565d:	50                   	push   %eax
40565e:	8d 45 f8             	lea    -0x8(%ebp),%eax
405661:	50                   	push   %eax
405662:	57                   	push   %edi
405663:	8b f1                	mov    %ecx,%esi