43a550:	89 5d e8             	mov    %ebx,-0x18(%ebp)
43a553:	89 75 e0             	mov    %esi,-0x20(%ebp)
43a556:	85 ff                	test   %edi,%edi
43a558:	7f e1                	jg     0x43a53b
43a55a:	89 5d bc             	mov    %ebx,-0x44(%ebp)
43a55d:	33 db                	xor    %ebx,%ebx
43a55f:	89 55 e4             	mov    %edx,-0x1c(%ebp)
43a562:	89 75 c0             	mov    %esi,-0x40(%ebp)
43a565:	8b 75 8c             	mov    -0x74(%ebp),%esi
43a568:	8b 45 b8             	mov    -0x48(%ebp),%eax
43a56b:	40                   	inc    %eax
43a56c:	89 45 ac             	mov    %eax,-0x54(%ebp)
43a56f:	8d 7e 04             	lea    0x4(%esi),%edi
43a572:	89 7d 9c             	mov    %edi,-0x64(%ebp)
43a575:	8b cf                	mov    %edi,%ecx
43a577:	89 4d a8             	mov    %ecx,-0x58(%ebp)
43a57a:	85 c0                	test   %eax,%eax
43a57c:	0f 8e c8 00 00 00    	jle    0x43a64a
43a582:	8d 75 e0             	lea    -0x20(%ebp),%esi
43a585:	8b ca                	mov    %edx,%ecx
43a587:	8d 7d c4             	lea    -0x3c(%ebp),%edi
43a58a:	c1 e9 1f             	shr    $0x1f,%ecx
43a58d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a58e:	03 d2                	add    %edx,%edx
43a590:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a591:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a592:	8b 7d c0             	mov    -0x40(%ebp),%edi
43a595:	8b c7                	mov    %edi,%eax
43a597:	c1 e8 1f             	shr    $0x1f,%eax
43a59a:	03 ff                	add    %edi,%edi
43a59c:	0b d0                	or     %eax,%edx
43a59e:	8b 45 bc             	mov    -0x44(%ebp),%eax
43a5a1:	8d 34 00             	lea    (%eax,%eax,1),%esi
43a5a4:	8b c7                	mov    %edi,%eax
43a5a6:	0b f1                	or     %ecx,%esi
43a5a8:	c1 e8 1f             	shr    $0x1f,%eax
43a5ab:	8b ca                	mov    %edx,%ecx
43a5ad:	03 ff                	add    %edi,%edi
43a5af:	03 d2                	add    %edx,%edx
43a5b1:	c1 e9 1f             	shr    $0x1f,%ecx
43a5b4:	0b d0                	or     %eax,%edx
43a5b6:	03 f6                	add    %esi,%esi
43a5b8:	8b 45 c4             	mov    -0x3c(%ebp),%eax
43a5bb:	0b f1                	or     %ecx,%esi
43a5bd:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
43a5c0:	89 4d b8             	mov    %ecx,-0x48(%ebp)
43a5c3:	3b cf                	cmp    %edi,%ecx
43a5c5:	72 04                	jb     0x43a5cb
43a5c7:	3b c8                	cmp    %eax,%ecx
43a5c9:	73 1b                	jae    0x43a5e6
43a5cb:	8d 42 01             	lea    0x1(%edx),%eax
43a5ce:	8b cb                	mov    %ebx,%ecx
43a5d0:	3b c2                	cmp    %edx,%eax
43a5d2:	72 05                	jb     0x43a5d9
43a5d4:	83 f8 01             	cmp    $0x1,%eax
43a5d7:	73 03                	jae    0x43a5dc
43a5d9:	33 c9                	xor    %ecx,%ecx
43a5db:	41                   	inc    %ecx
43a5dc:	85 c9                	test   %ecx,%ecx
43a5de:	8b d0                	mov    %eax,%edx
43a5e0:	8b 4d b8             	mov    -0x48(%ebp),%ecx
43a5e3:	74 01                	je     0x43a5e6
43a5e5:	46                   	inc    %esi
43a5e6:	8b 45 c8             	mov    -0x38(%ebp),%eax
43a5e9:	8d 3c 10             	lea    (%eax,%edx,1),%edi
43a5ec:	3b fa                	cmp    %edx,%edi
43a5ee:	72 04                	jb     0x43a5f4
43a5f0:	3b f8                	cmp    %eax,%edi
43a5f2:	73 01                	jae    0x43a5f5
43a5f4:	46                   	inc    %esi
43a5f5:	03 75 cc             	add    -0x34(%ebp),%esi
43a5f8:	8b c1                	mov    %ecx,%eax
43a5fa:	8b 55 b8             	mov    -0x48(%ebp),%edx
43a5fd:	8b cf                	mov    %edi,%ecx
43a5ff:	03 d2                	add    %edx,%edx
43a601:	c1 e8 1f             	shr    $0x1f,%eax
43a604:	89 55 c0             	mov    %edx,-0x40(%ebp)
43a607:	89 55 e0             	mov    %edx,-0x20(%ebp)
43a60a:	8d 14 3f             	lea    (%edi,%edi,1),%edx
43a60d:	0b d0                	or     %eax,%edx
43a60f:	c1 e9 1f             	shr    $0x1f,%ecx
43a612:	8d 04 36             	lea    (%esi,%esi,1),%eax
43a615:	89 55 e4             	mov    %edx,-0x1c(%ebp)
43a618:	0b c1                	or     %ecx,%eax
43a61a:	8b 4d a8             	mov    -0x58(%ebp),%ecx
43a61d:	89 45 e8             	mov    %eax,-0x18(%ebp)
43a620:	c1 e8 18             	shr    $0x18,%eax
43a623:	04 30                	add    $0x30,%al
43a625:	88 5d eb             	mov    %bl,-0x15(%ebp)
43a628:	88 01                	mov    %al,(%ecx)
43a62a:	41                   	inc    %ecx
43a62b:	8b 45 ac             	mov    -0x54(%ebp),%eax
43a62e:	48                   	dec    %eax
43a62f:	89 4d a8             	mov    %ecx,-0x58(%ebp)
43a632:	89 45 ac             	mov    %eax,-0x54(%ebp)
43a635:	85 c0                	test   %eax,%eax
43a637:	7e 0b                	jle    0x43a644
43a639:	8b 45 e8             	mov    -0x18(%ebp),%eax
43a63c:	89 45 bc             	mov    %eax,-0x44(%ebp)
43a63f:	e9 3e ff ff ff       	jmp    0x43a582
43a644:	8b 75 8c             	mov    -0x74(%ebp),%esi
43a647:	8b 7d 9c             	mov    -0x64(%ebp),%edi
43a64a:	8a 41 ff             	mov    -0x1(%ecx),%al
43a64d:	83 e9 02             	sub    $0x2,%ecx
43a650:	3c 35                	cmp    $0x35,%al
43a652:	7c 45                	jl     0x43a699
43a654:	eb 09                	jmp    0x43a65f
43a656:	80 39 39             	cmpb   $0x39,(%ecx)
43a659:	75 08                	jne    0x43a663
43a65b:	c6 01 30             	movb   $0x30,(%ecx)
43a65e:	49                   	dec    %ecx
43a65f:	3b cf                	cmp    %edi,%ecx
43a661:	73 f3                	jae    0x43a656
43a663:	3b cf                	cmp    %edi,%ecx
43a665:	73 04                	jae    0x43a66b
43a667:	41                   	inc    %ecx
43a668:	66 ff 06             	incw   (%esi)
43a66b:	fe 01                	incb   (%ecx)
43a66d:	8b 45 8c             	mov    -0x74(%ebp),%eax
43a670:	2a c8                	sub    %al,%cl
43a672:	80 e9 03             	sub    $0x3,%cl
43a675:	88 48 03             	mov    %cl,0x3(%eax)
43a678:	0f be c9             	movsbl %cl,%ecx
43a67b:	88 5c 01 04          	mov    %bl,0x4(%ecx,%eax,1)
43a67f:	33 c0                	xor    %eax,%eax
43a681:	40                   	inc    %eax
43a682:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43a685:	5f                   	pop    %edi
43a686:	5e                   	pop    %esi
43a687:	33 cd                	xor    %ebp,%ecx
43a689:	5b                   	pop    %ebx
43a68a:	e8 a7 21 ff ff       	call   0x42c836
43a68f:	8b e5                	mov    %ebp,%esp
43a691:	5d                   	pop    %ebp
43a692:	c3                   	ret
43a693:	80 39 30             	cmpb   $0x30,(%ecx)
43a696:	75 05                	jne    0x43a69d
43a698:	49                   	dec    %ecx
43a699:	3b cf                	cmp    %edi,%ecx
43a69b:	73 f6                	jae    0x43a693
43a69d:	3b cf                	cmp    %edi,%ecx
43a69f:	73 cc                	jae    0x43a66d
43a6a1:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
43a6a4:	33 c0                	xor    %eax,%eax
43a6a6:	66 89 01             	mov    %ax,(%ecx)
43a6a9:	b8 00 80 00 00       	mov    $0x8000,%eax
43a6ae:	66 39 45 80          	cmp    %ax,-0x80(%ebp)
43a6b2:	0f 95 c0             	setne  %al
43a6b5:	fe c8                	dec    %al
43a6b7:	24 0d                	and    $0xd,%al
43a6b9:	04 20                	add    $0x20,%al
43a6bb:	88 41 02             	mov    %al,0x2(%ecx)
43a6be:	33 c0                	xor    %eax,%eax
43a6c0:	40                   	inc    %eax
43a6c1:	88 41 03             	mov    %al,0x3(%ecx)
43a6c4:	c6 07 30             	movb   $0x30,(%edi)
43a6c7:	e9 02 fe ff ff       	jmp    0x43a4ce
43a6cc:	33 db                	xor    %ebx,%ebx
43a6ce:	53                   	push   %ebx
43a6cf:	53                   	push   %ebx
43a6d0:	53                   	push   %ebx
43a6d1:	53                   	push   %ebx
43a6d2:	53                   	push   %ebx
43a6d3:	e8 2e e9 fe ff       	call   0x429006
43a6d8:	cc                   	int3
43a6d9:	55                   	push   %ebp
43a6da:	8b ec                	mov    %esp,%ebp
43a6dc:	8b 4d 08             	mov    0x8(%ebp),%ecx
43a6df:	33 c0                	xor    %eax,%eax
43a6e1:	f6 c1 10             	test   $0x10,%cl
43a6e4:	74 05                	je     0x43a6eb
43a6e6:	b8 80 00 00 00       	mov    $0x80,%eax
43a6eb:	53                   	push   %ebx
43a6ec:	56                   	push   %esi
43a6ed:	57                   	push   %edi
43a6ee:	bf 00 02 00 00       	mov    $0x200,%edi
43a6f3:	f6 c1 08             	test   $0x8,%cl
43a6f6:	74 02                	je     0x43a6fa
43a6f8:	0b c7                	or     %edi,%eax
43a6fa:	f6 c1 04             	test   $0x4,%cl
43a6fd:	74 05                	je     0x43a704
43a6ff:	0d 00 04 00 00       	or     $0x400,%eax
43a704:	f6 c1 02             	test   $0x2,%cl
43a707:	74 05                	je     0x43a70e
43a709:	0d 00 08 00 00       	or     $0x800,%eax
43a70e:	f6 c1 01             	test   $0x1,%cl
43a711:	74 05                	je     0x43a718
43a713:	0d 00 10 00 00       	or     $0x1000,%eax
43a718:	be 00 01 00 00       	mov    $0x100,%esi
43a71d:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
43a723:	74 02                	je     0x43a727
43a725:	0b c6                	or     %esi,%eax
43a727:	8b d1                	mov    %ecx,%edx
43a729:	bb 00 03 00 00       	mov    $0x300,%ebx
43a72e:	23 d3                	and    %ebx,%edx
43a730:	74 1f                	je     0x43a751
43a732:	3b d6                	cmp    %esi,%edx
43a734:	74 16                	je     0x43a74c
43a736:	3b d7                	cmp    %edi,%edx
43a738:	74 0b                	je     0x43a745
43a73a:	3b d3                	cmp    %ebx,%edx
43a73c:	75 13                	jne    0x43a751
43a73e:	0d 00 60 00 00       	or     $0x6000,%eax
43a743:	eb 0c                	jmp    0x43a751
43a745:	0d 00 40 00 00       	or     $0x4000,%eax
43a74a:	eb 05                	jmp    0x43a751
43a74c:	0d 00 20 00 00       	or     $0x2000,%eax
43a751:	ba 00 00 00 03       	mov    $0x3000000,%edx
43a756:	5f                   	pop    %edi
43a757:	23 ca                	and    %edx,%ecx
43a759:	5e                   	pop    %esi
43a75a:	5b                   	pop    %ebx
43a75b:	81 f9 00 00 00 01    	cmp    $0x1000000,%ecx
43a761:	74 18                	je     0x43a77b
43a763:	81 f9 00 00 00 02    	cmp    $0x2000000,%ecx
43a769:	74 0b                	je     0x43a776
43a76b:	3b ca                	cmp    %edx,%ecx
43a76d:	75 11                	jne    0x43a780
43a76f:	0d 00 80 00 00       	or     $0x8000,%eax
43a774:	5d                   	pop    %ebp
43a775:	c3                   	ret
43a776:	83 c8 40             	or     $0x40,%eax
43a779:	5d                   	pop    %ebp
43a77a:	c3                   	ret
43a77b:	0d 40 80 00 00       	or     $0x8040,%eax
43a780:	5d                   	pop    %ebp
43a781:	c3                   	ret
43a782:	55                   	push   %ebp
43a783:	8b ec                	mov    %esp,%ebp
43a785:	83 ec 0c             	sub    $0xc,%esp
43a788:	9b d9 7d fc          	fstcw  -0x4(%ebp)
43a78c:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
43a790:	33 c9                	xor    %ecx,%ecx
43a792:	a8 01                	test   $0x1,%al
43a794:	74 03                	je     0x43a799
43a796:	6a 10                	push   $0x10
43a798:	59                   	pop    %ecx
43a799:	a8 04                	test   $0x4,%al
43a79b:	74 03                	je     0x43a7a0
43a79d:	83 c9 08             	or     $0x8,%ecx
43a7a0:	a8 08                	test   $0x8,%al
43a7a2:	74 03                	je     0x43a7a7
43a7a4:	83 c9 04             	or     $0x4,%ecx
43a7a7:	a8 10                	test   $0x10,%al
43a7a9:	74 03                	je     0x43a7ae
43a7ab:	83 c9 02             	or     $0x2,%ecx
43a7ae:	a8 20                	test   $0x20,%al
43a7b0:	74 03                	je     0x43a7b5
43a7b2:	83 c9 01             	or     $0x1,%ecx
43a7b5:	a8 02                	test   $0x2,%al
43a7b7:	74 06                	je     0x43a7bf
43a7b9:	81 c9 00 00 08 00    	or     $0x80000,%ecx
43a7bf:	53                   	push   %ebx
43a7c0:	56                   	push   %esi
43a7c1:	0f b7 f0             	movzwl %ax,%esi
43a7c4:	bb 00 0c 00 00       	mov    $0xc00,%ebx
43a7c9:	8b d6                	mov    %esi,%edx
43a7cb:	57                   	push   %edi
43a7cc:	bf 00 02 00 00       	mov    $0x200,%edi
43a7d1:	23 d3                	and    %ebx,%edx
43a7d3:	74 26                	je     0x43a7fb
43a7d5:	81 fa 00 04 00 00    	cmp    $0x400,%edx
43a7db:	74 18                	je     0x43a7f5
43a7dd:	81 fa 00 08 00 00    	cmp    $0x800,%edx
43a7e3:	74 0c                	je     0x43a7f1
43a7e5:	3b d3                	cmp    %ebx,%edx
43a7e7:	75 12                	jne    0x43a7fb
43a7e9:	81 c9 00 03 00 00    	or     $0x300,%ecx
43a7ef:	eb 0a                	jmp    0x43a7fb
43a7f1:	0b cf                	or     %edi,%ecx
43a7f3:	eb 06                	jmp    0x43a7fb
43a7f5:	81 c9 00 01 00 00    	or     $0x100,%ecx
43a7fb:	81 e6 00 03 00 00    	and    $0x300,%esi
43a801:	74 0c                	je     0x43a80f
43a803:	3b f7                	cmp    %edi,%esi
43a805:	75 0e                	jne    0x43a815
43a807:	81 c9 00 00 01 00    	or     $0x10000,%ecx
43a80d:	eb 06                	jmp    0x43a815
43a80f:	81 c9 00 00 02 00    	or     $0x20000,%ecx
43a815:	0f b7 c0             	movzwl %ax,%eax
43a818:	ba 00 10 00 00       	mov    $0x1000,%edx
43a81d:	85 c2                	test   %eax,%edx
43a81f:	74 06                	je     0x43a827
43a821:	81 c9 00 00 04 00    	or     $0x40000,%ecx
43a827:	8b 7d 0c             	mov    0xc(%ebp),%edi
43a82a:	8b f7                	mov    %edi,%esi
43a82c:	8b 45 08             	mov    0x8(%ebp),%eax
43a82f:	f7 d6                	not    %esi
43a831:	23 f1                	and    %ecx,%esi
43a833:	23 c7                	and    %edi,%eax
43a835:	0b f0                	or     %eax,%esi
43a837:	3b f1                	cmp    %ecx,%esi
43a839:	0f 84 a6 00 00 00    	je     0x43a8e5
43a83f:	56                   	push   %esi
43a840:	e8 3f 02 00 00       	call   0x43aa84
43a845:	0f b7 c0             	movzwl %ax,%eax
43a848:	59                   	pop    %ecx
43a849:	89 45 f8             	mov    %eax,-0x8(%ebp)
43a84c:	d9 6d f8             	fldcw  -0x8(%ebp)
43a84f:	9b d9 7d f8          	fstcw  -0x8(%ebp)
43a853:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a856:	33 f6                	xor    %esi,%esi
43a858:	a8 01                	test   $0x1,%al
43a85a:	74 03                	je     0x43a85f
43a85c:	6a 10                	push   $0x10
43a85e:	5e                   	pop    %esi
43a85f:	a8 04                	test   $0x4,%al
43a861:	74 03                	je     0x43a866
43a863:	83 ce 08             	or     $0x8,%esi
43a866:	a8 08                	test   $0x8,%al
43a868:	74 03                	je     0x43a86d
43a86a:	83 ce 04             	or     $0x4,%esi
43a86d:	a8 10                	test   $0x10,%al
43a86f:	74 03                	je     0x43a874
43a871:	83 ce 02             	or     $0x2,%esi
43a874:	a8 20                	test   $0x20,%al
43a876:	74 03                	je     0x43a87b
43a878:	83 ce 01             	or     $0x1,%esi
43a87b:	a8 02                	test   $0x2,%al
43a87d:	74 06                	je     0x43a885
43a87f:	81 ce 00 00 08 00    	or     $0x80000,%esi
43a885:	0f b7 d0             	movzwl %ax,%edx
43a888:	8b ca                	mov    %edx,%ecx
43a88a:	23 cb                	and    %ebx,%ecx
43a88c:	74 2a                	je     0x43a8b8
43a88e:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
43a894:	74 1c                	je     0x43a8b2
43a896:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
43a89c:	74 0c                	je     0x43a8aa
43a89e:	3b cb                	cmp    %ebx,%ecx
43a8a0:	75 16                	jne    0x43a8b8
43a8a2:	81 ce 00 03 00 00    	or     $0x300,%esi
43a8a8:	eb 0e                	jmp    0x43a8b8
43a8aa:	81 ce 00 02 00 00    	or     $0x200,%esi
43a8b0:	eb 06                	jmp    0x43a8b8
43a8b2:	81 ce 00 01 00 00    	or     $0x100,%esi
43a8b8:	81 e2 00 03 00 00    	and    $0x300,%edx
43a8be:	74 10                	je     0x43a8d0
43a8c0:	81 fa 00 02 00 00    	cmp    $0x200,%edx
43a8c6:	75 0e                	jne    0x43a8d6
43a8c8:	81 ce 00 00 01 00    	or     $0x10000,%esi
43a8ce:	eb 06                	jmp    0x43a8d6
43a8d0:	81 ce 00 00 02 00    	or     $0x20000,%esi
43a8d6:	ba 00 10 00 00       	mov    $0x1000,%edx
43a8db:	85 c2                	test   %eax,%edx
43a8dd:	74 06                	je     0x43a8e5
43a8df:	81 ce 00 00 04 00    	or     $0x40000,%esi
43a8e5:	83 3d f8 41 4c 00 01 	cmpl   $0x1,0x4c41f8
43a8ec:	0f 8c 89 01 00 00    	jl     0x43aa7b
43a8f2:	81 e7 1f 03 08 03    	and    $0x308031f,%edi