43982c:	8b 45 08             	mov    0x8(%ebp),%eax
43982f:	83 78 08 0c          	cmpl   $0xc,0x8(%eax)
439833:	75 18                	jne    0x43984d
439835:	6a 16                	push   $0x16
439837:	5a                   	pop    %edx
439838:	66 89 11             	mov    %dx,(%ecx)
43983b:	8b 40 0c             	mov    0xc(%eax),%eax
43983e:	8b 40 0c             	mov    0xc(%eax),%eax
439841:	48                   	dec    %eax
439842:	c1 e8 02             	shr    $0x2,%eax
439845:	40                   	inc    %eax
439846:	89 41 08             	mov    %eax,0x8(%ecx)
439849:	33 c0                	xor    %eax,%eax
43984b:	eb 05                	jmp    0x439852
43984d:	b8 01 40 00 80       	mov    $0x80004001,%eax
439852:	5d                   	pop    %ebp
439853:	c2 10 00             	ret    $0x10
439856:	55                   	push   %ebp
439857:	8b ec                	mov    %esp,%ebp
439859:	56                   	push   %esi
43985a:	8b 75 14             	mov    0x14(%ebp),%esi
43985d:	85 f6                	test   %esi,%esi
43985f:	74 51                	je     0x4398b2
439861:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
439865:	75 4b                	jne    0x4398b2
439867:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
43986b:	75 45                	jne    0x4398b2
43986d:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
439871:	75 3f                	jne    0x4398b2
439873:	8b 4d 08             	mov    0x8(%ebp),%ecx
439876:	b8 00 80 00 00       	mov    $0x8000,%eax
43987b:	66 89 06             	mov    %ax,(%esi)
43987e:	66 0b 41 08          	or     0x8(%ecx),%ax
439882:	66 89 06             	mov    %ax,(%esi)
439885:	8b 41 08             	mov    0x8(%ecx),%eax
439888:	83 e8 0c             	sub    $0xc,%eax
43988b:	74 1b                	je     0x4398a8
43988d:	48                   	dec    %eax
43988e:	74 13                	je     0x4398a3
439890:	48                   	dec    %eax
439891:	74 05                	je     0x439898
439893:	8b 41 10             	mov    0x10(%ecx),%eax
439896:	eb 13                	jmp    0x4398ab
439898:	ff 71 18             	push   0x18(%ecx)
43989b:	ff 15 2c d4 48 00    	call   *0x48d42c
4398a1:	eb 08                	jmp    0x4398ab
4398a3:	8b 41 14             	mov    0x14(%ecx),%eax
4398a6:	eb 03                	jmp    0x4398ab
4398a8:	8b 41 0c             	mov    0xc(%ecx),%eax
4398ab:	89 46 08             	mov    %eax,0x8(%esi)
4398ae:	33 c0                	xor    %eax,%eax
4398b0:	eb 05                	jmp    0x4398b7
4398b2:	b8 57 00 07 80       	mov    $0x80070057,%eax
4398b7:	5e                   	pop    %esi
4398b8:	5d                   	pop    %ebp
4398b9:	c2 14 00             	ret    $0x14
4398bc:	55                   	push   %ebp
4398bd:	8b ec                	mov    %esp,%ebp
4398bf:	8b 45 0c             	mov    0xc(%ebp),%eax
4398c2:	85 c0                	test   %eax,%eax
4398c4:	74 07                	je     0x4398cd
4398c6:	83 20 00             	andl   $0x0,(%eax)
4398c9:	33 c0                	xor    %eax,%eax
4398cb:	eb 05                	jmp    0x4398d2
4398cd:	b8 57 00 07 80       	mov    $0x80070057,%eax
4398d2:	5d                   	pop    %ebp
4398d3:	c2 08 00             	ret    $0x8
4398d6:	b8 01 40 00 80       	mov    $0x80004001,%eax
4398db:	c2 14 00             	ret    $0x14
4398de:	55                   	push   %ebp
4398df:	8b ec                	mov    %esp,%ebp
4398e1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4398e4:	ba fc d8 48 00       	mov    $0x48d8fc,%edx
4398e9:	e8 62 00 00 00       	call   0x439950
4398ee:	85 c0                	test   %eax,%eax
4398f0:	75 18                	jne    0x43990a
4398f2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4398f5:	ba 2c d9 48 00       	mov    $0x48d92c,%edx
4398fa:	e8 51 00 00 00       	call   0x439950
4398ff:	85 c0                	test   %eax,%eax
439901:	75 07                	jne    0x43990a
439903:	b8 02 40 00 80       	mov    $0x80004002,%eax
439908:	eb 12                	jmp    0x43991c
43990a:	56                   	push   %esi
43990b:	8b 75 08             	mov    0x8(%ebp),%esi
43990e:	56                   	push   %esi
43990f:	8b 06                	mov    (%esi),%eax
439911:	ff 50 04             	call   *0x4(%eax)
439914:	8b 45 10             	mov    0x10(%ebp),%eax
439917:	89 30                	mov    %esi,(%eax)
439919:	33 c0                	xor    %eax,%eax
43991b:	5e                   	pop    %esi
43991c:	5d                   	pop    %ebp
43991d:	c2 0c 00             	ret    $0xc
439920:	b8 01 40 00 80       	mov    $0x80004001,%eax
439925:	c2 08 00             	ret    $0x8
439928:	55                   	push   %ebp
439929:	8b ec                	mov    %esp,%ebp
43992b:	56                   	push   %esi
43992c:	8b 75 08             	mov    0x8(%ebp),%esi
43992f:	8d 46 04             	lea    0x4(%esi),%eax
439932:	50                   	push   %eax
439933:	ff 15 30 d3 48 00    	call   *0x48d330
439939:	85 c0                	test   %eax,%eax
43993b:	75 0e                	jne    0x43994b
43993d:	85 f6                	test   %esi,%esi
43993f:	74 08                	je     0x439949
439941:	51                   	push   %ecx
439942:	8b ce                	mov    %esi,%ecx
439944:	e8 8f fe ff ff       	call   0x4397d8
439949:	33 c0                	xor    %eax,%eax
43994b:	5e                   	pop    %esi
43994c:	5d                   	pop    %ebp
43994d:	c2 04 00             	ret    $0x4
439950:	6a 10                	push   $0x10
439952:	52                   	push   %edx
439953:	51                   	push   %ecx
439954:	e8 0a 5c fe ff       	call   0x41f563
439959:	83 c4 0c             	add    $0xc,%esp
43995c:	f7 d8                	neg    %eax
43995e:	1b c0                	sbb    %eax,%eax
439960:	40                   	inc    %eax
439961:	c3                   	ret
439962:	55                   	push   %ebp
439963:	8b ec                	mov    %esp,%ebp
439965:	8b 55 08             	mov    0x8(%ebp),%edx
439968:	56                   	push   %esi
439969:	8b f1                	mov    %ecx,%esi
43996b:	89 16                	mov    %edx,(%esi)
43996d:	85 d2                	test   %edx,%edx
43996f:	74 06                	je     0x439977
439971:	8b 02                	mov    (%edx),%eax
439973:	52                   	push   %edx
439974:	ff 50 04             	call   *0x4(%eax)
439977:	8b c6                	mov    %esi,%eax
439979:	5e                   	pop    %esi
43997a:	5d                   	pop    %ebp
43997b:	c2 04 00             	ret    $0x4
43997e:	e9 00 00 00 00       	jmp    0x439983
439983:	8b 09                	mov    (%ecx),%ecx
439985:	85 c9                	test   %ecx,%ecx
439987:	74 06                	je     0x43998f
439989:	8b 01                	mov    (%ecx),%eax
43998b:	51                   	push   %ecx
43998c:	ff 50 08             	call   *0x8(%eax)
43998f:	c3                   	ret
439990:	55                   	push   %ebp
439991:	8b ec                	mov    %esp,%ebp
439993:	8b 45 08             	mov    0x8(%ebp),%eax
439996:	56                   	push   %esi
439997:	57                   	push   %edi
439998:	8b 38                	mov    (%eax),%edi
43999a:	57                   	push   %edi
43999b:	8b f1                	mov    %ecx,%esi
43999d:	e8 38 00 00 00       	call   0x4399da
4399a2:	84 c0                	test   %al,%al
4399a4:	74 1b                	je     0x4399c1
4399a6:	57                   	push   %edi
4399a7:	8d 4d 08             	lea    0x8(%ebp),%ecx
4399aa:	e8 b3 ff ff ff       	call   0x439962
4399af:	8b 4d 08             	mov    0x8(%ebp),%ecx
4399b2:	8b 06                	mov    (%esi),%eax
4399b4:	89 0e                	mov    %ecx,(%esi)
4399b6:	8d 4d 08             	lea    0x8(%ebp),%ecx
4399b9:	89 45 08             	mov    %eax,0x8(%ebp)
4399bc:	e8 c2 ff ff ff       	call   0x439983
4399c1:	8b 06                	mov    (%esi),%eax
4399c3:	5f                   	pop    %edi
4399c4:	5e                   	pop    %esi
4399c5:	5d                   	pop    %ebp
4399c6:	c2 04 00             	ret    $0x4
4399c9:	55                   	push   %ebp
4399ca:	8b ec                	mov    %esp,%ebp
4399cc:	8b 09                	mov    (%ecx),%ecx
4399ce:	33 c0                	xor    %eax,%eax
4399d0:	3b 4d 08             	cmp    0x8(%ebp),%ecx
4399d3:	0f 94 c0             	sete   %al
4399d6:	5d                   	pop    %ebp
4399d7:	c2 04 00             	ret    $0x4
4399da:	55                   	push   %ebp
4399db:	8b ec                	mov    %esp,%ebp
4399dd:	ff 75 08             	push   0x8(%ebp)
4399e0:	e8 e4 ff ff ff       	call   0x4399c9
4399e5:	33 c9                	xor    %ecx,%ecx
4399e7:	84 c0                	test   %al,%al
4399e9:	0f 94 c1             	sete   %cl
4399ec:	8a c1                	mov    %cl,%al
4399ee:	5d                   	pop    %ebp
4399ef:	c2 04 00             	ret    $0x4
4399f2:	55                   	push   %ebp
4399f3:	8b ec                	mov    %esp,%ebp
4399f5:	51                   	push   %ecx
4399f6:	51                   	push   %ecx
4399f7:	85 c9                	test   %ecx,%ecx
4399f9:	75 0a                	jne    0x439a05
4399fb:	b9 57 00 07 80       	mov    $0x80070057,%ecx
439a00:	e8 9e 00 00 00       	call   0x439aa3
439a05:	8b 01                	mov    (%ecx),%eax
439a07:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
439a0b:	56                   	push   %esi
439a0c:	57                   	push   %edi
439a0d:	6a 1d                	push   $0x1d
439a0f:	5e                   	pop    %esi
439a10:	8d 7d fc             	lea    -0x4(%ebp),%edi
439a13:	57                   	push   %edi
439a14:	52                   	push   %edx
439a15:	51                   	push   %ecx
439a16:	ff 50 38             	call   *0x38(%eax)
439a19:	85 c0                	test   %eax,%eax
439a1b:	79 09                	jns    0x439a26
439a1d:	8b cf                	mov    %edi,%ecx
439a1f:	e8 5a ff ff ff       	call   0x43997e
439a24:	eb 76                	jmp    0x439a9c
439a26:	8b 45 fc             	mov    -0x4(%ebp),%eax
439a29:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
439a2d:	8b 08                	mov    (%eax),%ecx
439a2f:	8d 55 f8             	lea    -0x8(%ebp),%edx
439a32:	52                   	push   %edx
439a33:	50                   	push   %eax
439a34:	ff 51 0c             	call   *0xc(%ecx)
439a37:	8b 7d f8             	mov    -0x8(%ebp),%edi
439a3a:	85 c0                	test   %eax,%eax
439a3c:	78 48                	js     0x439a86
439a3e:	85 ff                	test   %edi,%edi
439a40:	74 52                	je     0x439a94
439a42:	8b 47 28             	mov    0x28(%edi),%eax
439a45:	83 f8 06             	cmp    $0x6,%eax
439a48:	74 04                	je     0x439a4e
439a4a:	85 c0                	test   %eax,%eax
439a4c:	75 38                	jne    0x439a86
439a4e:	0f b7 4f 40          	movzwl 0x40(%edi),%ecx
439a52:	66 3b ce             	cmp    %si,%cx
439a55:	75 13                	jne    0x439a6a
439a57:	8b 57 3c             	mov    0x3c(%edi),%edx
439a5a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
439a5d:	e8 90 ff ff ff       	call   0x4399f2
439a62:	8b 7d f8             	mov    -0x8(%ebp),%edi
439a65:	0f b7 f0             	movzwl %ax,%esi
439a68:	eb 1c                	jmp    0x439a86
439a6a:	83 e8 00             	sub    $0x0,%eax
439a6d:	74 14                	je     0x439a83
439a6f:	83 e8 03             	sub    $0x3,%eax
439a72:	74 0b                	je     0x439a7f
439a74:	48                   	dec    %eax
439a75:	74 04                	je     0x439a7b
439a77:	8b f1                	mov    %ecx,%esi
439a79:	eb 0b                	jmp    0x439a86
439a7b:	6a 09                	push   $0x9
439a7d:	eb 06                	jmp    0x439a85
439a7f:	6a 0d                	push   $0xd
439a81:	eb 02                	jmp    0x439a85
439a83:	6a 03                	push   $0x3
439a85:	5e                   	pop    %esi
439a86:	85 ff                	test   %edi,%edi
439a88:	74 0a                	je     0x439a94
439a8a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
439a8d:	57                   	push   %edi
439a8e:	8b 11                	mov    (%ecx),%edx
439a90:	51                   	push   %ecx
439a91:	ff 52 4c             	call   *0x4c(%edx)
439a94:	8d 4d fc             	lea    -0x4(%ebp),%ecx
439a97:	e8 e7 fe ff ff       	call   0x439983
439a9c:	5f                   	pop    %edi
439a9d:	66 8b c6             	mov    %si,%ax
439aa0:	5e                   	pop    %esi
439aa1:	c9                   	leave
439aa2:	c3                   	ret
439aa3:	33 c0                	xor    %eax,%eax
439aa5:	81 f9 0e 00 07 80    	cmp    $0x8007000e,%ecx
439aab:	0f 94 c0             	sete   %al
439aae:	8d 48 ff             	lea    -0x1(%eax),%ecx
439ab1:	83 e1 06             	and    $0x6,%ecx
439ab4:	81 c1 17 00 00 c0    	add    $0xc0000017,%ecx
439aba:	e9 74 0a 00 00       	jmp    0x43a533
439abf:	55                   	push   %ebp
439ac0:	8b ec                	mov    %esp,%ebp
439ac2:	51                   	push   %ecx
439ac3:	53                   	push   %ebx
439ac4:	56                   	push   %esi
439ac5:	8b 75 08             	mov    0x8(%ebp),%esi
439ac8:	8b c2                	mov    %edx,%eax
439aca:	57                   	push   %edi
439acb:	89 45 fc             	mov    %eax,-0x4(%ebp)
439ace:	8b d9                	mov    %ecx,%ebx
439ad0:	85 f6                	test   %esi,%esi
439ad2:	74 06                	je     0x439ada
439ad4:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
439ada:	50                   	push   %eax
439adb:	53                   	push   %ebx
439adc:	ff 15 1c d8 48 00    	call   *0x48d81c
439ae2:	8b f8                	mov    %eax,%edi
439ae4:	85 ff                	test   %edi,%edi
439ae6:	78 35                	js     0x439b1d
439ae8:	85 f6                	test   %esi,%esi
439aea:	74 3d                	je     0x439b29
439aec:	83 65 08 00          	andl   $0x0,0x8(%ebp)
439af0:	8d 45 08             	lea    0x8(%ebp),%eax
439af3:	50                   	push   %eax
439af4:	ff 75 fc             	push   -0x4(%ebp)
439af7:	ff 15 18 d8 48 00    	call   *0x48d818
439afd:	85 c0                	test   %eax,%eax
439aff:	78 28                	js     0x439b29
439b01:	ff 75 08             	push   0x8(%ebp)
439b04:	53                   	push   %ebx
439b05:	ff 15 24 d3 48 00    	call   *0x48d324
439b0b:	85 c0                	test   %eax,%eax
439b0d:	74 03                	je     0x439b12
439b0f:	83 26 00             	andl   $0x0,(%esi)
439b12:	ff 75 08             	push   0x8(%ebp)
439b15:	ff 15 10 d8 48 00    	call   *0x48d810
439b1b:	eb 0c                	jmp    0x439b29
439b1d:	ff 75 fc             	push   -0x4(%ebp)
439b20:	53                   	push   %ebx
439b21:	ff 15 14 d8 48 00    	call   *0x48d814
439b27:	8b f8                	mov    %eax,%edi
439b29:	8b c7                	mov    %edi,%eax
439b2b:	5f                   	pop    %edi
439b2c:	5e                   	pop    %esi
439b2d:	5b                   	pop    %ebx
439b2e:	c9                   	leave
439b2f:	c3                   	ret
439b30:	55                   	push   %ebp
439b31:	8b ec                	mov    %esp,%ebp
439b33:	83 ec 18             	sub    $0x18,%esp
439b36:	53                   	push   %ebx
439b37:	8b 5d 10             	mov    0x10(%ebp),%ebx
439b3a:	56                   	push   %esi
439b3b:	57                   	push   %edi
439b3c:	8b fa                	mov    %edx,%edi
439b3e:	8d 55 fc             	lea    -0x4(%ebp),%edx
439b41:	52                   	push   %edx
439b42:	33 f6                	xor    %esi,%esi
439b44:	33 c0                	xor    %eax,%eax
439b46:	68 00 08 00 00       	push   $0x800
439b4b:	89 43 0c             	mov    %eax,0xc(%ebx)
439b4e:	8b 01                	mov    (%ecx),%eax
439b50:	56                   	push   %esi
439b51:	51                   	push   %ecx
439b52:	89 33                	mov    %esi,(%ebx)
439b54:	89 75 fc             	mov    %esi,-0x4(%ebp)
439b57:	ff 50 10             	call   *0x10(%eax)
439b5a:	8b f0                	mov    %eax,%esi
439b5c:	85 f6                	test   %esi,%esi
439b5e:	0f 88 e8 02 00 00    	js     0x439e4c
439b64:	6a 00                	push   $0x0
439b66:	8d 4d fc             	lea    -0x4(%ebp),%ecx
439b69:	e8 5b fe ff ff       	call   0x4399c9
439b6e:	84 c0                	test   %al,%al
439b70:	74 0a                	je     0x439b7c
439b72:	be 01 40 00 80       	mov    $0x80004001,%esi