43a49f:	8b cf                	mov    %edi,%ecx
43a4a1:	ff d6                	call   *%esi
43a4a3:	85 c0                	test   %eax,%eax
43a4a5:	74 54                	je     0x43a4fb
43a4a7:	80 7c 24 0e 05       	cmpb   $0x5,0xe(%esp)
43a4ac:	75 4d                	jne    0x43a4fb
43a4ae:	8d 44 24 0f          	lea    0xf(%esp),%eax
43a4b2:	8b cf                	mov    %edi,%ecx
43a4b4:	50                   	push   %eax
43a4b5:	8d 54 24 14          	lea    0x14(%esp),%edx
43a4b9:	e8 72 fe ff ff       	call   0x43a330
43a4be:	83 c4 04             	add    $0x4,%esp
43a4c1:	84 c0                	test   %al,%al
43a4c3:	74 36                	je     0x43a4fb
43a4c5:	8b 44 24 14          	mov    0x14(%esp),%eax
43a4c9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
43a4cd:	85 c0                	test   %eax,%eax
43a4cf:	75 2a                	jne    0x43a4fb
43a4d1:	85 c9                	test   %ecx,%ecx
43a4d3:	75 04                	jne    0x43a4d9
43a4d5:	33 d2                	xor    %edx,%edx
43a4d7:	eb 05                	jmp    0x43a4de
43a4d9:	ba 01 00 00 00       	mov    $0x1,%edx
43a4de:	33 c0                	xor    %eax,%eax
43a4e0:	3b c1                	cmp    %ecx,%eax
43a4e2:	1b c0                	sbb    %eax,%eax
43a4e4:	f7 d8                	neg    %eax
43a4e6:	3b d0                	cmp    %eax,%edx
43a4e8:	75 11                	jne    0x43a4fb
43a4ea:	80 7c 24 0f 00       	cmpb   $0x0,0xf(%esp)
43a4ef:	74 0a                	je     0x43a4fb
43a4f1:	85 c9                	test   %ecx,%ecx
43a4f3:	75 06                	jne    0x43a4fb
43a4f5:	5f                   	pop    %edi
43a4f6:	5e                   	pop    %esi
43a4f7:	8b e5                	mov    %ebp,%esp
43a4f9:	5d                   	pop    %ebp
43a4fa:	c3                   	ret
43a4fb:	e8 30 fc ff ff       	call   0x43a130
43a500:	cc                   	int3
43a501:	cc                   	int3
43a502:	cc                   	int3
43a503:	cc                   	int3
43a504:	cc                   	int3
43a505:	cc                   	int3
43a506:	cc                   	int3
43a507:	cc                   	int3
43a508:	cc                   	int3
43a509:	cc                   	int3
43a50a:	cc                   	int3
43a50b:	cc                   	int3
43a50c:	cc                   	int3
43a50d:	cc                   	int3
43a50e:	cc                   	int3
43a50f:	cc                   	int3
43a510:	55                   	push   %ebp
43a511:	8b ec                	mov    %esp,%ebp
43a513:	6a ff                	push   $0xffffffff
43a515:	68 e5 a2 49 00       	push   $0x49a2e5
43a51a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
43a520:	50                   	push   %eax
43a521:	83 ec 6c             	sub    $0x6c,%esp
43a524:	a1 14 40 4c 00       	mov    0x4c4014,%eax
43a529:	33 c5                	xor    %ebp,%eax
43a52b:	89 45 f0             	mov    %eax,-0x10(%ebp)
43a52e:	53                   	push   %ebx
43a52f:	56                   	push   %esi
43a530:	57                   	push   %edi
43a531:	50                   	push   %eax
43a532:	8d 45 f4             	lea    -0xc(%ebp),%eax
43a535:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
43a53b:	8b da                	mov    %edx,%ebx
43a53d:	8b f9                	mov    %ecx,%edi
43a53f:	8b 07                	mov    (%edi),%eax
43a541:	8d 4d 88             	lea    -0x78(%ebp),%ecx
43a544:	51                   	push   %ecx
43a545:	8b 70 50             	mov    0x50(%eax),%esi
43a548:	8b ce                	mov    %esi,%ecx
43a54a:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a550:	8b cf                	mov    %edi,%ecx
43a552:	ff d6                	call   *%esi
43a554:	ff 75 88             	push   -0x78(%ebp)
43a557:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a55a:	c7 45 cc ff ff ff ff 	movl   $0xffffffff,-0x34(%ebp)
43a561:	c6 45 d0 00          	movb   $0x0,-0x30(%ebp)
43a565:	c7 45 c0 24 5c 4b 00 	movl   $0x4b5c24,-0x40(%ebp)
43a56c:	c7 45 c4 14 5c 4b 00 	movl   $0x4b5c14,-0x3c(%ebp)
43a573:	89 7d d4             	mov    %edi,-0x2c(%ebp)
43a576:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
43a57a:	e8 31 06 00 00       	call   0x43abb0
43a57f:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
43a586:	8d 4d 90             	lea    -0x70(%ebp),%ecx
43a589:	ff 75 88             	push   -0x78(%ebp)
43a58c:	53                   	push   %ebx
43a58d:	e8 6e 08 00 00       	call   0x43ae00
43a592:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
43a596:	8a 45 d9             	mov    -0x27(%ebp),%al
43a599:	84 c0                	test   %al,%al
43a59b:	0f 84 8b 00 00 00    	je     0x43a62c
43a5a1:	8b 45 e0             	mov    -0x20(%ebp),%eax
43a5a4:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
43a5a7:	89 45 e8             	mov    %eax,-0x18(%ebp)
43a5aa:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a5ad:	6a 01                	push   $0x1
43a5af:	68 40 4e 4c 00       	push   $0x4c4e40
43a5b4:	89 4d ec             	mov    %ecx,-0x14(%ebp)
43a5b7:	8b 70 7c             	mov    0x7c(%eax),%esi
43a5ba:	8d 45 e8             	lea    -0x18(%ebp),%eax
43a5bd:	50                   	push   %eax
43a5be:	8d 45 90             	lea    -0x70(%ebp),%eax
43a5c1:	50                   	push   %eax
43a5c2:	81 fe 10 ad 43 00    	cmp    $0x43ad10,%esi
43a5c8:	75 44                	jne    0x43a60e
43a5ca:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a5cd:	e8 3e 07 00 00       	call   0x43ad10
43a5d2:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a5d5:	e8 b6 06 00 00       	call   0x43ac90
43a5da:	8d 4d 90             	lea    -0x70(%ebp),%ecx
43a5dd:	e8 4e 0a 00 00       	call   0x43b030
43a5e2:	8d 4d 90             	lea    -0x70(%ebp),%ecx
43a5e5:	e8 b6 09 00 00       	call   0x43afa0
43a5ea:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a5ed:	e8 2e 06 00 00       	call   0x43ac20
43a5f2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a5f5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
43a5fc:	59                   	pop    %ecx
43a5fd:	5f                   	pop    %edi
43a5fe:	5e                   	pop    %esi
43a5ff:	5b                   	pop    %ebx
43a600:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43a603:	33 cd                	xor    %ebp,%ecx
43a605:	e8 c0 f3 02 00       	call   0x4699ca
43a60a:	8b e5                	mov    %ebp,%esp
43a60c:	5d                   	pop    %ebp
43a60d:	c3                   	ret
43a60e:	8b ce                	mov    %esi,%ecx
43a610:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a616:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a619:	ff d6                	call   *%esi
43a61b:	eb b5                	jmp    0x43a5d2
43a61d:	0f 1f 00             	nopl   (%eax)
43a620:	84 c0                	test   %al,%al
43a622:	74 08                	je     0x43a62c
43a624:	8b 45 e0             	mov    -0x20(%ebp),%eax
43a627:	0b 45 e4             	or     -0x1c(%ebp),%eax
43a62a:	eb 34                	jmp    0x43a660
43a62c:	8b 7d d4             	mov    -0x2c(%ebp),%edi
43a62f:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
43a632:	6a 02                	push   $0x2
43a634:	51                   	push   %ecx
43a635:	66 c7 45 8c 00 00    	movw   $0x0,-0x74(%ebp)
43a63b:	8b 07                	mov    (%edi),%eax
43a63d:	8b 70 4c             	mov    0x4c(%eax),%esi
43a640:	8b ce                	mov    %esi,%ecx
43a642:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a648:	8b cf                	mov    %edi,%ecx
43a64a:	ff d6                	call   *%esi
43a64c:	83 f8 02             	cmp    $0x2,%eax
43a64f:	75 15                	jne    0x43a666
43a651:	0f b6 4d 8c          	movzbl -0x74(%ebp),%ecx
43a655:	0f b6 45 8d          	movzbl -0x73(%ebp),%eax
43a659:	66 c1 e1 08          	shl    $0x8,%cx
43a65d:	66 0b c8             	or     %ax,%cx
43a660:	0f 84 6c ff ff ff    	je     0x43a5d2
43a666:	8d 55 90             	lea    -0x70(%ebp),%edx
43a669:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a66c:	e8 9f fe ff ff       	call   0x43a510
43a671:	8a 45 d9             	mov    -0x27(%ebp),%al
43a674:	eb aa                	jmp    0x43a620
43a676:	cc                   	int3
43a677:	cc                   	int3
43a678:	cc                   	int3
43a679:	cc                   	int3
43a67a:	cc                   	int3
43a67b:	cc                   	int3
43a67c:	cc                   	int3
43a67d:	cc                   	int3
43a67e:	cc                   	int3
43a67f:	cc                   	int3
43a680:	55                   	push   %ebp
43a681:	8b ec                	mov    %esp,%ebp
43a683:	6a ff                	push   $0xffffffff
43a685:	68 2c a3 49 00       	push   $0x49a32c
43a68a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
43a690:	50                   	push   %eax
43a691:	83 ec 50             	sub    $0x50,%esp
43a694:	a1 14 40 4c 00       	mov    0x4c4014,%eax
43a699:	33 c5                	xor    %ebp,%eax
43a69b:	89 45 f0             	mov    %eax,-0x10(%ebp)
43a69e:	53                   	push   %ebx
43a69f:	56                   	push   %esi
43a6a0:	57                   	push   %edi
43a6a1:	50                   	push   %eax
43a6a2:	8d 45 f4             	lea    -0xc(%ebp),%eax
43a6a5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
43a6ab:	8b f9                	mov    %ecx,%edi
43a6ad:	89 7d a4             	mov    %edi,-0x5c(%ebp)
43a6b0:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a6b3:	6a 18                	push   $0x18
43a6b5:	89 5d b8             	mov    %ebx,-0x48(%ebp)
43a6b8:	c7 45 c0 30 70 4b 00 	movl   $0x4b7030,-0x40(%ebp)
43a6bf:	c7 45 c4 20 70 4b 00 	movl   $0x4b7020,-0x3c(%ebp)
43a6c6:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
43a6cd:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
43a6d4:	c6 45 cc 01          	movb   $0x1,-0x34(%ebp)
43a6d8:	c7 45 d0 00 01 00 00 	movl   $0x100,-0x30(%ebp)
43a6df:	e8 f4 f2 02 00       	call   0x4699d8
43a6e4:	8b f0                	mov    %eax,%esi
43a6e6:	83 c4 04             	add    $0x4,%esp
43a6e9:	89 75 ec             	mov    %esi,-0x14(%ebp)
43a6ec:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
43a6f3:	8b 4d d0             	mov    -0x30(%ebp),%ecx
43a6f6:	89 4e 08             	mov    %ecx,0x8(%esi)
43a6f9:	85 c9                	test   %ecx,%ecx
43a6fb:	75 04                	jne    0x43a701
43a6fd:	33 c0                	xor    %eax,%eax
43a6ff:	eb 05                	jmp    0x43a706
43a701:	e8 5a 19 02 00       	call   0x45c060
43a706:	89 46 0c             	mov    %eax,0xc(%esi)
43a709:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
43a710:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
43a717:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
43a71d:	89 75 d8             	mov    %esi,-0x28(%ebp)
43a720:	89 75 d4             	mov    %esi,-0x2c(%ebp)
43a723:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
43a72a:	8b 17                	mov    (%edi),%edx
43a72c:	6a 01                	push   $0x1
43a72e:	6a 00                	push   $0x0
43a730:	6a 01                	push   $0x1
43a732:	8a 02                	mov    (%edx),%al
43a734:	8a c8                	mov    %al,%cl
43a736:	c0 e0 02             	shl    $0x2,%al
43a739:	02 c8                	add    %al,%cl
43a73b:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a73e:	c0 e1 03             	shl    $0x3,%cl
43a741:	02 4a 04             	add    0x4(%edx),%cl
43a744:	88 4d bc             	mov    %cl,-0x44(%ebp)
43a747:	8b 70 14             	mov    0x14(%eax),%esi
43a74a:	8d 45 bc             	lea    -0x44(%ebp),%eax
43a74d:	50                   	push   %eax
43a74e:	81 fe 70 cd 45 00    	cmp    $0x45cd70,%esi
43a754:	75 0a                	jne    0x43a760
43a756:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a759:	e8 12 26 02 00       	call   0x45cd70
43a75e:	eb 0d                	jmp    0x43a76d
43a760:	8b ce                	mov    %esi,%ecx
43a762:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a768:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a76b:	ff d6                	call   *%esi
43a76d:	8b 47 04             	mov    0x4(%edi),%eax
43a770:	ba 02 00 00 00       	mov    $0x2,%edx
43a775:	8b 0f                	mov    (%edi),%ecx
43a777:	2b c1                	sub    %ecx,%eax
43a779:	c1 f8 02             	sar    $0x2,%eax
43a77c:	89 55 b0             	mov    %edx,-0x50(%ebp)
43a77f:	3b c2                	cmp    %edx,%eax
43a781:	0f 86 c9 00 00 00    	jbe    0x43a850
43a787:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
43a78e:	c7 45 a8 07 00 00 00 	movl   $0x7,-0x58(%ebp)
43a795:	8b 1c 91             	mov    (%ecx,%edx,4),%ebx
43a798:	85 db                	test   %ebx,%ebx
43a79a:	75 04                	jne    0x43a7a0
43a79c:	33 d2                	xor    %edx,%edx
43a79e:	eb 23                	jmp    0x43a7c3
43a7a0:	33 f6                	xor    %esi,%esi
43a7a2:	ba 20 00 00 00       	mov    $0x20,%edx
43a7a7:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
43a7aa:	8b c3                	mov    %ebx,%eax
43a7ac:	d1 e9                	shr    $1,%ecx
43a7ae:	d3 e8                	shr    %cl,%eax
43a7b0:	85 c0                	test   %eax,%eax
43a7b2:	0f 44 d1             	cmove  %ecx,%edx
43a7b5:	0f 44 ce             	cmove  %esi,%ecx
43a7b8:	8b f1                	mov    %ecx,%esi
43a7ba:	8b c2                	mov    %edx,%eax
43a7bc:	2b c6                	sub    %esi,%eax
43a7be:	83 f8 01             	cmp    $0x1,%eax
43a7c1:	77 e4                	ja     0x43a7a7
43a7c3:	83 fa 07             	cmp    $0x7,%edx
43a7c6:	89 55 ac             	mov    %edx,-0x54(%ebp)
43a7c9:	8d 45 a8             	lea    -0x58(%ebp),%eax
43a7cc:	8d 4d ac             	lea    -0x54(%ebp),%ecx
43a7cf:	0f 46 c8             	cmovbe %eax,%ecx
43a7d2:	8d 55 ec             	lea    -0x14(%ebp),%edx
43a7d5:	e8 96 12 00 00       	call   0x43ba70
43a7da:	8b f0                	mov    %eax,%esi
43a7dc:	83 ee 07             	sub    $0x7,%esi
43a7df:	74 30                	je     0x43a811
43a7e1:	8b ce                	mov    %esi,%ecx
43a7e3:	8b c3                	mov    %ebx,%eax
43a7e5:	d3 e8                	shr    %cl,%eax
43a7e7:	6a 01                	push   $0x1
43a7e9:	0c 80                	or     $0x80,%al
43a7eb:	6a 00                	push   $0x0
43a7ed:	88 45 bc             	mov    %al,-0x44(%ebp)
43a7f0:	8d 45 bc             	lea    -0x44(%ebp),%eax
43a7f3:	6a 01                	push   $0x1
43a7f5:	50                   	push   %eax
43a7f6:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a7f9:	8b 78 14             	mov    0x14(%eax),%edi
43a7fc:	8b cf                	mov    %edi,%ecx
43a7fe:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a804:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a807:	ff d7                	call   *%edi
43a809:	83 ee 07             	sub    $0x7,%esi
43a80c:	75 d3                	jne    0x43a7e1
43a80e:	8b 7d a4             	mov    -0x5c(%ebp),%edi
43a811:	6a 01                	push   $0x1
43a813:	6a 00                	push   $0x0
43a815:	6a 01                	push   $0x1
43a817:	8d 45 bc             	lea    -0x44(%ebp),%eax
43a81a:	80 e3 7f             	and    $0x7f,%bl
43a81d:	50                   	push   %eax
43a81e:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a821:	88 5d bc             	mov    %bl,-0x44(%ebp)
43a824:	8b 70 14             	mov    0x14(%eax),%esi
43a827:	8b ce                	mov    %esi,%ecx
43a829:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a82f:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a832:	ff d6                	call   *%esi
43a834:	8b 47 04             	mov    0x4(%edi),%eax
43a837:	8b 55 b0             	mov    -0x50(%ebp),%edx
43a83a:	8b 0f                	mov    (%edi),%ecx
43a83c:	42                   	inc    %edx
43a83d:	2b c1                	sub    %ecx,%eax
43a83f:	89 55 b0             	mov    %edx,-0x50(%ebp)
43a842:	c1 f8 02             	sar    $0x2,%eax
43a845:	3b d0                	cmp    %eax,%edx
43a847:	0f 82 48 ff ff ff    	jb     0x43a795
43a84d:	8b 5d b8             	mov    -0x48(%ebp),%ebx
43a850:	8b 33                	mov    (%ebx),%esi
43a852:	8d 45 bc             	lea    -0x44(%ebp),%eax
43a855:	6a 01                	push   $0x1
43a857:	6a 00                	push   $0x0
43a859:	6a 01                	push   $0x1
43a85b:	8b 76 14             	mov    0x14(%esi),%esi
43a85e:	8b ce                	mov    %esi,%ecx
43a860:	50                   	push   %eax
43a861:	c6 45 bc 06          	movb   $0x6,-0x44(%ebp)
43a865:	ff 15 d4 e2 49 00    	call   *0x49e2d4
43a86b:	8b cb                	mov    %ebx,%ecx
43a86d:	ff d6                	call   *%esi
43a86f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
43a872:	0f 57 c0             	xorps  %xmm0,%xmm0
43a875:	66 0f 13 45 b4       	movlpd %xmm0,-0x4c(%ebp)
43a87a:	8b 55 b8             	mov    -0x48(%ebp),%edx
43a87d:	8b 75 b4             	mov    -0x4c(%ebp),%esi
43a880:	85 c9                	test   %ecx,%ecx
43a882:	74 11                	je     0x43a895
43a884:	8b 41 14             	mov    0x14(%ecx),%eax