43d670:	50                   	push   %eax
43d671:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d674:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
43d67a:	50                   	push   %eax
43d67b:	e8 e8 8a fc ff       	call   0x406168
43d680:	8b 55 ec             	mov    -0x14(%ebp),%edx
43d683:	d1 fa                	sar    $1,%edx
43d685:	79 03                	jns    0x43d68a
43d687:	83 d2 00             	adc    $0x0,%edx
43d68a:	2b c2                	sub    %edx,%eax
43d68c:	89 45 f4             	mov    %eax,-0xc(%ebp)
43d68f:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d692:	f6 40 61 08          	testb  $0x8,0x61(%eax)
43d696:	74 41                	je     0x43d6d9
43d698:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d69b:	f6 40 61 02          	testb  $0x2,0x61(%eax)
43d69f:	74 1c                	je     0x43d6bd
43d6a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d6a4:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
43d6aa:	8b 55 fc             	mov    -0x4(%ebp),%edx
43d6ad:	2b 82 8c 00 00 00    	sub    0x8c(%edx),%eax
43d6b3:	8b 55 e4             	mov    -0x1c(%ebp),%edx
43d6b6:	2b d0                	sub    %eax,%edx
43d6b8:	89 55 e8             	mov    %edx,-0x18(%ebp)
43d6bb:	eb 51                	jmp    0x43d70e
43d6bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d6c0:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
43d6c6:	8b 55 fc             	mov    -0x4(%ebp),%edx
43d6c9:	2b 82 8c 00 00 00    	sub    0x8c(%edx),%eax
43d6cf:	8b 55 e4             	mov    -0x1c(%ebp),%edx
43d6d2:	2b d0                	sub    %eax,%edx
43d6d4:	89 55 f0             	mov    %edx,-0x10(%ebp)
43d6d7:	eb 35                	jmp    0x43d70e
43d6d9:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d6dc:	f6 40 61 02          	testb  $0x2,0x61(%eax)
43d6e0:	75 2c                	jne    0x43d70e
43d6e2:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d6e5:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
43d6eb:	50                   	push   %eax
43d6ec:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43d6ef:	50                   	push   %eax
43d6f0:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d6f3:	8b 80 8c 00 00 00    	mov    0x8c(%eax),%eax
43d6f9:	50                   	push   %eax
43d6fa:	e8 69 8a fc ff       	call   0x406168
43d6ff:	8b 55 e8             	mov    -0x18(%ebp),%edx
43d702:	d1 fa                	sar    $1,%edx
43d704:	79 03                	jns    0x43d709
43d706:	83 d2 00             	adc    $0x0,%edx
43d709:	2b c2                	sub    %edx,%eax
43d70b:	89 45 f0             	mov    %eax,-0x10(%ebp)
43d70e:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d711:	c6 40 62 01          	movb   $0x1,0x62(%eax)
43d715:	33 c0                	xor    %eax,%eax
43d717:	55                   	push   %ebp
43d718:	68 51 d7 43 00       	push   $0x43d751
43d71d:	64 ff 30             	push   %fs:(%eax)
43d720:	64 89 20             	mov    %esp,%fs:(%eax)
43d723:	8b 45 ec             	mov    -0x14(%ebp),%eax
43d726:	50                   	push   %eax
43d727:	8b 45 e8             	mov    -0x18(%ebp),%eax
43d72a:	50                   	push   %eax
43d72b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43d72e:	8b 55 f4             	mov    -0xc(%ebp),%edx
43d731:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d734:	8b 18                	mov    (%eax),%ebx
43d736:	ff 93 84 00 00 00    	call   *0x84(%ebx)
43d73c:	33 c0                	xor    %eax,%eax
43d73e:	5a                   	pop    %edx
43d73f:	59                   	pop    %ecx
43d740:	59                   	pop    %ecx
43d741:	64 89 10             	mov    %edx,%fs:(%eax)
43d744:	68 58 d7 43 00       	push   $0x43d758
43d749:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d74c:	c6 40 62 00          	movb   $0x0,0x62(%eax)
43d750:	c3                   	ret
43d751:	e9 6a 62 fc ff       	jmp    0x4039c0
43d756:	eb f1                	jmp    0x43d749
43d758:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
43d75c:	0f 84 2c 02 00 00    	je     0x43d98e
43d762:	8b 45 08             	mov    0x8(%ebp),%eax
43d765:	8b 40 f8             	mov    -0x8(%eax),%eax
43d768:	8b 40 08             	mov    0x8(%eax),%eax
43d76b:	8b 55 08             	mov    0x8(%ebp),%edx
43d76e:	8b 52 f8             	mov    -0x8(%edx),%edx
43d771:	2b 02                	sub    (%edx),%eax
43d773:	89 45 ec             	mov    %eax,-0x14(%ebp)
43d776:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
43d77a:	7c 0d                	jl     0x43d789
43d77c:	8a 45 fb             	mov    -0x5(%ebp),%al
43d77f:	04 fd                	add    $0xfd,%al
43d781:	2c 02                	sub    $0x2,%al
43d783:	72 04                	jb     0x43d789
43d785:	2c 01                	sub    $0x1,%al
43d787:	75 09                	jne    0x43d792
43d789:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d78c:	8b 40 48             	mov    0x48(%eax),%eax
43d78f:	89 45 ec             	mov    %eax,-0x14(%ebp)
43d792:	8b 45 08             	mov    0x8(%ebp),%eax
43d795:	8b 40 f8             	mov    -0x8(%eax),%eax
43d798:	8b 40 0c             	mov    0xc(%eax),%eax
43d79b:	8b 55 08             	mov    0x8(%ebp),%edx
43d79e:	8b 52 f8             	mov    -0x8(%edx),%edx
43d7a1:	2b 42 04             	sub    0x4(%edx),%eax
43d7a4:	89 45 e8             	mov    %eax,-0x18(%ebp)
43d7a7:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
43d7ab:	7c 0c                	jl     0x43d7b9
43d7ad:	8a 45 fb             	mov    -0x5(%ebp),%al
43d7b0:	48                   	dec    %eax
43d7b1:	2c 02                	sub    $0x2,%al
43d7b3:	72 04                	jb     0x43d7b9
43d7b5:	2c 03                	sub    $0x3,%al
43d7b7:	75 09                	jne    0x43d7c2
43d7b9:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d7bc:	8b 40 4c             	mov    0x4c(%eax),%eax
43d7bf:	89 45 e8             	mov    %eax,-0x18(%ebp)
43d7c2:	8b 45 08             	mov    0x8(%ebp),%eax
43d7c5:	8b 40 f8             	mov    -0x8(%eax),%eax
43d7c8:	8b 00                	mov    (%eax),%eax
43d7ca:	89 45 f4             	mov    %eax,-0xc(%ebp)
43d7cd:	8b 45 08             	mov    0x8(%ebp),%eax
43d7d0:	8b 40 f8             	mov    -0x8(%eax),%eax
43d7d3:	8b 40 04             	mov    0x4(%eax),%eax
43d7d6:	89 45 f0             	mov    %eax,-0x10(%ebp)
43d7d9:	33 c0                	xor    %eax,%eax
43d7db:	8a 45 fb             	mov    -0x5(%ebp),%al
43d7de:	83 f8 06             	cmp    $0x6,%eax
43d7e1:	0f 87 af 00 00 00    	ja     0x43d896
43d7e7:	ff 24 85 ee d7 43 00 	jmp    *0x43d7ee(,%eax,4)
43d7ee:	96                   	xchg   %eax,%esi
43d7ef:	d8 43 00             	fadds  0x0(%ebx)
43d7f2:	0a d8                	or     %al,%bl
43d7f4:	43                   	inc    %ebx
43d7f5:	00 18                	add    %bl,(%eax)
43d7f7:	d8 43 00             	fadds  0x0(%ebx)
43d7fa:	32 d8                	xor    %al,%bl
43d7fc:	43                   	inc    %ebx
43d7fd:	00 3f                	add    %bh,(%edi)
43d7ff:	d8 43 00             	fadds  0x0(%ebx)
43d802:	96                   	xchg   %eax,%esi
43d803:	d8 43 00             	fadds  0x0(%ebx)
43d806:	59                   	pop    %ecx
43d807:	d8 43 00             	fadds  0x0(%ebx)
43d80a:	8b 45 08             	mov    0x8(%ebp),%eax
43d80d:	8b 40 f8             	mov    -0x8(%eax),%eax
43d810:	8b 55 e8             	mov    -0x18(%ebp),%edx
43d813:	01 50 04             	add    %edx,0x4(%eax)
43d816:	eb 7e                	jmp    0x43d896
43d818:	8b 45 08             	mov    0x8(%ebp),%eax
43d81b:	8b 40 f8             	mov    -0x8(%eax),%eax
43d81e:	8b 55 e8             	mov    -0x18(%ebp),%edx
43d821:	29 50 0c             	sub    %edx,0xc(%eax)
43d824:	8b 45 08             	mov    0x8(%ebp),%eax
43d827:	8b 40 f8             	mov    -0x8(%eax),%eax
43d82a:	8b 40 0c             	mov    0xc(%eax),%eax
43d82d:	89 45 f0             	mov    %eax,-0x10(%ebp)
43d830:	eb 64                	jmp    0x43d896
43d832:	8b 45 08             	mov    0x8(%ebp),%eax
43d835:	8b 40 f8             	mov    -0x8(%eax),%eax
43d838:	8b 55 ec             	mov    -0x14(%ebp),%edx
43d83b:	01 10                	add    %edx,(%eax)
43d83d:	eb 57                	jmp    0x43d896
43d83f:	8b 45 08             	mov    0x8(%ebp),%eax
43d842:	8b 40 f8             	mov    -0x8(%eax),%eax
43d845:	8b 55 ec             	mov    -0x14(%ebp),%edx
43d848:	29 50 08             	sub    %edx,0x8(%eax)
43d84b:	8b 45 08             	mov    0x8(%ebp),%eax
43d84e:	8b 40 f8             	mov    -0x8(%eax),%eax
43d851:	8b 40 08             	mov    0x8(%eax),%eax
43d854:	89 45 f4             	mov    %eax,-0xc(%ebp)
43d857:	eb 3d                	jmp    0x43d896
43d859:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d85c:	8b 40 40             	mov    0x40(%eax),%eax
43d85f:	89 45 f4             	mov    %eax,-0xc(%ebp)
43d862:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d865:	8b 40 44             	mov    0x44(%eax),%eax
43d868:	89 45 f0             	mov    %eax,-0x10(%ebp)
43d86b:	8d 45 f0             	lea    -0x10(%ebp),%eax
43d86e:	50                   	push   %eax
43d86f:	8d 45 ec             	lea    -0x14(%ebp),%eax
43d872:	50                   	push   %eax
43d873:	8d 45 e8             	lea    -0x18(%ebp),%eax
43d876:	50                   	push   %eax
43d877:	8b 45 08             	mov    0x8(%ebp),%eax
43d87a:	8b 40 f8             	mov    -0x8(%eax),%eax
43d87d:	50                   	push   %eax
43d87e:	8d 45 d0             	lea    -0x30(%ebp),%eax
43d881:	50                   	push   %eax
43d882:	8d 4d f4             	lea    -0xc(%ebp),%ecx
43d885:	8b 45 08             	mov    0x8(%ebp),%eax
43d888:	8b 40 fc             	mov    -0x4(%eax),%eax
43d88b:	8b 55 fc             	mov    -0x4(%ebp),%edx
43d88e:	8b 18                	mov    (%eax),%ebx
43d890:	ff 93 a8 00 00 00    	call   *0xa8(%ebx)
43d896:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d899:	c6 40 62 01          	movb   $0x1,0x62(%eax)
43d89d:	33 c0                	xor    %eax,%eax
43d89f:	55                   	push   %ebp
43d8a0:	68 d9 d8 43 00       	push   $0x43d8d9
43d8a5:	64 ff 30             	push   %fs:(%eax)
43d8a8:	64 89 20             	mov    %esp,%fs:(%eax)
43d8ab:	8b 45 ec             	mov    -0x14(%ebp),%eax
43d8ae:	50                   	push   %eax
43d8af:	8b 45 e8             	mov    -0x18(%ebp),%eax
43d8b2:	50                   	push   %eax
43d8b3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43d8b6:	8b 55 f4             	mov    -0xc(%ebp),%edx
43d8b9:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d8bc:	8b 18                	mov    (%eax),%ebx
43d8be:	ff 93 84 00 00 00    	call   *0x84(%ebx)
43d8c4:	33 c0                	xor    %eax,%eax
43d8c6:	5a                   	pop    %edx
43d8c7:	59                   	pop    %ecx
43d8c8:	59                   	pop    %ecx
43d8c9:	64 89 10             	mov    %edx,%fs:(%eax)
43d8cc:	68 e0 d8 43 00       	push   $0x43d8e0
43d8d1:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d8d4:	c6 40 62 00          	movb   $0x0,0x62(%eax)
43d8d8:	c3                   	ret
43d8d9:	e9 e2 60 fc ff       	jmp    0x4039c0
43d8de:	eb f1                	jmp    0x43d8d1
43d8e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d8e3:	8b 40 48             	mov    0x48(%eax),%eax
43d8e6:	3b 45 ec             	cmp    -0x14(%ebp),%eax
43d8e9:	75 0f                	jne    0x43d8fa
43d8eb:	8b 55 fc             	mov    -0x4(%ebp),%edx
43d8ee:	8b 52 4c             	mov    0x4c(%edx),%edx
43d8f1:	3b 55 e8             	cmp    -0x18(%ebp),%edx
43d8f4:	0f 84 94 00 00 00    	je     0x43d98e
43d8fa:	33 d2                	xor    %edx,%edx
43d8fc:	8a 55 fb             	mov    -0x5(%ebp),%dl
43d8ff:	83 fa 05             	cmp    $0x5,%edx
43d902:	0f 87 86 00 00 00    	ja     0x43d98e
43d908:	ff 24 95 0f d9 43 00 	jmp    *0x43d90f(,%edx,4)
43d90f:	8e d9                	mov    %ecx,%ds
43d911:	43                   	inc    %ebx
43d912:	00 27                	add    %ah,(%edi)
43d914:	d9 43 00             	flds   0x0(%ebx)
43d917:	3b d9                	cmp    %ecx,%ebx
43d919:	43                   	inc    %ebx
43d91a:	00 4f d9             	add    %cl,-0x27(%edi)
43d91d:	43                   	inc    %ebx
43d91e:	00 5e d9             	add    %bl,-0x27(%esi)
43d921:	43                   	inc    %ebx
43d922:	00 6e d9             	add    %ch,-0x27(%esi)
43d925:	43                   	inc    %ebx
43d926:	00 8b 45 fc 8b 55    	add    %cl,0x558bfc45(%ebx)
43d92c:	e8 2b 50 4c 8b       	call   0x8b90295c
43d931:	45                   	inc    %ebp
43d932:	08 8b 40 f8 29 50    	or     %cl,0x5029f840(%ebx)
43d938:	04 eb                	add    $0xeb,%al
43d93a:	53                   	push   %ebx
43d93b:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d93e:	8b 55 e8             	mov    -0x18(%ebp),%edx
43d941:	2b 50 4c             	sub    0x4c(%eax),%edx
43d944:	8b 45 08             	mov    0x8(%ebp),%eax
43d947:	8b 40 f8             	mov    -0x8(%eax),%eax
43d94a:	01 50 0c             	add    %edx,0xc(%eax)
43d94d:	eb 3f                	jmp    0x43d98e
43d94f:	8b 55 ec             	mov    -0x14(%ebp),%edx
43d952:	2b d0                	sub    %eax,%edx
43d954:	8b 45 08             	mov    0x8(%ebp),%eax
43d957:	8b 40 f8             	mov    -0x8(%eax),%eax
43d95a:	29 10                	sub    %edx,(%eax)
43d95c:	eb 30                	jmp    0x43d98e
43d95e:	8b 55 ec             	mov    -0x14(%ebp),%edx
43d961:	2b d0                	sub    %eax,%edx
43d963:	8b 45 08             	mov    0x8(%ebp),%eax
43d966:	8b 40 f8             	mov    -0x8(%eax),%eax
43d969:	01 50 08             	add    %edx,0x8(%eax)
43d96c:	eb 20                	jmp    0x43d98e
43d96e:	8b 55 ec             	mov    -0x14(%ebp),%edx
43d971:	2b d0                	sub    %eax,%edx
43d973:	8b 45 08             	mov    0x8(%ebp),%eax
43d976:	8b 40 f8             	mov    -0x8(%eax),%eax
43d979:	01 50 08             	add    %edx,0x8(%eax)
43d97c:	8b 45 fc             	mov    -0x4(%ebp),%eax
43d97f:	8b 55 e8             	mov    -0x18(%ebp),%edx
43d982:	2b 50 4c             	sub    0x4c(%eax),%edx
43d985:	8b 45 08             	mov    0x8(%ebp),%eax
43d988:	8b 40 f8             	mov    -0x8(%eax),%eax
43d98b:	01 50 0c             	add    %edx,0xc(%eax)
43d98e:	5f                   	pop    %edi
43d98f:	5e                   	pop    %esi
43d990:	5b                   	pop    %ebx
43d991:	8b e5                	mov    %ebp,%esp
43d993:	5d                   	pop    %ebp
43d994:	c3                   	ret
43d995:	8d 40 00             	lea    0x0(%eax),%eax
43d998:	55                   	push   %ebp
43d999:	8b ec                	mov    %esp,%ebp
43d99b:	83 c4 e8             	add    $0xffffffe8,%esp
43d99e:	53                   	push   %ebx
43d99f:	56                   	push   %esi
43d9a0:	57                   	push   %edi
43d9a1:	8b d8                	mov    %eax,%ebx
43d9a3:	8b 45 08             	mov    0x8(%ebp),%eax
43d9a6:	8b 40 f4             	mov    -0xc(%eax),%eax
43d9a9:	8b 10                	mov    (%eax),%edx
43d9ab:	ff 52 08             	call   *0x8(%edx)
43d9ae:	8b 45 08             	mov    0x8(%ebp),%eax
43d9b1:	83 78 f0 00          	cmpl   $0x0,-0x10(%eax)
43d9b5:	74 44                	je     0x43d9fb
43d9b7:	84 db                	test   %bl,%bl
43d9b9:	74 24                	je     0x43d9df
43d9bb:	8b 45 08             	mov    0x8(%ebp),%eax
43d9be:	8b 40 f0             	mov    -0x10(%eax),%eax
43d9c1:	80 78 57 00          	cmpb   $0x0,0x57(%eax)
43d9c5:	75 18                	jne    0x43d9df
43d9c7:	8b 45 08             	mov    0x8(%ebp),%eax
43d9ca:	8b 40 f0             	mov    -0x10(%eax),%eax
43d9cd:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
43d9d1:	74 28                	je     0x43d9fb
43d9d3:	8b 45 08             	mov    0x8(%ebp),%eax
43d9d6:	8b 40 f0             	mov    -0x10(%eax),%eax
43d9d9:	f6 40 51 04          	testb  $0x4,0x51(%eax)
43d9dd:	75 1c                	jne    0x43d9fb
43d9df:	8b 45 08             	mov    0x8(%ebp),%eax
43d9e2:	8b 40 f0             	mov    -0x10(%eax),%eax
43d9e5:	3a 58 5b             	cmp    0x5b(%eax),%bl
43d9e8:	75 11                	jne    0x43d9fb
43d9ea:	8b 45 08             	mov    0x8(%ebp),%eax
43d9ed:	8b 50 f0             	mov    -0x10(%eax),%edx
43d9f0:	8b 45 08             	mov    0x8(%ebp),%eax
43d9f3:	8b 40 f4             	mov    -0xc(%eax),%eax
43d9f6:	e8 35 62 fd ff       	call   0x413c30
43d9fb:	8b 45 08             	mov    0x8(%ebp),%eax
43d9fe:	8b 40 fc             	mov    -0x4(%eax),%eax
43da01:	e8 86 07 00 00       	call   0x43e18c
43da06:	48                   	dec    %eax
43da07:	85 c0                	test   %eax,%eax
43da09:	0f 8c 9c 00 00 00    	jl     0x43daab
43da0f:	40                   	inc    %eax
43da10:	89 45 f8             	mov    %eax,-0x8(%ebp)
43da13:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
43da1a:	8b 45 08             	mov    0x8(%ebp),%eax
43da1d:	8b 40 fc             	mov    -0x4(%eax),%eax
43da20:	8b 55 fc             	mov    -0x4(%ebp),%edx
43da23:	e8 28 07 00 00       	call   0x43e150
43da28:	8b f8                	mov    %eax,%edi
43da2a:	3a 5f 5b             	cmp    0x5b(%edi),%bl
43da2d:	75 70                	jne    0x43da9f
43da2f:	84 db                	test   %bl,%bl
43da31:	74 24                	je     0x43da57
43da33:	80 7f 57 00          	cmpb   $0x0,0x57(%edi)
43da37:	75 1e                	jne    0x43da57
43da39:	a1 04 db 43 00       	mov    0x43db04,%eax
43da3e:	23 47 50             	and    0x50(%edi),%eax
43da41:	8b 15 04 db 43 00    	mov    0x43db04,%edx
43da47:	3b d0                	cmp    %eax,%edx