43a9ac:	8b 45 e0             	mov    -0x20(%ebp),%eax
43a9af:	ff 75 0c             	push   0xc(%ebp)
43a9b2:	66 89 47 02          	mov    %ax,0x2(%edi)
43a9b6:	8d 47 08             	lea    0x8(%edi),%eax
43a9b9:	50                   	push   %eax
43a9ba:	ff 75 0c             	push   0xc(%ebp)
43a9bd:	ff 15 54 d0 48 00    	call   *0x48d054
43a9c3:	50                   	push   %eax
43a9c4:	ff 15 58 d0 48 00    	call   *0x48d058
43a9ca:	85 c0                	test   %eax,%eax
43a9cc:	74 6d                	je     0x43aa3b
43a9ce:	8b 4d 10             	mov    0x10(%ebp),%ecx
43a9d1:	83 c1 04             	add    $0x4,%ecx
43a9d4:	89 5d 0c             	mov    %ebx,0xc(%ebp)
43a9d7:	89 4d 10             	mov    %ecx,0x10(%ebp)
43a9da:	8a 41 fc             	mov    -0x4(%ecx),%al
43a9dd:	88 07                	mov    %al,(%edi)
43a9df:	8a 41 fd             	mov    -0x3(%ecx),%al
43a9e2:	88 47 01             	mov    %al,0x1(%edi)
43a9e5:	8b 01                	mov    (%ecx),%eax
43a9e7:	89 47 04             	mov    %eax,0x4(%edi)
43a9ea:	0f b7 47 02          	movzwl 0x2(%edi),%eax
43a9ee:	50                   	push   %eax
43a9ef:	57                   	push   %edi
43a9f0:	6a ff                	push   $0xffffffff
43a9f2:	6a 02                	push   $0x2
43a9f4:	56                   	push   %esi
43a9f5:	ff 15 7c d0 48 00    	call   *0x48d07c
43a9fb:	85 c0                	test   %eax,%eax
43a9fd:	74 3c                	je     0x43aa3b
43a9ff:	8b 45 0c             	mov    0xc(%ebp),%eax
43aa02:	8b 4d 10             	mov    0x10(%ebp),%ecx
43aa05:	40                   	inc    %eax
43aa06:	83 c1 0c             	add    $0xc,%ecx
43aa09:	89 45 0c             	mov    %eax,0xc(%ebp)
43aa0c:	89 4d 10             	mov    %ecx,0x10(%ebp)
43aa0f:	83 f8 02             	cmp    $0x2,%eax
43aa12:	72 c6                	jb     0x43a9da
43aa14:	53                   	push   %ebx
43aa15:	56                   	push   %esi
43aa16:	6a 01                	push   $0x1
43aa18:	ff 75 f8             	push   -0x8(%ebp)
43aa1b:	ff 15 78 d0 48 00    	call   *0x48d078
43aa21:	85 c0                	test   %eax,%eax
43aa23:	74 16                	je     0x43aa3b
43aa25:	ff 75 f8             	push   -0x8(%ebp)
43aa28:	8d 45 ec             	lea    -0x14(%ebp),%eax
43aa2b:	50                   	push   %eax
43aa2c:	ff 75 08             	push   0x8(%ebp)
43aa2f:	ff 15 80 d6 48 00    	call   *0x48d680
43aa35:	85 c0                	test   %eax,%eax
43aa37:	74 02                	je     0x43aa3b
43aa39:	b3 01                	mov    $0x1,%bl
43aa3b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43aa3e:	e8 e1 00 00 00       	call   0x43ab24
43aa43:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43aa46:	e8 d9 00 00 00       	call   0x43ab24
43aa4b:	8b ce                	mov    %esi,%ecx
43aa4d:	e8 d2 00 00 00       	call   0x43ab24
43aa52:	8b cf                	mov    %edi,%ecx
43aa54:	e8 cb 00 00 00       	call   0x43ab24
43aa59:	5f                   	pop    %edi
43aa5a:	5e                   	pop    %esi
43aa5b:	8a c3                	mov    %bl,%al
43aa5d:	5b                   	pop    %ebx
43aa5e:	c9                   	leave
43aa5f:	c2 10 00             	ret    $0x10
43aa62:	55                   	push   %ebp
43aa63:	8b ec                	mov    %esp,%ebp
43aa65:	8b 45 08             	mov    0x8(%ebp),%eax
43aa68:	53                   	push   %ebx
43aa69:	56                   	push   %esi
43aa6a:	8b 75 10             	mov    0x10(%ebp),%esi
43aa6d:	57                   	push   %edi
43aa6e:	56                   	push   %esi
43aa6f:	33 db                	xor    %ebx,%ebx
43aa71:	53                   	push   %ebx
43aa72:	ff 30                	push   (%eax)
43aa74:	8b f9                	mov    %ecx,%edi
43aa76:	6a 02                	push   $0x2
43aa78:	57                   	push   %edi
43aa79:	ff 15 70 d0 48 00    	call   *0x48d070
43aa7f:	85 c0                	test   %eax,%eax
43aa81:	75 36                	jne    0x43aab9
43aa83:	ff 15 10 d3 48 00    	call   *0x48d310
43aa89:	83 f8 7a             	cmp    $0x7a,%eax
43aa8c:	75 2e                	jne    0x43aabc
43aa8e:	ff 36                	push   (%esi)
43aa90:	6a 08                	push   $0x8
43aa92:	ff 15 68 d1 48 00    	call   *0x48d168
43aa98:	50                   	push   %eax
43aa99:	ff 15 64 d1 48 00    	call   *0x48d164
43aa9f:	8b 4d 08             	mov    0x8(%ebp),%ecx
43aaa2:	89 01                	mov    %eax,(%ecx)
43aaa4:	85 c0                	test   %eax,%eax
43aaa6:	74 14                	je     0x43aabc
43aaa8:	56                   	push   %esi
43aaa9:	ff 36                	push   (%esi)
43aaab:	50                   	push   %eax
43aaac:	6a 02                	push   $0x2
43aaae:	57                   	push   %edi
43aaaf:	ff 15 70 d0 48 00    	call   *0x48d070
43aab5:	85 c0                	test   %eax,%eax
43aab7:	74 03                	je     0x43aabc
43aab9:	33 db                	xor    %ebx,%ebx
43aabb:	43                   	inc    %ebx
43aabc:	5f                   	pop    %edi
43aabd:	5e                   	pop    %esi
43aabe:	8a c3                	mov    %bl,%al
43aac0:	5b                   	pop    %ebx
43aac1:	5d                   	pop    %ebp
43aac2:	c3                   	ret
43aac3:	55                   	push   %ebp
43aac4:	8b ec                	mov    %esp,%ebp
43aac6:	8b 45 08             	mov    0x8(%ebp),%eax
43aac9:	53                   	push   %ebx
43aaca:	56                   	push   %esi
43aacb:	8b 75 10             	mov    0x10(%ebp),%esi
43aace:	57                   	push   %edi
43aacf:	56                   	push   %esi
43aad0:	33 db                	xor    %ebx,%ebx
43aad2:	53                   	push   %ebx
43aad3:	ff 30                	push   (%eax)
43aad5:	8b f9                	mov    %ecx,%edi
43aad7:	6a 03                	push   $0x3
43aad9:	57                   	push   %edi
43aada:	ff 15 70 d0 48 00    	call   *0x48d070
43aae0:	85 c0                	test   %eax,%eax
43aae2:	75 36                	jne    0x43ab1a
43aae4:	ff 15 10 d3 48 00    	call   *0x48d310
43aaea:	83 f8 7a             	cmp    $0x7a,%eax
43aaed:	75 2e                	jne    0x43ab1d
43aaef:	ff 36                	push   (%esi)
43aaf1:	6a 08                	push   $0x8
43aaf3:	ff 15 68 d1 48 00    	call   *0x48d168
43aaf9:	50                   	push   %eax
43aafa:	ff 15 64 d1 48 00    	call   *0x48d164
43ab00:	8b 4d 08             	mov    0x8(%ebp),%ecx
43ab03:	89 01                	mov    %eax,(%ecx)
43ab05:	85 c0                	test   %eax,%eax
43ab07:	74 14                	je     0x43ab1d
43ab09:	56                   	push   %esi
43ab0a:	ff 36                	push   (%esi)
43ab0c:	50                   	push   %eax
43ab0d:	6a 03                	push   $0x3
43ab0f:	57                   	push   %edi
43ab10:	ff 15 70 d0 48 00    	call   *0x48d070
43ab16:	85 c0                	test   %eax,%eax
43ab18:	74 03                	je     0x43ab1d
43ab1a:	33 db                	xor    %ebx,%ebx
43ab1c:	43                   	inc    %ebx
43ab1d:	5f                   	pop    %edi
43ab1e:	5e                   	pop    %esi
43ab1f:	8a c3                	mov    %bl,%al
43ab21:	5b                   	pop    %ebx
43ab22:	5d                   	pop    %ebp
43ab23:	c3                   	ret
43ab24:	85 c9                	test   %ecx,%ecx
43ab26:	74 10                	je     0x43ab38
43ab28:	51                   	push   %ecx
43ab29:	6a 00                	push   $0x0
43ab2b:	ff 15 68 d1 48 00    	call   *0x48d168
43ab31:	50                   	push   %eax
43ab32:	ff 15 6c d1 48 00    	call   *0x48d16c
43ab38:	c3                   	ret
43ab39:	53                   	push   %ebx
43ab3a:	56                   	push   %esi
43ab3b:	57                   	push   %edi
43ab3c:	8b f9                	mov    %ecx,%edi
43ab3e:	6a 04                	push   $0x4
43ab40:	5b                   	pop    %ebx
43ab41:	33 f6                	xor    %esi,%esi
43ab43:	89 5f 04             	mov    %ebx,0x4(%edi)
43ab46:	89 77 08             	mov    %esi,0x8(%edi)
43ab49:	e8 7f 05 00 00       	call   0x43b0cd
43ab4e:	8b 47 04             	mov    0x4(%edi),%eax
43ab51:	33 c9                	xor    %ecx,%ecx
43ab53:	f7 e3                	mul    %ebx
43ab55:	0f 90 c1             	seto   %cl
43ab58:	f7 d9                	neg    %ecx
43ab5a:	0b c8                	or     %eax,%ecx
43ab5c:	51                   	push   %ecx
43ab5d:	e8 88 49 fe ff       	call   0x41f4ea
43ab62:	59                   	pop    %ecx
43ab63:	89 07                	mov    %eax,(%edi)
43ab65:	39 77 04             	cmp    %esi,0x4(%edi)
43ab68:	76 12                	jbe    0x43ab7c
43ab6a:	8b 0f                	mov    (%edi),%ecx
43ab6c:	8b 04 b5 d0 f7 4b 00 	mov    0x4bf7d0(,%esi,4),%eax
43ab73:	89 04 b1             	mov    %eax,(%ecx,%esi,4)
43ab76:	46                   	inc    %esi
43ab77:	3b 77 04             	cmp    0x4(%edi),%esi
43ab7a:	72 ee                	jb     0x43ab6a
43ab7c:	8b c7                	mov    %edi,%eax
43ab7e:	5f                   	pop    %edi
43ab7f:	5e                   	pop    %esi
43ab80:	5b                   	pop    %ebx
43ab81:	c2 08 00             	ret    $0x8
43ab84:	56                   	push   %esi
43ab85:	8b f1                	mov    %ecx,%esi
43ab87:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
43ab8b:	74 1b                	je     0x43aba8
43ab8d:	33 c0                	xor    %eax,%eax
43ab8f:	50                   	push   %eax
43ab90:	50                   	push   %eax
43ab91:	50                   	push   %eax
43ab92:	ff 76 08             	push   0x8(%esi)
43ab95:	50                   	push   %eax
43ab96:	ff 76 0c             	push   0xc(%esi)
43ab99:	ff 15 38 d0 48 00    	call   *0x48d038
43ab9f:	ff 76 08             	push   0x8(%esi)
43aba2:	e8 b7 49 fe ff       	call   0x41f55e
43aba7:	59                   	pop    %ecx
43aba8:	ff 76 0c             	push   0xc(%esi)
43abab:	ff 15 0c d3 48 00    	call   *0x48d30c
43abb1:	ff 36                	push   (%esi)
43abb3:	e8 a6 49 fe ff       	call   0x41f55e
43abb8:	59                   	pop    %ecx
43abb9:	5e                   	pop    %esi
43abba:	c3                   	ret
43abbb:	55                   	push   %ebp
43abbc:	8b ec                	mov    %esp,%ebp
43abbe:	51                   	push   %ecx
43abbf:	53                   	push   %ebx
43abc0:	56                   	push   %esi
43abc1:	8b 75 10             	mov    0x10(%ebp),%esi
43abc4:	57                   	push   %edi
43abc5:	56                   	push   %esi
43abc6:	8b c1                	mov    %ecx,%eax
43abc8:	8b 4d 08             	mov    0x8(%ebp),%ecx
43abcb:	33 db                	xor    %ebx,%ebx
43abcd:	53                   	push   %ebx
43abce:	ff 31                	push   (%ecx)
43abd0:	8b fa                	mov    %edx,%edi
43abd2:	57                   	push   %edi
43abd3:	50                   	push   %eax
43abd4:	89 45 fc             	mov    %eax,-0x4(%ebp)
43abd7:	ff 15 9c d6 48 00    	call   *0x48d69c
43abdd:	85 c0                	test   %eax,%eax
43abdf:	75 37                	jne    0x43ac18
43abe1:	ff 15 10 d3 48 00    	call   *0x48d310
43abe7:	83 f8 7a             	cmp    $0x7a,%eax
43abea:	75 2f                	jne    0x43ac1b
43abec:	ff 36                	push   (%esi)
43abee:	6a 08                	push   $0x8
43abf0:	ff 15 68 d1 48 00    	call   *0x48d168
43abf6:	50                   	push   %eax
43abf7:	ff 15 64 d1 48 00    	call   *0x48d164
43abfd:	8b 4d 08             	mov    0x8(%ebp),%ecx
43ac00:	89 01                	mov    %eax,(%ecx)
43ac02:	85 c0                	test   %eax,%eax
43ac04:	74 15                	je     0x43ac1b
43ac06:	56                   	push   %esi
43ac07:	ff 36                	push   (%esi)
43ac09:	50                   	push   %eax
43ac0a:	57                   	push   %edi
43ac0b:	ff 75 fc             	push   -0x4(%ebp)
43ac0e:	ff 15 9c d6 48 00    	call   *0x48d69c
43ac14:	85 c0                	test   %eax,%eax
43ac16:	74 03                	je     0x43ac1b
43ac18:	33 db                	xor    %ebx,%ebx
43ac1a:	43                   	inc    %ebx
43ac1b:	5f                   	pop    %edi
43ac1c:	5e                   	pop    %esi
43ac1d:	8a c3                	mov    %bl,%al
43ac1f:	5b                   	pop    %ebx
43ac20:	c9                   	leave
43ac21:	c3                   	ret
43ac22:	56                   	push   %esi
43ac23:	57                   	push   %edi
43ac24:	8b fa                	mov    %edx,%edi
43ac26:	57                   	push   %edi
43ac27:	6a 08                	push   $0x8
43ac29:	8b f1                	mov    %ecx,%esi
43ac2b:	ff 15 68 d1 48 00    	call   *0x48d168
43ac31:	50                   	push   %eax
43ac32:	ff 15 64 d1 48 00    	call   *0x48d164
43ac38:	89 06                	mov    %eax,(%esi)
43ac3a:	85 c0                	test   %eax,%eax
43ac3c:	74 13                	je     0x43ac51
43ac3e:	6a 02                	push   $0x2
43ac40:	57                   	push   %edi
43ac41:	50                   	push   %eax
43ac42:	ff 15 34 d0 48 00    	call   *0x48d034
43ac48:	85 c0                	test   %eax,%eax
43ac4a:	74 05                	je     0x43ac51
43ac4c:	33 c0                	xor    %eax,%eax
43ac4e:	40                   	inc    %eax
43ac4f:	eb 02                	jmp    0x43ac53
43ac51:	33 c0                	xor    %eax,%eax
43ac53:	5f                   	pop    %edi
43ac54:	5e                   	pop    %esi
43ac55:	c3                   	ret
43ac56:	55                   	push   %ebp
43ac57:	8b ec                	mov    %esp,%ebp
43ac59:	53                   	push   %ebx
43ac5a:	56                   	push   %esi
43ac5b:	ff 75 08             	push   0x8(%ebp)
43ac5e:	8b f1                	mov    %ecx,%esi
43ac60:	6a 08                	push   $0x8
43ac62:	ff 15 68 d1 48 00    	call   *0x48d168
43ac68:	50                   	push   %eax
43ac69:	ff 15 64 d1 48 00    	call   *0x48d164
43ac6f:	89 06                	mov    %eax,(%esi)
43ac71:	85 c0                	test   %eax,%eax
43ac73:	74 0f                	je     0x43ac84
43ac75:	33 db                	xor    %ebx,%ebx
43ac77:	43                   	inc    %ebx
43ac78:	53                   	push   %ebx
43ac79:	50                   	push   %eax
43ac7a:	ff 15 30 d0 48 00    	call   *0x48d030
43ac80:	85 c0                	test   %eax,%eax
43ac82:	75 02                	jne    0x43ac86
43ac84:	33 db                	xor    %ebx,%ebx
43ac86:	5e                   	pop    %esi
43ac87:	8a c3                	mov    %bl,%al
43ac89:	5b                   	pop    %ebx
43ac8a:	5d                   	pop    %ebp
43ac8b:	c3                   	ret
43ac8c:	55                   	push   %ebp
43ac8d:	8b ec                	mov    %esp,%ebp
43ac8f:	83 ec 14             	sub    $0x14,%esp
43ac92:	53                   	push   %ebx
43ac93:	51                   	push   %ecx
43ac94:	51                   	push   %ecx
43ac95:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43ac98:	e8 9c fe ff ff       	call   0x43ab39
43ac9d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43aca0:	e8 7b 03 00 00       	call   0x43b020
43aca5:	84 c0                	test   %al,%al
43aca7:	74 0d                	je     0x43acb6
43aca9:	e8 4c c5 00 00       	call   0x4471fa
43acae:	84 c0                	test   %al,%al
43acb0:	74 04                	je     0x43acb6
43acb2:	b3 01                	mov    $0x1,%bl
43acb4:	eb 02                	jmp    0x43acb8
43acb6:	32 db                	xor    %bl,%bl
43acb8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43acbb:	e8 c4 fe ff ff       	call   0x43ab84
43acc0:	8a c3                	mov    %bl,%al
43acc2:	5b                   	pop    %ebx
43acc3:	c9                   	leave
43acc4:	c3                   	ret
43acc5:	55                   	push   %ebp
43acc6:	8b ec                	mov    %esp,%ebp
43acc8:	83 ec 5c             	sub    $0x5c,%esp
43accb:	53                   	push   %ebx
43accc:	56                   	push   %esi
43accd:	57                   	push   %edi
43acce:	51                   	push   %ecx