43f76f:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f772:	8b 71 f4             	mov    -0xc(%ecx),%esi
43f775:	2b d6                	sub    %esi,%edx
43f777:	2b d0                	sub    %eax,%edx
43f779:	d1 fa                	sar    $1,%edx
43f77b:	79 03                	jns    0x43f780
43f77d:	83 d2 00             	adc    $0x0,%edx
43f780:	8b 45 08             	mov    0x8(%ebp),%eax
43f783:	03 d6                	add    %esi,%edx
43f785:	42                   	inc    %edx
43f786:	52                   	push   %edx
43f787:	8b 45 08             	mov    0x8(%ebp),%eax
43f78a:	8b 40 b4             	mov    -0x4c(%eax),%eax
43f78d:	8b 10                	mov    (%eax),%edx
43f78f:	ff 52 2c             	call   *0x2c(%edx)
43f792:	8b 55 08             	mov    0x8(%ebp),%edx
43f795:	8b 52 f8             	mov    -0x8(%edx),%edx
43f798:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f79b:	8b 59 f0             	mov    -0x10(%ecx),%ebx
43f79e:	2b d3                	sub    %ebx,%edx
43f7a0:	2b d0                	sub    %eax,%edx
43f7a2:	d1 fa                	sar    $1,%edx
43f7a4:	79 03                	jns    0x43f7a9
43f7a6:	83 d2 00             	adc    $0x0,%edx
43f7a9:	8b 45 08             	mov    0x8(%ebp),%eax
43f7ac:	03 d3                	add    %ebx,%edx
43f7ae:	42                   	inc    %edx
43f7af:	8b 45 08             	mov    0x8(%ebp),%eax
43f7b2:	8b 40 d8             	mov    -0x28(%eax),%eax
43f7b5:	59                   	pop    %ecx
43f7b6:	e8 2d 54 fe ff       	call   0x424be8
43f7bb:	8b 45 08             	mov    0x8(%ebp),%eax
43f7be:	8b 50 b8             	mov    -0x48(%eax),%edx
43f7c1:	8b 45 08             	mov    0x8(%ebp),%eax
43f7c4:	8b 40 d8             	mov    -0x28(%eax),%eax
43f7c7:	8b 40 0c             	mov    0xc(%eax),%eax
43f7ca:	e8 65 48 fe ff       	call   0x424034
43f7cf:	33 c0                	xor    %eax,%eax
43f7d1:	5a                   	pop    %edx
43f7d2:	59                   	pop    %ecx
43f7d3:	59                   	pop    %ecx
43f7d4:	64 89 10             	mov    %edx,%fs:(%eax)
43f7d7:	68 f9 f8 43 00       	push   $0x43f8f9
43f7dc:	8b 45 08             	mov    0x8(%ebp),%eax
43f7df:	8b 40 b4             	mov    -0x4c(%eax),%eax
43f7e2:	e8 35 41 fc ff       	call   0x40391c
43f7e7:	c3                   	ret
43f7e8:	e9 c3 48 fc ff       	jmp    0x4040b0
43f7ed:	eb ed                	jmp    0x43f7dc
43f7ef:	8b 45 08             	mov    0x8(%ebp),%eax
43f7f2:	8b 55 08             	mov    0x8(%ebp),%edx
43f7f5:	8d 70 f0             	lea    -0x10(%eax),%esi
43f7f8:	8d 7a a4             	lea    -0x5c(%edx),%edi
43f7fb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f7fc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f7fd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f7fe:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f7ff:	8b 45 08             	mov    0x8(%ebp),%eax
43f802:	8b 40 c8             	mov    -0x38(%eax),%eax
43f805:	8b 40 4c             	mov    0x4c(%eax),%eax
43f808:	8b 10                	mov    (%eax),%edx
43f80a:	ff 52 2c             	call   *0x2c(%edx)
43f80d:	8b 55 08             	mov    0x8(%ebp),%edx
43f810:	8b 52 f8             	mov    -0x8(%edx),%edx
43f813:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f816:	2b 51 f0             	sub    -0x10(%ecx),%edx
43f819:	3b c2                	cmp    %edx,%eax
43f81b:	7d 4a                	jge    0x43f867
43f81d:	8b 45 08             	mov    0x8(%ebp),%eax
43f820:	8b 40 c8             	mov    -0x38(%eax),%eax
43f823:	8b 40 4c             	mov    0x4c(%eax),%eax
43f826:	8b 10                	mov    (%eax),%edx
43f828:	ff 52 2c             	call   *0x2c(%edx)
43f82b:	8b 55 08             	mov    0x8(%ebp),%edx
43f82e:	8b 52 f8             	mov    -0x8(%edx),%edx
43f831:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f834:	2b 51 f0             	sub    -0x10(%ecx),%edx
43f837:	2b d0                	sub    %eax,%edx
43f839:	d1 fa                	sar    $1,%edx
43f83b:	79 03                	jns    0x43f840
43f83d:	83 d2 00             	adc    $0x0,%edx
43f840:	8b 45 08             	mov    0x8(%ebp),%eax
43f843:	03 50 f0             	add    -0x10(%eax),%edx
43f846:	42                   	inc    %edx
43f847:	8b 45 08             	mov    0x8(%ebp),%eax
43f84a:	89 50 f0             	mov    %edx,-0x10(%eax)
43f84d:	8b 45 08             	mov    0x8(%ebp),%eax
43f850:	8b 40 c8             	mov    -0x38(%eax),%eax
43f853:	8b 40 4c             	mov    0x4c(%eax),%eax
43f856:	8b 10                	mov    (%eax),%edx
43f858:	ff 52 2c             	call   *0x2c(%edx)
43f85b:	8b 55 08             	mov    0x8(%ebp),%edx
43f85e:	03 42 f0             	add    -0x10(%edx),%eax
43f861:	8b 55 08             	mov    0x8(%ebp),%edx
43f864:	89 42 f8             	mov    %eax,-0x8(%edx)
43f867:	8b 45 08             	mov    0x8(%ebp),%eax
43f86a:	8b 40 c8             	mov    -0x38(%eax),%eax
43f86d:	8b 40 4c             	mov    0x4c(%eax),%eax
43f870:	8b 10                	mov    (%eax),%edx
43f872:	ff 52 20             	call   *0x20(%edx)
43f875:	8b 55 08             	mov    0x8(%ebp),%edx
43f878:	8b 52 fc             	mov    -0x4(%edx),%edx
43f87b:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f87e:	2b 51 f4             	sub    -0xc(%ecx),%edx
43f881:	3b c2                	cmp    %edx,%eax
43f883:	7d 4a                	jge    0x43f8cf
43f885:	8b 45 08             	mov    0x8(%ebp),%eax
43f888:	8b 40 c8             	mov    -0x38(%eax),%eax
43f88b:	8b 40 4c             	mov    0x4c(%eax),%eax
43f88e:	8b 10                	mov    (%eax),%edx
43f890:	ff 52 20             	call   *0x20(%edx)
43f893:	8b 55 08             	mov    0x8(%ebp),%edx
43f896:	8b 52 fc             	mov    -0x4(%edx),%edx
43f899:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f89c:	2b 51 f4             	sub    -0xc(%ecx),%edx
43f89f:	2b d0                	sub    %eax,%edx
43f8a1:	d1 fa                	sar    $1,%edx
43f8a3:	79 03                	jns    0x43f8a8
43f8a5:	83 d2 00             	adc    $0x0,%edx
43f8a8:	8b 45 08             	mov    0x8(%ebp),%eax
43f8ab:	03 50 f4             	add    -0xc(%eax),%edx
43f8ae:	42                   	inc    %edx
43f8af:	8b 45 08             	mov    0x8(%ebp),%eax
43f8b2:	89 50 f4             	mov    %edx,-0xc(%eax)
43f8b5:	8b 45 08             	mov    0x8(%ebp),%eax
43f8b8:	8b 40 c8             	mov    -0x38(%eax),%eax
43f8bb:	8b 40 4c             	mov    0x4c(%eax),%eax
43f8be:	8b 10                	mov    (%eax),%edx
43f8c0:	ff 52 20             	call   *0x20(%edx)
43f8c3:	8b 55 08             	mov    0x8(%ebp),%edx
43f8c6:	03 42 f4             	add    -0xc(%edx),%eax
43f8c9:	8b 55 08             	mov    0x8(%ebp),%edx
43f8cc:	89 42 fc             	mov    %eax,-0x4(%edx)
43f8cf:	8b 45 08             	mov    0x8(%ebp),%eax
43f8d2:	8b 40 c8             	mov    -0x38(%eax),%eax
43f8d5:	8b 48 4c             	mov    0x4c(%eax),%ecx
43f8d8:	8b 45 08             	mov    0x8(%ebp),%eax
43f8db:	8d 50 f0             	lea    -0x10(%eax),%edx
43f8de:	8b 45 08             	mov    0x8(%ebp),%eax
43f8e1:	8b 40 d8             	mov    -0x28(%eax),%eax
43f8e4:	e8 33 55 fe ff       	call   0x424e1c
43f8e9:	8b 45 08             	mov    0x8(%ebp),%eax
43f8ec:	8b 55 08             	mov    0x8(%ebp),%edx
43f8ef:	8d 70 a4             	lea    -0x5c(%eax),%esi
43f8f2:	8d 7a f0             	lea    -0x10(%edx),%edi
43f8f5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f8f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f8f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f8f8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f8f9:	8b 45 08             	mov    0x8(%ebp),%eax
43f8fc:	8b 40 c8             	mov    -0x38(%eax),%eax
43f8ff:	80 78 38 00          	cmpb   $0x0,0x38(%eax)
43f903:	74 6b                	je     0x43f970
43f905:	8b 45 08             	mov    0x8(%ebp),%eax
43f908:	ff 48 f8             	decl   -0x8(%eax)
43f90b:	8b 45 08             	mov    0x8(%ebp),%eax
43f90e:	ff 48 fc             	decl   -0x4(%eax)
43f911:	eb 5d                	jmp    0x43f970
43f913:	8b 45 08             	mov    0x8(%ebp),%eax
43f916:	83 78 c0 00          	cmpl   $0x0,-0x40(%eax)
43f91a:	74 35                	je     0x43f951
43f91c:	8b 45 08             	mov    0x8(%ebp),%eax
43f91f:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
43f923:	75 2c                	jne    0x43f951
43f925:	8b 45 08             	mov    0x8(%ebp),%eax
43f928:	8b 40 f0             	mov    -0x10(%eax),%eax
43f92b:	8b 55 08             	mov    0x8(%ebp),%edx
43f92e:	8b 52 c0             	mov    -0x40(%edx),%edx
43f931:	03 42 34             	add    0x34(%edx),%eax
43f934:	8b 55 08             	mov    0x8(%ebp),%edx
43f937:	89 42 f8             	mov    %eax,-0x8(%edx)
43f93a:	8b 45 08             	mov    0x8(%ebp),%eax
43f93d:	8b 40 f4             	mov    -0xc(%eax),%eax
43f940:	8b 55 08             	mov    0x8(%ebp),%edx
43f943:	8b 52 c0             	mov    -0x40(%edx),%edx
43f946:	03 42 30             	add    0x30(%edx),%eax
43f949:	8b 55 08             	mov    0x8(%ebp),%edx
43f94c:	89 42 fc             	mov    %eax,-0x4(%edx)
43f94f:	eb 18                	jmp    0x43f969
43f951:	8b 45 08             	mov    0x8(%ebp),%eax
43f954:	8b 40 f0             	mov    -0x10(%eax),%eax
43f957:	8b 55 08             	mov    0x8(%ebp),%edx
43f95a:	89 42 f8             	mov    %eax,-0x8(%edx)
43f95d:	8b 45 08             	mov    0x8(%ebp),%eax
43f960:	8b 40 f4             	mov    -0xc(%eax),%eax
43f963:	8b 55 08             	mov    0x8(%ebp),%edx
43f966:	89 42 fc             	mov    %eax,-0x4(%edx)
43f969:	8b 45 08             	mov    0x8(%ebp),%eax
43f96c:	c6 40 c7 00          	movb   $0x0,-0x39(%eax)
43f970:	8b 45 08             	mov    0x8(%ebp),%eax
43f973:	ff 48 f0             	decl   -0x10(%eax)
43f976:	8b 45 08             	mov    0x8(%ebp),%eax
43f979:	ff 48 f4             	decl   -0xc(%eax)
43f97c:	8b 45 08             	mov    0x8(%ebp),%eax
43f97f:	83 40 f8 02          	addl   $0x2,-0x8(%eax)
43f983:	8b 45 08             	mov    0x8(%ebp),%eax
43f986:	83 40 fc 02          	addl   $0x2,-0x4(%eax)
43f98a:	8b 45 08             	mov    0x8(%ebp),%eax
43f98d:	8b 40 c8             	mov    -0x38(%eax),%eax
43f990:	80 78 38 00          	cmpb   $0x0,0x38(%eax)
43f994:	75 12                	jne    0x43f9a8
43f996:	8b 45 08             	mov    0x8(%ebp),%eax
43f999:	80 78 d7 00          	cmpb   $0x0,-0x29(%eax)
43f99d:	74 3e                	je     0x43f9dd
43f99f:	8b 45 08             	mov    0x8(%ebp),%eax
43f9a2:	80 78 c7 00          	cmpb   $0x0,-0x39(%eax)
43f9a6:	74 35                	je     0x43f9dd
43f9a8:	8b 45 08             	mov    0x8(%ebp),%eax
43f9ab:	80 78 df 00          	cmpb   $0x0,-0x21(%eax)
43f9af:	75 2c                	jne    0x43f9dd
43f9b1:	6a 0f                	push   $0xf
43f9b3:	8b 45 08             	mov    0x8(%ebp),%eax
43f9b6:	8b 40 c8             	mov    -0x38(%eax),%eax
43f9b9:	0f b6 40 38          	movzbl 0x38(%eax),%eax
43f9bd:	8b 04 85 04 c6 49 00 	mov    0x49c604(,%eax,4),%eax
43f9c4:	50                   	push   %eax
43f9c5:	8b 45 08             	mov    0x8(%ebp),%eax
43f9c8:	83 c0 f0             	add    $0xfffffff0,%eax
43f9cb:	50                   	push   %eax
43f9cc:	8b 45 08             	mov    0x8(%ebp),%eax
43f9cf:	8b 40 d8             	mov    -0x28(%eax),%eax
43f9d2:	e8 35 57 fe ff       	call   0x42510c
43f9d7:	50                   	push   %eax
43f9d8:	e8 c3 74 fc ff       	call   0x406ea0
43f9dd:	8b 45 08             	mov    0x8(%ebp),%eax
43f9e0:	80 78 d7 00          	cmpb   $0x0,-0x29(%eax)
43f9e4:	74 4c                	je     0x43fa32
43f9e6:	8b 45 08             	mov    0x8(%ebp),%eax
43f9e9:	80 78 c7 00          	cmpb   $0x0,-0x39(%eax)
43f9ed:	74 0d                	je     0x43f9fc
43f9ef:	8b 45 08             	mov    0x8(%ebp),%eax
43f9f2:	8b 40 f8             	mov    -0x8(%eax),%eax
43f9f5:	40                   	inc    %eax
43f9f6:	8b 55 08             	mov    0x8(%ebp),%edx
43f9f9:	89 42 e0             	mov    %eax,-0x20(%edx)
43f9fc:	8b 45 08             	mov    0x8(%ebp),%eax
43f9ff:	80 78 a3 00          	cmpb   $0x0,-0x5d(%eax)
43fa03:	74 09                	je     0x43fa0e
43fa05:	8b 45 08             	mov    0x8(%ebp),%eax
43fa08:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
43fa0c:	75 13                	jne    0x43fa21
43fa0e:	8b 45 08             	mov    0x8(%ebp),%eax
43fa11:	8b 40 d8             	mov    -0x28(%eax),%eax
43fa14:	8b 40 14             	mov    0x14(%eax),%eax
43fa17:	ba 0d 00 00 ff       	mov    $0xff00000d,%edx
43fa1c:	e8 cf 4e fe ff       	call   0x4248f0
43fa21:	8b 45 08             	mov    0x8(%ebp),%eax
43fa24:	8d 50 e0             	lea    -0x20(%eax),%edx
43fa27:	8b 45 08             	mov    0x8(%ebp),%eax
43fa2a:	8b 40 d8             	mov    -0x28(%eax),%eax
43fa2d:	e8 62 52 fe ff       	call   0x424c94
43fa32:	8b 45 08             	mov    0x8(%ebp),%eax
43fa35:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
43fa39:	0f 84 80 00 00 00    	je     0x43fabf
43fa3f:	8b 45 08             	mov    0x8(%ebp),%eax
43fa42:	80 78 a3 00          	cmpb   $0x0,-0x5d(%eax)
43fa46:	74 77                	je     0x43fabf
43fa48:	8b 45 08             	mov    0x8(%ebp),%eax
43fa4b:	80 78 df 00          	cmpb   $0x0,-0x21(%eax)
43fa4f:	74 09                	je     0x43fa5a
43fa51:	8b 45 08             	mov    0x8(%ebp),%eax
43fa54:	80 78 de 00          	cmpb   $0x0,-0x22(%eax)
43fa58:	75 65                	jne    0x43fabf
43fa5a:	8b 45 08             	mov    0x8(%ebp),%eax
43fa5d:	80 78 d7 00          	cmpb   $0x0,-0x29(%eax)
43fa61:	74 1e                	je     0x43fa81
43fa63:	6a 0f                	push   $0xf
43fa65:	6a 02                	push   $0x2
43fa67:	8b 45 08             	mov    0x8(%ebp),%eax
43fa6a:	83 c0 e0             	add    $0xffffffe0,%eax
43fa6d:	50                   	push   %eax
43fa6e:	8b 45 08             	mov    0x8(%ebp),%eax
43fa71:	8b 40 d8             	mov    -0x28(%eax),%eax
43fa74:	e8 93 56 fe ff       	call   0x42510c
43fa79:	50                   	push   %eax
43fa7a:	e8 21 74 fc ff       	call   0x406ea0
43fa7f:	eb 25                	jmp    0x43faa6
43fa81:	8b 45 08             	mov    0x8(%ebp),%eax
43fa84:	f6 40 0c 40          	testb  $0x40,0xc(%eax)
43fa88:	74 1c                	je     0x43faa6
43fa8a:	6a 0f                	push   $0xf
43fa8c:	6a 04                	push   $0x4
43fa8e:	8b 45 08             	mov    0x8(%ebp),%eax
43fa91:	83 c0 e0             	add    $0xffffffe0,%eax
43fa94:	50                   	push   %eax
43fa95:	8b 45 08             	mov    0x8(%ebp),%eax
43fa98:	8b 40 d8             	mov    -0x28(%eax),%eax
43fa9b:	e8 6c 56 fe ff       	call   0x42510c
43faa0:	50                   	push   %eax
43faa1:	e8 fa 73 fc ff       	call   0x406ea0
43faa6:	8b 45 08             	mov    0x8(%ebp),%eax
43faa9:	80 78 d7 00          	cmpb   $0x0,-0x29(%eax)
43faad:	75 10                	jne    0x43fabf
43faaf:	6a ff                	push   $0xffffffff
43fab1:	6a 00                	push   $0x0
43fab3:	8b 45 08             	mov    0x8(%ebp),%eax
43fab6:	83 c0 e0             	add    $0xffffffe0,%eax
43fab9:	50                   	push   %eax
43faba:	e8 e9 76 fc ff       	call   0x4071a8
43fabf:	8b 45 08             	mov    0x8(%ebp),%eax
43fac2:	80 78 d7 00          	cmpb   $0x0,-0x29(%eax)
43fac6:	74 09                	je     0x43fad1
43fac8:	8b 45 08             	mov    0x8(%ebp),%eax
43facb:	80 78 c7 00          	cmpb   $0x0,-0x39(%eax)
43facf:	75 0d                	jne    0x43fade
43fad1:	8b 45 08             	mov    0x8(%ebp),%eax
43fad4:	8b 40 f8             	mov    -0x8(%eax),%eax
43fad7:	40                   	inc    %eax
43fad8:	8b 55 08             	mov    0x8(%ebp),%edx
43fadb:	89 42 e0             	mov    %eax,-0x20(%edx)
43fade:	8b 45 08             	mov    0x8(%ebp),%eax
43fae1:	83 40 e0 02          	addl   $0x2,-0x20(%eax)
43fae5:	8b 45 08             	mov    0x8(%ebp),%eax
43fae8:	ff 48 e8             	decl   -0x18(%eax)
43faeb:	8b 45 08             	mov    0x8(%ebp),%eax
43faee:	0f b6 40 cf          	movzbl -0x31(%eax),%eax
43faf2:	0f b7 04 45 fc c5 49 	movzwl 0x49c5fc(,%eax,2),%eax
43faf9:	00
43fafa:	66 83 c8 60          	or     $0x60,%ax
43fafe:	0f b7 c0             	movzwl %ax,%eax
43fb01:	8b 55 08             	mov    0x8(%ebp),%edx
43fb04:	89 42 9c             	mov    %eax,-0x64(%edx)
43fb07:	8b 45 08             	mov    0x8(%ebp),%eax
43fb0a:	80 78 9b 00          	cmpb   $0x0,-0x65(%eax)
43fb0e:	74 13                	je     0x43fb23
43fb10:	8b 45 08             	mov    0x8(%ebp),%eax
43fb13:	f6 40 0d 01          	testb  $0x1,0xd(%eax)
43fb17:	74 0a                	je     0x43fb23
43fb19:	8b 45 08             	mov    0x8(%ebp),%eax
43fb1c:	81 48 9c 00 00 10 00 	orl    $0x100000,-0x64(%eax)
43fb23:	8b 45 08             	mov    0x8(%ebp),%eax
43fb26:	8b 55 08             	mov    0x8(%ebp),%edx
43fb29:	8d 70 e0             	lea    -0x20(%eax),%esi
43fb2c:	8d 7a a4             	lea    -0x5c(%edx),%edi
43fb2f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43fb30:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43fb31:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43fb32:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43fb33:	8b 45 08             	mov    0x8(%ebp),%eax
43fb36:	f6 40 0c 20          	testb  $0x20,0xc(%eax)
43fb3a:	74 15                	je     0x43fb51
43fb3c:	8b 45 08             	mov    0x8(%ebp),%eax
43fb3f:	8b 40 d8             	mov    -0x28(%eax),%eax
43fb42:	8b 40 0c             	mov    0xc(%eax),%eax
43fb45:	0f b6 15 b4 fc 43 00 	movzbl 0x43fcb4,%edx
43fb4c:	e8 6f 48 fe ff       	call   0x4243c0
43fb51:	8b 45 08             	mov    0x8(%ebp),%eax
43fb54:	83 c0 e0             	add    $0xffffffe0,%eax
43fb57:	50                   	push   %eax
43fb58:	8b 45 08             	mov    0x8(%ebp),%eax