4152af:	40                   	inc    %eax
4152b0:	3b c6                	cmp    %esi,%eax
4152b2:	72 f8                	jb     0x4152ac
4152b4:	8b bd 38 f4 ff ff    	mov    -0xbc8(%ebp),%edi
4152ba:	0f b6 c2             	movzbl %dl,%eax
4152bd:	99                   	cltd
4152be:	3b 04 3e             	cmp    (%esi,%edi,1),%eax
4152c1:	75 55                	jne    0x415318
4152c3:	3b 54 3e 04          	cmp    0x4(%esi,%edi,1),%edx
4152c7:	75 4f                	jne    0x415318
4152c9:	8b f9                	mov    %ecx,%edi
4152cb:	89 b5 3c f4 ff ff    	mov    %esi,-0xbc4(%ebp)
4152d1:	8b cb                	mov    %ebx,%ecx
4152d3:	8b f3                	mov    %ebx,%esi
4152d5:	eb 48                	jmp    0x41531f
4152d7:	89 9d 78 f4 ff ff    	mov    %ebx,-0xb88(%ebp)
4152dd:	0f 83 b6 fb ff ff    	jae    0x414e99
4152e3:	6a 04                	push   $0x4
4152e5:	59                   	pop    %ecx
4152e6:	2b cf                	sub    %edi,%ecx
4152e8:	c1 e1 03             	shl    $0x3,%ecx
4152eb:	d3 e8                	shr    %cl,%eax
4152ed:	d3 e0                	shl    %cl,%eax
4152ef:	89 85 64 f4 ff ff    	mov    %eax,-0xb9c(%ebp)
4152f5:	e9 9f fb ff ff       	jmp    0x414e99
4152fa:	83 8d 74 f4 ff ff ff 	orl    $0xffffffff,-0xb8c(%ebp)
415301:	89 9d 54 f4 ff ff    	mov    %ebx,-0xbac(%ebp)
415307:	89 9d 78 f4 ff ff    	mov    %ebx,-0xb88(%ebp)
41530d:	89 85 64 f4 ff ff    	mov    %eax,-0xb9c(%ebp)
415313:	e9 87 fb ff ff       	jmp    0x414e9f
415318:	be 01 d5 04 c0       	mov    $0xc004d501,%esi
41531d:	8b fb                	mov    %ebx,%edi
41531f:	85 c9                	test   %ecx,%ecx
415321:	74 0f                	je     0x415332
415323:	51                   	push   %ecx
415324:	53                   	push   %ebx
415325:	ff 15 7c 60 42 00    	call   *0x42607c
41532b:	50                   	push   %eax
41532c:	ff 15 a4 61 42 00    	call   *0x4261a4
415332:	85 f6                	test   %esi,%esi
415334:	78 1b                	js     0x415351
415336:	8b 85 3c f4 ff ff    	mov    -0xbc4(%ebp),%eax
41533c:	be 00 00 00 10       	mov    $0x10000000,%esi
415341:	89 bd 84 f4 ff ff    	mov    %edi,-0xb7c(%ebp)
415347:	8b fb                	mov    %ebx,%edi
415349:	89 85 60 f4 ff ff    	mov    %eax,-0xba0(%ebp)
41534f:	eb 05                	jmp    0x415356
415351:	be 01 00 00 d0       	mov    $0xd0000001,%esi
415356:	89 b5 24 f4 ff ff    	mov    %esi,-0xbdc(%ebp)
41535c:	85 ff                	test   %edi,%edi
41535e:	74 0f                	je     0x41536f
415360:	57                   	push   %edi
415361:	53                   	push   %ebx
415362:	ff 15 7c 60 42 00    	call   *0x42607c
415368:	50                   	push   %eax
415369:	ff 15 a4 61 42 00    	call   *0x4261a4
41536f:	85 f6                	test   %esi,%esi
415371:	0f 88 55 01 00 00    	js     0x4154cc
415377:	8b 95 60 f4 ff ff    	mov    -0xba0(%ebp),%edx
41537d:	83 fa 04             	cmp    $0x4,%edx
415380:	73 0a                	jae    0x41538c
415382:	be 3e 00 00 c0       	mov    $0xc000003e,%esi
415387:	e9 34 01 00 00       	jmp    0x4154c0
41538c:	8b b5 84 f4 ff ff    	mov    -0xb7c(%ebp),%esi
415392:	8b 06                	mov    (%esi),%eax
415394:	8d 4e 04             	lea    0x4(%esi),%ecx
415397:	89 85 3c f4 ff ff    	mov    %eax,-0xbc4(%ebp)
41539d:	3b ce                	cmp    %esi,%ecx
41539f:	0f 82 16 01 00 00    	jb     0x4154bb
4153a5:	8d 42 fc             	lea    -0x4(%edx),%eax
4153a8:	83 f8 04             	cmp    $0x4,%eax
4153ab:	72 d5                	jb     0x415382
4153ad:	8b 39                	mov    (%ecx),%edi
4153af:	8d 71 04             	lea    0x4(%ecx),%esi
4153b2:	3b f1                	cmp    %ecx,%esi
4153b4:	0f 82 01 01 00 00    	jb     0x4154bb
4153ba:	8b 8d 60 f4 ff ff    	mov    -0xba0(%ebp),%ecx
4153c0:	8d 41 f8             	lea    -0x8(%ecx),%eax
4153c3:	3b c7                	cmp    %edi,%eax
4153c5:	72 bb                	jb     0x415382
4153c7:	8d 47 08             	lea    0x8(%edi),%eax
4153ca:	83 f8 08             	cmp    $0x8,%eax
4153cd:	0f 82 e8 00 00 00    	jb     0x4154bb
4153d3:	8b 85 84 f4 ff ff    	mov    -0xb7c(%ebp),%eax
4153d9:	8d 14 37             	lea    (%edi,%esi,1),%edx
4153dc:	03 c1                	add    %ecx,%eax
4153de:	3b c2                	cmp    %edx,%eax
4153e0:	72 a0                	jb     0x415382
4153e2:	2b cf                	sub    %edi,%ecx
4153e4:	2b ce                	sub    %esi,%ecx
4153e6:	03 8d 84 f4 ff ff    	add    -0xb7c(%ebp),%ecx
4153ec:	83 f9 08             	cmp    $0x8,%ecx
4153ef:	73 91                	jae    0x415382
4153f1:	89 9d 58 f4 ff ff    	mov    %ebx,-0xba8(%ebp)
4153f7:	8b c3                	mov    %ebx,%eax
4153f9:	89 85 38 f4 ff ff    	mov    %eax,-0xbc8(%ebp)
4153ff:	85 f6                	test   %esi,%esi
415401:	74 45                	je     0x415448
415403:	8b ce                	mov    %esi,%ecx
415405:	3b d6                	cmp    %esi,%edx
415407:	0f 82 ae 00 00 00    	jb     0x4154bb
41540d:	76 35                	jbe    0x415444
41540f:	8d 41 04             	lea    0x4(%ecx),%eax
415412:	3b c1                	cmp    %ecx,%eax
415414:	0f 82 a1 00 00 00    	jb     0x4154bb
41541a:	3b c2                	cmp    %edx,%eax
41541c:	77 4f                	ja     0x41546d
41541e:	8b 01                	mov    (%ecx),%eax
415420:	83 c0 04             	add    $0x4,%eax
415423:	83 f8 04             	cmp    $0x4,%eax
415426:	72 4c                	jb     0x415474
415428:	03 c1                	add    %ecx,%eax
41542a:	3b c1                	cmp    %ecx,%eax
41542c:	0f 82 89 00 00 00    	jb     0x4154bb
415432:	8b c8                	mov    %eax,%ecx
415434:	3b ca                	cmp    %edx,%ecx
415436:	77 35                	ja     0x41546d
415438:	ff 85 58 f4 ff ff    	incl   -0xba8(%ebp)
41543e:	3b ca                	cmp    %edx,%ecx
415440:	72 cd                	jb     0x41540f
415442:	8b c3                	mov    %ebx,%eax
415444:	3b ca                	cmp    %edx,%ecx
415446:	75 25                	jne    0x41546d
415448:	85 ff                	test   %edi,%edi
41544a:	74 2f                	je     0x41547b
41544c:	57                   	push   %edi
41544d:	6a 08                	push   $0x8
41544f:	ff 15 7c 60 42 00    	call   *0x42607c
415455:	50                   	push   %eax
415456:	ff 15 a0 61 42 00    	call   *0x4261a0
41545c:	89 85 38 f4 ff ff    	mov    %eax,-0xbc8(%ebp)
415462:	85 c0                	test   %eax,%eax
415464:	75 15                	jne    0x41547b
415466:	be 17 00 00 c0       	mov    $0xc0000017,%esi
41546b:	eb 37                	jmp    0x4154a4
41546d:	be 0d 00 00 c0       	mov    $0xc000000d,%esi
415472:	eb 4c                	jmp    0x4154c0
415474:	be 95 00 00 c0       	mov    $0xc0000095,%esi
415479:	eb 29                	jmp    0x4154a4
41547b:	85 f6                	test   %esi,%esi
41547d:	74 11                	je     0x415490
41547f:	57                   	push   %edi
415480:	56                   	push   %esi
415481:	50                   	push   %eax
415482:	e8 fc d6 00 00       	call   0x422b83
415487:	8b 85 38 f4 ff ff    	mov    -0xbc8(%ebp),%eax
41548d:	83 c4 0c             	add    $0xc,%esp
415490:	89 85 f4 f2 ff ff    	mov    %eax,-0xd0c(%ebp)
415496:	8b 85 58 f4 ff ff    	mov    -0xba8(%ebp),%eax
41549c:	89 85 ec f2 ff ff    	mov    %eax,-0xd14(%ebp)
4154a2:	8b f3                	mov    %ebx,%esi
4154a4:	85 f6                	test   %esi,%esi
4154a6:	78 18                	js     0x4154c0
4154a8:	8b 85 3c f4 ff ff    	mov    -0xbc4(%ebp),%eax
4154ae:	3b 85 ec f2 ff ff    	cmp    -0xd14(%ebp),%eax
4154b4:	74 0a                	je     0x4154c0
4154b6:	e9 c7 fe ff ff       	jmp    0x415382
4154bb:	be 95 00 00 c0       	mov    $0xc0000095,%esi
4154c0:	81 ce 00 00 00 10    	or     $0x10000000,%esi
4154c6:	89 b5 24 f4 ff ff    	mov    %esi,-0xbdc(%ebp)
4154cc:	8b 85 34 f4 ff ff    	mov    -0xbcc(%ebp),%eax
4154d2:	85 c0                	test   %eax,%eax
4154d4:	74 0f                	je     0x4154e5
4154d6:	50                   	push   %eax
4154d7:	53                   	push   %ebx
4154d8:	ff 15 7c 60 42 00    	call   *0x42607c
4154de:	50                   	push   %eax
4154df:	ff 15 a4 61 42 00    	call   *0x4261a4
4154e5:	8b bd 14 f4 ff ff    	mov    -0xbec(%ebp),%edi
4154eb:	85 ff                	test   %edi,%edi
4154ed:	74 5d                	je     0x41554c
4154ef:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
4154f3:	74 14                	je     0x415509
4154f5:	ff 77 04             	push   0x4(%edi)
4154f8:	53                   	push   %ebx
4154f9:	ff 15 7c 60 42 00    	call   *0x42607c
4154ff:	50                   	push   %eax
415500:	ff 15 a4 61 42 00    	call   *0x4261a4
415506:	89 5f 04             	mov    %ebx,0x4(%edi)
415509:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
41550d:	74 14                	je     0x415523
41550f:	ff 77 0c             	push   0xc(%edi)
415512:	53                   	push   %ebx
415513:	ff 15 7c 60 42 00    	call   *0x42607c
415519:	50                   	push   %eax
41551a:	ff 15 a4 61 42 00    	call   *0x4261a4
415520:	89 5f 0c             	mov    %ebx,0xc(%edi)
415523:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
415527:	74 14                	je     0x41553d
415529:	ff 77 14             	push   0x14(%edi)
41552c:	53                   	push   %ebx
41552d:	ff 15 7c 60 42 00    	call   *0x42607c
415533:	50                   	push   %eax
415534:	ff 15 a4 61 42 00    	call   *0x4261a4
41553a:	89 5f 14             	mov    %ebx,0x14(%edi)
41553d:	57                   	push   %edi
41553e:	53                   	push   %ebx
41553f:	ff 15 7c 60 42 00    	call   *0x42607c
415545:	50                   	push   %eax
415546:	ff 15 a4 61 42 00    	call   *0x4261a4
41554c:	8b 85 4c f4 ff ff    	mov    -0xbb4(%ebp),%eax
415552:	85 c0                	test   %eax,%eax
415554:	74 0f                	je     0x415565
415556:	50                   	push   %eax
415557:	53                   	push   %ebx
415558:	ff 15 7c 60 42 00    	call   *0x42607c
41555e:	50                   	push   %eax
41555f:	ff 15 a4 61 42 00    	call   *0x4261a4
415565:	8b 85 40 f4 ff ff    	mov    -0xbc0(%ebp),%eax
41556b:	85 c0                	test   %eax,%eax
41556d:	74 0f                	je     0x41557e
41556f:	50                   	push   %eax
415570:	53                   	push   %ebx
415571:	ff 15 7c 60 42 00    	call   *0x42607c
415577:	50                   	push   %eax
415578:	ff 15 a4 61 42 00    	call   *0x4261a4
41557e:	8b bd 80 f4 ff ff    	mov    -0xb80(%ebp),%edi
415584:	85 ff                	test   %edi,%edi
415586:	74 5d                	je     0x4155e5
415588:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
41558c:	74 14                	je     0x4155a2
41558e:	ff 77 04             	push   0x4(%edi)
415591:	53                   	push   %ebx
415592:	ff 15 7c 60 42 00    	call   *0x42607c
415598:	50                   	push   %eax
415599:	ff 15 a4 61 42 00    	call   *0x4261a4
41559f:	89 5f 04             	mov    %ebx,0x4(%edi)
4155a2:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
4155a6:	74 14                	je     0x4155bc
4155a8:	ff 77 0c             	push   0xc(%edi)
4155ab:	53                   	push   %ebx
4155ac:	ff 15 7c 60 42 00    	call   *0x42607c
4155b2:	50                   	push   %eax
4155b3:	ff 15 a4 61 42 00    	call   *0x4261a4
4155b9:	89 5f 0c             	mov    %ebx,0xc(%edi)
4155bc:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
4155c0:	74 14                	je     0x4155d6
4155c2:	ff 77 14             	push   0x14(%edi)
4155c5:	53                   	push   %ebx
4155c6:	ff 15 7c 60 42 00    	call   *0x42607c
4155cc:	50                   	push   %eax
4155cd:	ff 15 a4 61 42 00    	call   *0x4261a4
4155d3:	89 5f 14             	mov    %ebx,0x14(%edi)
4155d6:	57                   	push   %edi
4155d7:	53                   	push   %ebx
4155d8:	ff 15 7c 60 42 00    	call   *0x42607c
4155de:	50                   	push   %eax
4155df:	ff 15 a4 61 42 00    	call   *0x4261a4
4155e5:	8b 85 84 f4 ff ff    	mov    -0xb7c(%ebp),%eax
4155eb:	85 c0                	test   %eax,%eax
4155ed:	74 0f                	je     0x4155fe
4155ef:	50                   	push   %eax
4155f0:	53                   	push   %ebx
4155f1:	ff 15 7c 60 42 00    	call   *0x42607c
4155f7:	50                   	push   %eax
4155f8:	ff 15 a4 61 42 00    	call   *0x4261a4
4155fe:	85 f6                	test   %esi,%esi
415600:	0f 88 f7 e1 ff ff    	js     0x4137fd
415606:	33 c0                	xor    %eax,%eax
415608:	40                   	inc    %eax
415609:	39 85 ec f2 ff ff    	cmp    %eax,-0xd14(%ebp)
41560f:	73 0a                	jae    0x41561b
415611:	be 01 d5 04 c0       	mov    $0xc004d501,%esi
415616:	e9 dc e1 ff ff       	jmp    0x4137f7
41561b:	83 bd f4 f2 ff ff 00 	cmpl   $0x0,-0xd0c(%ebp)
415622:	75 5f                	jne    0x415683
415624:	be 0d 00 00 c0       	mov    $0xc000000d,%esi
415629:	89 b5 24 f4 ff ff    	mov    %esi,-0xbdc(%ebp)
41562f:	8b c3                	mov    %ebx,%eax
415631:	85 f6                	test   %esi,%esi
415633:	0f 88 c4 e1 ff ff    	js     0x4137fd
415639:	3d 23 00 00 d0       	cmp    $0xd0000023,%eax
41563e:	75 0b                	jne    0x41564b
415640:	b8 7a 00 07 80       	mov    $0x8007007a,%eax
415645:	89 85 30 f4 ff ff    	mov    %eax,-0xbd0(%ebp)
41564b:	3d 7a 00 07 80       	cmp    $0x8007007a,%eax
415650:	74 10                	je     0x415662
415652:	8b f0                	mov    %eax,%esi
415654:	89 b5 24 f4 ff ff    	mov    %esi,-0xbdc(%ebp)
41565a:	85 c0                	test   %eax,%eax
41565c:	0f 88 9b e1 ff ff    	js     0x4137fd
415662:	83 bd ec f2 ff ff 06 	cmpl   $0x6,-0xd14(%ebp)
415669:	75 a6                	jne    0x415611
41566b:	83 bd f4 f2 ff ff 00 	cmpl   $0x0,-0xd0c(%ebp)
415672:	75 71                	jne    0x4156e5
415674:	be 0d 00 00 c0       	mov    $0xc000000d,%esi
415679:	bf 95 00 00 c0       	mov    $0xc0000095,%edi
41567e:	e9 f2 00 00 00       	jmp    0x415775
415683:	83 bd ec f2 ff ff 00 	cmpl   $0x0,-0xd14(%ebp)
41568a:	76 98                	jbe    0x415624
41568c:	8b 85 f4 f2 ff ff    	mov    -0xd0c(%ebp),%eax
415692:	8b 10                	mov    (%eax),%edx
415694:	8d 48 04             	lea    0x4(%eax),%ecx
415697:	3b c8                	cmp    %eax,%ecx
415699:	72 04                	jb     0x41569f
41569b:	8b f3                	mov    %ebx,%esi
41569d:	eb 08                	jmp    0x4156a7
41569f:	83 c9 ff             	or     $0xffffffff,%ecx
4156a2:	be 95 00 00 c0       	mov    $0xc0000095,%esi
4156a7:	89 b5 24 f4 ff ff    	mov    %esi,-0xbdc(%ebp)
4156ad:	85 f6                	test   %esi,%esi
4156af:	78 0a                	js     0x4156bb
4156b1:	8b c2                	mov    %edx,%eax
4156b3:	f7 d8                	neg    %eax
4156b5:	1b c0                	sbb    %eax,%eax
4156b7:	23 c1                	and    %ecx,%eax
4156b9:	eb 0c                	jmp    0x4156c7
4156bb:	8b 95 6c f3 ff ff    	mov    -0xc94(%ebp),%edx
4156c1:	8b 85 40 f3 ff ff    	mov    -0xcc0(%ebp),%eax
4156c7:	85 f6                	test   %esi,%esi
4156c9:	0f 88 60 ff ff ff    	js     0x41562f
4156cf:	83 fa 04             	cmp    $0x4,%edx
4156d2:	0f 85 3a e3 ff ff    	jne    0x413a12
4156d8:	8b 00                	mov    (%eax),%eax
4156da:	89 85 30 f4 ff ff    	mov    %eax,-0xbd0(%ebp)
4156e0:	e9 4c ff ff ff       	jmp    0x415631
4156e5:	8b 85 f4 f2 ff ff    	mov    -0xd0c(%ebp),%eax
4156eb:	8b d3                	mov    %ebx,%edx
4156ed:	8b 30                	mov    (%eax),%esi
4156ef:	8d 48 04             	lea    0x4(%eax),%ecx
4156f2:	3b c8                	cmp    %eax,%ecx
4156f4:	72 78                	jb     0x41576e
4156f6:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
4156f9:	3b c1                	cmp    %ecx,%eax
4156fb:	72 71                	jb     0x41576e
4156fd:	42                   	inc    %edx
4156fe:	83 fa 01             	cmp    $0x1,%edx
415701:	72 ea                	jb     0x4156ed
415703:	8b 38                	mov    (%eax),%edi
415705:	8d 50 04             	lea    0x4(%eax),%edx
415708:	3b d0                	cmp    %eax,%edx
41570a:	72 08                	jb     0x415714
41570c:	89 95 3c f4 ff ff    	mov    %edx,-0xbc4(%ebp)
415712:	eb 07                	jmp    0x41571b
415714:	83 8d 3c f4 ff ff ff 	orl    $0xffffffff,-0xbc4(%ebp)
41571b:	3b d0                	cmp    %eax,%edx
41571d:	1b f6                	sbb    %esi,%esi
41571f:	81 e6 95 00 00 c0    	and    $0xc0000095,%esi
415725:	89 b5 24 f4 ff ff    	mov    %esi,-0xbdc(%ebp)
41572b:	3b d0                	cmp    %eax,%edx
41572d:	72 0e                	jb     0x41573d
41572f:	8b cf                	mov    %edi,%ecx
415731:	f7 d9                	neg    %ecx
415733:	1b c9                	sbb    %ecx,%ecx
415735:	23 8d 3c f4 ff ff    	and    -0xbc4(%ebp),%ecx
41573b:	eb 0c                	jmp    0x415749
41573d:	8b bd 8c f3 ff ff    	mov    -0xc74(%ebp),%edi
415743:	8b 8d 88 f3 ff ff    	mov    -0xc78(%ebp),%ecx
415749:	3b d0                	cmp    %eax,%edx
41574b:	72 1a                	jb     0x415767