43f8c3:	3c 2b                	cmp    $0x2b,%al
43f8c5:	74 04                	je     0x43f8cb
43f8c7:	3c 2d                	cmp    $0x2d,%al
43f8c9:	75 07                	jne    0x43f8d2
43f8cb:	be 01 00 00 00       	mov    $0x1,%esi
43f8d0:	eb 02                	jmp    0x43f8d4
43f8d2:	33 f6                	xor    %esi,%esi
43f8d4:	8b 42 14             	mov    0x14(%edx),%eax
43f8d7:	25 00 0e 00 00       	and    $0xe00,%eax
43f8dc:	89 75 bc             	mov    %esi,-0x44(%ebp)
43f8df:	3d 00 08 00 00       	cmp    $0x800,%eax
43f8e4:	75 1e                	jne    0x43f904
43f8e6:	8d 46 02             	lea    0x2(%esi),%eax
43f8e9:	3b c3                	cmp    %ebx,%eax
43f8eb:	77 17                	ja     0x43f904
43f8ed:	80 3c 37 30          	cmpb   $0x30,(%edi,%esi,1)
43f8f1:	75 11                	jne    0x43f904
43f8f3:	8a 4c 37 01          	mov    0x1(%edi,%esi,1),%cl
43f8f7:	80 f9 78             	cmp    $0x78,%cl
43f8fa:	74 05                	je     0x43f901
43f8fc:	80 f9 58             	cmp    $0x58,%cl
43f8ff:	75 03                	jne    0x43f904
43f901:	89 45 bc             	mov    %eax,-0x44(%ebp)
43f904:	8d 45 b0             	lea    -0x50(%ebp),%eax
43f907:	8b ca                	mov    %edx,%ecx
43f909:	50                   	push   %eax
43f90a:	e8 71 ad ff ff       	call   0x43a680
43f90f:	50                   	push   %eax
43f910:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
43f917:	e8 64 1b 00 00       	call   0x441480
43f91c:	83 c4 04             	add    $0x4,%esp
43f91f:	8b f0                	mov    %eax,%esi
43f921:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
43f928:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
43f92b:	85 c9                	test   %ecx,%ecx
43f92d:	74 11                	je     0x43f940
43f92f:	8b 01                	mov    (%ecx),%eax
43f931:	ff 50 08             	call   *0x8(%eax)
43f934:	85 c0                	test   %eax,%eax
43f936:	74 08                	je     0x43f940
43f938:	8b 10                	mov    (%eax),%edx
43f93a:	8b c8                	mov    %eax,%ecx
43f93c:	6a 01                	push   $0x1
43f93e:	ff 12                	call   *(%edx)
43f940:	6a 00                	push   $0x0
43f942:	53                   	push   %ebx
43f943:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43f946:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
43f94d:	e8 2e 12 00 00       	call   0x440b80
43f952:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
43f959:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f95c:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
43f960:	8b ce                	mov    %esi,%ecx
43f962:	8b 16                	mov    (%esi),%edx
43f964:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
43f968:	50                   	push   %eax
43f969:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
43f96c:	50                   	push   %eax
43f96d:	57                   	push   %edi
43f96e:	ff 52 2c             	call   *0x2c(%edx)
43f971:	8b 4d ac             	mov    -0x54(%ebp),%ecx
43f974:	8d 45 b0             	lea    -0x50(%ebp),%eax
43f977:	50                   	push   %eax
43f978:	e8 03 ad ff ff       	call   0x43a680
43f97d:	50                   	push   %eax
43f97e:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
43f982:	e8 89 19 00 00       	call   0x441310
43f987:	83 c4 04             	add    $0x4,%esp
43f98a:	8b f0                	mov    %eax,%esi
43f98c:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
43f990:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
43f993:	85 c9                	test   %ecx,%ecx
43f995:	74 11                	je     0x43f9a8
43f997:	8b 01                	mov    (%ecx),%eax
43f999:	ff 50 08             	call   *0x8(%eax)
43f99c:	85 c0                	test   %eax,%eax
43f99e:	74 08                	je     0x43f9a8
43f9a0:	8b 10                	mov    (%eax),%edx
43f9a2:	8b c8                	mov    %eax,%ecx
43f9a4:	6a 01                	push   $0x1
43f9a6:	ff 12                	call   *(%edx)
43f9a8:	8d 45 c0             	lea    -0x40(%ebp),%eax
43f9ab:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
43f9af:	50                   	push   %eax
43f9b0:	8b ce                	mov    %esi,%ecx
43f9b2:	e8 b9 0f 00 00       	call   0x440970
43f9b7:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
43f9bb:	8d 7d c0             	lea    -0x40(%ebp),%edi
43f9be:	83 7d d4 10          	cmpl   $0x10,-0x2c(%ebp)
43f9c2:	0f 43 7d c0          	cmovae -0x40(%ebp),%edi
43f9c6:	89 7d b8             	mov    %edi,-0x48(%ebp)
43f9c9:	8a 07                	mov    (%edi),%al
43f9cb:	3c 7f                	cmp    $0x7f,%al
43f9cd:	0f 84 21 01 00 00    	je     0x43faf4
43f9d3:	84 c0                	test   %al,%al
43f9d5:	0f 8e 19 01 00 00    	jle    0x43faf4
43f9db:	8b 06                	mov    (%esi),%eax
43f9dd:	8b ce                	mov    %esi,%ecx
43f9df:	ff 50 10             	call   *0x10(%eax)
43f9e2:	0f b7 c0             	movzwl %ax,%eax
43f9e5:	89 45 b4             	mov    %eax,-0x4c(%ebp)
43f9e8:	8a 07                	mov    (%edi),%al
43f9ea:	3c 7f                	cmp    $0x7f,%al
43f9ec:	0f 84 02 01 00 00    	je     0x43faf4
43f9f2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43f9f5:	8b 75 e8             	mov    -0x18(%ebp),%esi
43f9f8:	84 c0                	test   %al,%al
43f9fa:	0f 8e fa 00 00 00    	jle    0x43fafa
43fa00:	0f be d0             	movsbl %al,%edx
43fa03:	8b c3                	mov    %ebx,%eax
43fa05:	2b 45 bc             	sub    -0x44(%ebp),%eax
43fa08:	3b d0                	cmp    %eax,%edx
43fa0a:	0f 83 ea 00 00 00    	jae    0x43fafa
43fa10:	2b da                	sub    %edx,%ebx
43fa12:	3b f3                	cmp    %ebx,%esi
43fa14:	0f 82 d4 02 00 00    	jb     0x43fcee
43fa1a:	83 c8 ff             	or     $0xffffffff,%eax
43fa1d:	2b c6                	sub    %esi,%eax
43fa1f:	83 f8 01             	cmp    $0x1,%eax
43fa22:	0f 86 c1 02 00 00    	jbe    0x43fce9
43fa28:	8d 7e 01             	lea    0x1(%esi),%edi
43fa2b:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
43fa31:	0f 87 b2 02 00 00    	ja     0x43fce9
43fa37:	3b cf                	cmp    %edi,%ecx
43fa39:	0f 83 99 00 00 00    	jae    0x43fad8
43fa3f:	56                   	push   %esi
43fa40:	57                   	push   %edi
43fa41:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43fa44:	e8 97 96 ff ff       	call   0x4390e0
43fa49:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43fa4c:	8b 75 e8             	mov    -0x18(%ebp),%esi
43fa4f:	85 ff                	test   %edi,%edi
43fa51:	74 69                	je     0x43fabc
43fa53:	8b 55 d8             	mov    -0x28(%ebp),%edx
43fa56:	8d 45 d8             	lea    -0x28(%ebp),%eax
43fa59:	83 f9 08             	cmp    $0x8,%ecx
43fa5c:	0f 43 c2             	cmovae %edx,%eax
43fa5f:	89 45 a8             	mov    %eax,-0x58(%ebp)
43fa62:	8d 45 d8             	lea    -0x28(%ebp),%eax
43fa65:	0f 43 c2             	cmovae %edx,%eax
43fa68:	89 45 a4             	mov    %eax,-0x5c(%ebp)
43fa6b:	2b f3                	sub    %ebx,%esi
43fa6d:	74 23                	je     0x43fa92
43fa6f:	8d 04 36             	lea    (%esi,%esi,1),%eax
43fa72:	50                   	push   %eax
43fa73:	8b 45 a8             	mov    -0x58(%ebp),%eax
43fa76:	8d 04 58             	lea    (%eax,%ebx,2),%eax
43fa79:	50                   	push   %eax
43fa7a:	8b 45 a4             	mov    -0x5c(%ebp),%eax
43fa7d:	8d 04 58             	lea    (%eax,%ebx,2),%eax
43fa80:	83 c0 02             	add    $0x2,%eax
43fa83:	50                   	push   %eax
43fa84:	e8 f7 39 1a 00       	call   0x5e3480
43fa89:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43fa8c:	83 c4 0c             	add    $0xc,%esp
43fa8f:	8b 55 d8             	mov    -0x28(%ebp),%edx
43fa92:	83 f9 08             	cmp    $0x8,%ecx
43fa95:	8d 45 d8             	lea    -0x28(%ebp),%eax
43fa98:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
43fa9b:	0f 43 c2             	cmovae %edx,%eax
43fa9e:	66 89 0c 58          	mov    %cx,(%eax,%ebx,2)
43faa2:	8d 45 d8             	lea    -0x28(%ebp),%eax
43faa5:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
43faa9:	89 7d e8             	mov    %edi,-0x18(%ebp)
43faac:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
43fab0:	33 c9                	xor    %ecx,%ecx
43fab2:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
43fab6:	8b 75 e8             	mov    -0x18(%ebp),%esi
43fab9:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43fabc:	8b 7d b8             	mov    -0x48(%ebp),%edi
43fabf:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
43fac3:	8d 47 01             	lea    0x1(%edi),%eax
43fac6:	0f 4f f8             	cmovg  %eax,%edi
43fac9:	89 7d b8             	mov    %edi,-0x48(%ebp)
43facc:	8a 07                	mov    (%edi),%al
43face:	3c 7f                	cmp    $0x7f,%al
43fad0:	0f 85 22 ff ff ff    	jne    0x43f9f8
43fad6:	eb 22                	jmp    0x43fafa
43fad8:	85 ff                	test   %edi,%edi
43fada:	0f 85 73 ff ff ff    	jne    0x43fa53
43fae0:	83 f9 08             	cmp    $0x8,%ecx
43fae3:	89 7d e8             	mov    %edi,-0x18(%ebp)
43fae6:	8d 45 d8             	lea    -0x28(%ebp),%eax
43fae9:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
43faed:	33 c9                	xor    %ecx,%ecx
43faef:	66 89 08             	mov    %cx,(%eax)
43faf2:	eb c2                	jmp    0x43fab6
43faf4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43faf7:	8b 75 e8             	mov    -0x18(%ebp),%esi
43fafa:	8b 45 ac             	mov    -0x54(%ebp),%eax
43fafd:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
43fb01:	8b 78 20             	mov    0x20(%eax),%edi
43fb04:	7c 0e                	jl     0x43fb14
43fb06:	7f 04                	jg     0x43fb0c
43fb08:	85 ff                	test   %edi,%edi
43fb0a:	74 08                	je     0x43fb14
43fb0c:	3b fe                	cmp    %esi,%edi
43fb0e:	76 04                	jbe    0x43fb14
43fb10:	2b fe                	sub    %esi,%edi
43fb12:	eb 02                	jmp    0x43fb16
43fb14:	33 ff                	xor    %edi,%edi
43fb16:	8b 40 14             	mov    0x14(%eax),%eax
43fb19:	8b 5d 08             	mov    0x8(%ebp),%ebx
43fb1c:	25 c0 01 00 00       	and    $0x1c0,%eax
43fb21:	83 f8 40             	cmp    $0x40,%eax
43fb24:	0f 84 88 00 00 00    	je     0x43fbb2
43fb2a:	3d 00 01 00 00       	cmp    $0x100,%eax
43fb2f:	74 41                	je     0x43fb72
43fb31:	57                   	push   %edi
43fb32:	ff 75 1c             	push   0x1c(%ebp)
43fb35:	8d 45 b0             	lea    -0x50(%ebp),%eax
43fb38:	ff 75 14             	push   0x14(%ebp)
43fb3b:	ff 75 10             	push   0x10(%ebp)
43fb3e:	50                   	push   %eax
43fb3f:	53                   	push   %ebx
43fb40:	e8 4b fc ff ff       	call   0x43f790
43fb45:	ff 75 bc             	push   -0x44(%ebp)
43fb48:	33 ff                	xor    %edi,%edi
43fb4a:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
43fb4e:	8b 10                	mov    (%eax),%edx
43fb50:	89 55 10             	mov    %edx,0x10(%ebp)
43fb53:	8b 48 04             	mov    0x4(%eax),%ecx
43fb56:	8d 45 d8             	lea    -0x28(%ebp),%eax
43fb59:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
43fb5d:	50                   	push   %eax
43fb5e:	51                   	push   %ecx
43fb5f:	52                   	push   %edx
43fb60:	8d 45 b0             	lea    -0x50(%ebp),%eax
43fb63:	89 4d 14             	mov    %ecx,0x14(%ebp)
43fb66:	50                   	push   %eax
43fb67:	53                   	push   %ebx
43fb68:	e8 93 fc ff ff       	call   0x43f800
43fb6d:	83 c4 30             	add    $0x30,%esp
43fb70:	eb 61                	jmp    0x43fbd3
43fb72:	ff 75 bc             	push   -0x44(%ebp)
43fb75:	83 f9 08             	cmp    $0x8,%ecx
43fb78:	8d 45 d8             	lea    -0x28(%ebp),%eax
43fb7b:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
43fb7f:	50                   	push   %eax
43fb80:	ff 75 14             	push   0x14(%ebp)
43fb83:	8d 45 b0             	lea    -0x50(%ebp),%eax
43fb86:	ff 75 10             	push   0x10(%ebp)
43fb89:	50                   	push   %eax
43fb8a:	53                   	push   %ebx
43fb8b:	e8 70 fc ff ff       	call   0x43f800
43fb90:	57                   	push   %edi
43fb91:	ff 75 1c             	push   0x1c(%ebp)
43fb94:	8b 08                	mov    (%eax),%ecx
43fb96:	89 4d 10             	mov    %ecx,0x10(%ebp)
43fb99:	8b 40 04             	mov    0x4(%eax),%eax
43fb9c:	50                   	push   %eax
43fb9d:	89 45 14             	mov    %eax,0x14(%ebp)
43fba0:	8d 45 b0             	lea    -0x50(%ebp),%eax
43fba3:	51                   	push   %ecx
43fba4:	50                   	push   %eax
43fba5:	53                   	push   %ebx
43fba6:	e8 e5 fb ff ff       	call   0x43f790
43fbab:	83 c4 30             	add    $0x30,%esp
43fbae:	33 ff                	xor    %edi,%edi
43fbb0:	eb 21                	jmp    0x43fbd3
43fbb2:	ff 75 bc             	push   -0x44(%ebp)
43fbb5:	83 f9 08             	cmp    $0x8,%ecx
43fbb8:	8d 45 d8             	lea    -0x28(%ebp),%eax
43fbbb:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
43fbbf:	50                   	push   %eax
43fbc0:	ff 75 14             	push   0x14(%ebp)
43fbc3:	8d 45 b0             	lea    -0x50(%ebp),%eax
43fbc6:	ff 75 10             	push   0x10(%ebp)
43fbc9:	50                   	push   %eax
43fbca:	53                   	push   %ebx
43fbcb:	e8 30 fc ff ff       	call   0x43f800
43fbd0:	83 c4 18             	add    $0x18,%esp
43fbd3:	8b 10                	mov    (%eax),%edx
43fbd5:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
43fbd9:	8b 4d bc             	mov    -0x44(%ebp),%ecx
43fbdc:	89 55 10             	mov    %edx,0x10(%ebp)
43fbdf:	8b 40 04             	mov    0x4(%eax),%eax
43fbe2:	89 45 b8             	mov    %eax,-0x48(%ebp)
43fbe5:	89 45 14             	mov    %eax,0x14(%ebp)
43fbe8:	8d 45 d8             	lea    -0x28(%ebp),%eax
43fbeb:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
43fbef:	2b f1                	sub    %ecx,%esi
43fbf1:	56                   	push   %esi
43fbf2:	8d 04 48             	lea    (%eax,%ecx,2),%eax
43fbf5:	50                   	push   %eax
43fbf6:	ff 75 b8             	push   -0x48(%ebp)
43fbf9:	8d 45 b0             	lea    -0x50(%ebp),%eax
43fbfc:	52                   	push   %edx
43fbfd:	50                   	push   %eax
43fbfe:	53                   	push   %ebx
43fbff:	e8 fc fb ff ff       	call   0x43f800
43fc04:	8b 55 ac             	mov    -0x54(%ebp),%edx
43fc07:	8b 75 a0             	mov    -0x60(%ebp),%esi
43fc0a:	57                   	push   %edi
43fc0b:	8b 08                	mov    (%eax),%ecx
43fc0d:	ff 75 1c             	push   0x1c(%ebp)
43fc10:	89 4d 10             	mov    %ecx,0x10(%ebp)
43fc13:	8b 40 04             	mov    0x4(%eax),%eax
43fc16:	50                   	push   %eax
43fc17:	51                   	push   %ecx
43fc18:	56                   	push   %esi
43fc19:	53                   	push   %ebx
43fc1a:	89 45 14             	mov    %eax,0x14(%ebp)
43fc1d:	c7 42 20 00 00 00 00 	movl   $0x0,0x20(%edx)
43fc24:	c7 42 24 00 00 00 00 	movl   $0x0,0x24(%edx)
43fc2b:	e8 60 fb ff ff       	call   0x43f790
43fc30:	8b 45 d4             	mov    -0x2c(%ebp),%eax
43fc33:	83 c4 30             	add    $0x30,%esp
43fc36:	83 f8 10             	cmp    $0x10,%eax
43fc39:	72 3a                	jb     0x43fc75
43fc3b:	8b 55 c0             	mov    -0x40(%ebp),%edx
43fc3e:	40                   	inc    %eax
43fc3f:	8b ca                	mov    %edx,%ecx
43fc41:	3d 00 10 00 00       	cmp    $0x1000,%eax
43fc46:	72 24                	jb     0x43fc6c
43fc48:	f6 c1 1f             	test   $0x1f,%cl
43fc4b:	0f 85 93 00 00 00    	jne    0x43fce4
43fc51:	8b 52 fc             	mov    -0x4(%edx),%edx
43fc54:	3b d1                	cmp    %ecx,%edx
43fc56:	0f 83 88 00 00 00    	jae    0x43fce4
43fc5c:	2b ca                	sub    %edx,%ecx
43fc5e:	83 f9 04             	cmp    $0x4,%ecx
43fc61:	0f 82 7d 00 00 00    	jb     0x43fce4
43fc67:	83 f9 23             	cmp    $0x23,%ecx
43fc6a:	77 78                	ja     0x43fce4
43fc6c:	52                   	push   %edx
43fc6d:	e8 5e 08 0b 00       	call   0x4f04d0
43fc72:	83 c4 04             	add    $0x4,%esp
43fc75:	8b 45 ec             	mov    -0x14(%ebp),%eax
43fc78:	c7 45 d4 0f 00 00 00 	movl   $0xf,-0x2c(%ebp)
43fc7f:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
43fc86:	c6 45 c0 00          	movb   $0x0,-0x40(%ebp)
43fc8a:	83 f8 08             	cmp    $0x8,%eax
43fc8d:	72 37                	jb     0x43fcc6
43fc8f:	8b 55 d8             	mov    -0x28(%ebp),%edx
43fc92:	40                   	inc    %eax
43fc93:	8b ca                	mov    %edx,%ecx
43fc95:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
43fc9a:	77 48                	ja     0x43fce4
43fc9c:	03 c0                	add    %eax,%eax
43fc9e:	3d 00 10 00 00       	cmp    $0x1000,%eax
43fca3:	72 18                	jb     0x43fcbd
43fca5:	f6 c1 1f             	test   $0x1f,%cl
43fca8:	75 3a                	jne    0x43fce4
43fcaa:	8b 52 fc             	mov    -0x4(%edx),%edx
43fcad:	3b d1                	cmp    %ecx,%edx
43fcaf:	73 33                	jae    0x43fce4
43fcb1:	2b ca                	sub    %edx,%ecx
43fcb3:	83 f9 04             	cmp    $0x4,%ecx
43fcb6:	72 2c                	jb     0x43fce4