43e8b4:	3b ce                	cmp    %esi,%ecx
43e8b6:	75 07                	jne    0x43e8bf
43e8b8:	33 c0                	xor    %eax,%eax
43e8ba:	e9 86 00 00 00       	jmp    0x43e945
43e8bf:	7e 45                	jle    0x43e906
43e8c1:	6a e0                	push   $0xffffffe0
43e8c3:	33 d2                	xor    %edx,%edx
43e8c5:	58                   	pop    %eax
43e8c6:	f7 f1                	div    %ecx
43e8c8:	83 f8 02             	cmp    $0x2,%eax
43e8cb:	72 39                	jb     0x43e906
43e8cd:	8d 44 09 08          	lea    0x8(%ecx,%ecx,1),%eax
43e8d1:	3d 00 04 00 00       	cmp    $0x400,%eax
43e8d6:	77 16                	ja     0x43e8ee
43e8d8:	e8 53 91 00 00       	call   0x447a30
43e8dd:	8b dc                	mov    %esp,%ebx
43e8df:	3b de                	cmp    %esi,%ebx
43e8e1:	74 d5                	je     0x43e8b8
43e8e3:	c7 03 cc cc 00 00    	movl   $0xcccc,(%ebx)
43e8e9:	83 c3 08             	add    $0x8,%ebx
43e8ec:	eb 1a                	jmp    0x43e908
43e8ee:	50                   	push   %eax
43e8ef:	e8 22 21 ff ff       	call   0x430a16
43e8f4:	59                   	pop    %ecx
43e8f5:	3b c6                	cmp    %esi,%eax
43e8f7:	74 09                	je     0x43e902
43e8f9:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
43e8ff:	83 c0 08             	add    $0x8,%eax
43e902:	8b d8                	mov    %eax,%ebx
43e904:	eb 02                	jmp    0x43e908
43e906:	33 db                	xor    %ebx,%ebx
43e908:	3b de                	cmp    %esi,%ebx
43e90a:	74 ac                	je     0x43e8b8
43e90c:	ff 75 f4             	push   -0xc(%ebp)
43e90f:	53                   	push   %ebx
43e910:	ff 75 10             	push   0x10(%ebp)
43e913:	ff 75 0c             	push   0xc(%ebp)
43e916:	ff d7                	call   *%edi
43e918:	85 c0                	test   %eax,%eax
43e91a:	74 20                	je     0x43e93c
43e91c:	56                   	push   %esi
43e91d:	56                   	push   %esi
43e91e:	39 75 18             	cmp    %esi,0x18(%ebp)
43e921:	75 04                	jne    0x43e927
43e923:	56                   	push   %esi
43e924:	56                   	push   %esi
43e925:	eb 06                	jmp    0x43e92d
43e927:	ff 75 18             	push   0x18(%ebp)
43e92a:	ff 75 14             	push   0x14(%ebp)
43e92d:	6a ff                	push   $0xffffffff
43e92f:	53                   	push   %ebx
43e930:	56                   	push   %esi
43e931:	ff 75 f8             	push   -0x8(%ebp)
43e934:	ff 15 68 35 47 00    	call   *0x473568
43e93a:	8b f0                	mov    %eax,%esi
43e93c:	53                   	push   %ebx
43e93d:	e8 1b ff ff ff       	call   0x43e85d
43e942:	59                   	pop    %ecx
43e943:	8b c6                	mov    %esi,%eax
43e945:	8d 65 e8             	lea    -0x18(%ebp),%esp
43e948:	5f                   	pop    %edi
43e949:	5e                   	pop    %esi
43e94a:	5b                   	pop    %ebx
43e94b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43e94e:	33 cd                	xor    %ebp,%ecx
43e950:	e8 3c 00 00 00       	call   0x43e991
43e955:	c9                   	leave
43e956:	c3                   	ret
43e957:	8b ff                	mov    %edi,%edi
43e959:	55                   	push   %ebp
43e95a:	8b ec                	mov    %esp,%ebp
43e95c:	83 ec 10             	sub    $0x10,%esp
43e95f:	ff 75 08             	push   0x8(%ebp)
43e962:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43e965:	e8 80 22 ff ff       	call   0x430bea
43e96a:	ff 75 18             	push   0x18(%ebp)
43e96d:	8d 45 f0             	lea    -0x10(%ebp),%eax
43e970:	ff 75 14             	push   0x14(%ebp)
43e973:	ff 75 10             	push   0x10(%ebp)
43e976:	ff 75 0c             	push   0xc(%ebp)
43e979:	50                   	push   %eax
43e97a:	e8 fe fe ff ff       	call   0x43e87d
43e97f:	83 c4 14             	add    $0x14,%esp
43e982:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
43e986:	74 07                	je     0x43e98f
43e988:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43e98b:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
43e98f:	c9                   	leave
43e990:	c3                   	ret
43e991:	3b 0d a8 f6 46 00    	cmp    0x46f6a8,%ecx
43e997:	75 02                	jne    0x43e99b
43e999:	f3 c3                	repz ret
43e99b:	e9 bc 90 00 00       	jmp    0x447a5c
43e9a0:	83 25 00 17 47 00 00 	andl   $0x0,0x471700
43e9a7:	c3                   	ret
43e9a8:	8b ff                	mov    %edi,%edi
43e9aa:	55                   	push   %ebp
43e9ab:	8b ec                	mov    %esp,%ebp
43e9ad:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
43e9b1:	75 15                	jne    0x43e9c8
43e9b3:	e8 f0 5f ff ff       	call   0x4349a8
43e9b8:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43e9be:	e8 ab 59 ff ff       	call   0x43436e
43e9c3:	83 c8 ff             	or     $0xffffffff,%eax
43e9c6:	5d                   	pop    %ebp
43e9c7:	c3                   	ret
43e9c8:	ff 75 08             	push   0x8(%ebp)
43e9cb:	6a 00                	push   $0x0
43e9cd:	ff 35 a0 10 47 00    	push   0x4710a0
43e9d3:	ff 15 b4 35 47 00    	call   *0x4735b4
43e9d9:	5d                   	pop    %ebp
43e9da:	c3                   	ret
43e9db:	6a 02                	push   $0x2
43e9dd:	e8 b2 17 ff ff       	call   0x430194
43e9e2:	59                   	pop    %ecx
43e9e3:	c3                   	ret
43e9e4:	8b ff                	mov    %edi,%edi
43e9e6:	55                   	push   %ebp
43e9e7:	8b ec                	mov    %esp,%ebp
43e9e9:	83 ec 24             	sub    $0x24,%esp
43e9ec:	a1 a8 f6 46 00       	mov    0x46f6a8,%eax
43e9f1:	33 c5                	xor    %ebp,%eax
43e9f3:	89 45 fc             	mov    %eax,-0x4(%ebp)
43e9f6:	8b 45 08             	mov    0x8(%ebp),%eax
43e9f9:	53                   	push   %ebx
43e9fa:	89 45 e0             	mov    %eax,-0x20(%ebp)
43e9fd:	8b 45 0c             	mov    0xc(%ebp),%eax
43ea00:	56                   	push   %esi
43ea01:	57                   	push   %edi
43ea02:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43ea05:	e8 31 5a ff ff       	call   0x43443b
43ea0a:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
43ea0e:	83 3d c8 10 47 00 00 	cmpl   $0x0,0x4710c8
43ea15:	89 45 e8             	mov    %eax,-0x18(%ebp)
43ea18:	75 7d                	jne    0x43ea97
43ea1a:	68 9c 9c 46 00       	push   $0x469c9c
43ea1f:	ff 15 14 35 47 00    	call   *0x473514
43ea25:	8b d8                	mov    %eax,%ebx
43ea27:	85 db                	test   %ebx,%ebx
43ea29:	0f 84 10 01 00 00    	je     0x43eb3f
43ea2f:	8b 3d 34 34 47 00    	mov    0x473434,%edi
43ea35:	68 90 9c 46 00       	push   $0x469c90
43ea3a:	53                   	push   %ebx
43ea3b:	ff d7                	call   *%edi
43ea3d:	85 c0                	test   %eax,%eax
43ea3f:	0f 84 fa 00 00 00    	je     0x43eb3f
43ea45:	8b 35 04 35 47 00    	mov    0x473504,%esi
43ea4b:	50                   	push   %eax
43ea4c:	ff d6                	call   *%esi
43ea4e:	68 80 9c 46 00       	push   $0x469c80
43ea53:	53                   	push   %ebx
43ea54:	a3 c8 10 47 00       	mov    %eax,0x4710c8
43ea59:	ff d7                	call   *%edi
43ea5b:	50                   	push   %eax
43ea5c:	ff d6                	call   *%esi
43ea5e:	68 6c 9c 46 00       	push   $0x469c6c
43ea63:	53                   	push   %ebx
43ea64:	a3 cc 10 47 00       	mov    %eax,0x4710cc
43ea69:	ff d7                	call   *%edi
43ea6b:	50                   	push   %eax
43ea6c:	ff d6                	call   *%esi
43ea6e:	68 50 9c 46 00       	push   $0x469c50
43ea73:	53                   	push   %ebx
43ea74:	a3 d0 10 47 00       	mov    %eax,0x4710d0
43ea79:	ff d7                	call   *%edi
43ea7b:	50                   	push   %eax
43ea7c:	ff d6                	call   *%esi
43ea7e:	a3 d8 10 47 00       	mov    %eax,0x4710d8
43ea83:	85 c0                	test   %eax,%eax
43ea85:	74 10                	je     0x43ea97
43ea87:	68 38 9c 46 00       	push   $0x469c38
43ea8c:	53                   	push   %ebx
43ea8d:	ff d7                	call   *%edi
43ea8f:	50                   	push   %eax
43ea90:	ff d6                	call   *%esi
43ea92:	a3 d4 10 47 00       	mov    %eax,0x4710d4
43ea97:	a1 d4 10 47 00       	mov    0x4710d4,%eax
43ea9c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
43ea9f:	8b 35 d4 34 47 00    	mov    0x4734d4,%esi
43eaa5:	3b c1                	cmp    %ecx,%eax
43eaa7:	74 47                	je     0x43eaf0
43eaa9:	39 0d d8 10 47 00    	cmp    %ecx,0x4710d8
43eaaf:	74 3f                	je     0x43eaf0
43eab1:	50                   	push   %eax
43eab2:	ff d6                	call   *%esi
43eab4:	ff 35 d8 10 47 00    	push   0x4710d8
43eaba:	8b f8                	mov    %eax,%edi
43eabc:	ff d6                	call   *%esi
43eabe:	8b d8                	mov    %eax,%ebx
43eac0:	85 ff                	test   %edi,%edi
43eac2:	74 2c                	je     0x43eaf0
43eac4:	85 db                	test   %ebx,%ebx
43eac6:	74 28                	je     0x43eaf0
43eac8:	ff d7                	call   *%edi
43eaca:	85 c0                	test   %eax,%eax
43eacc:	74 19                	je     0x43eae7
43eace:	8d 4d dc             	lea    -0x24(%ebp),%ecx
43ead1:	51                   	push   %ecx
43ead2:	6a 0c                	push   $0xc
43ead4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43ead7:	51                   	push   %ecx
43ead8:	6a 01                	push   $0x1
43eada:	50                   	push   %eax
43eadb:	ff d3                	call   *%ebx
43eadd:	85 c0                	test   %eax,%eax
43eadf:	74 06                	je     0x43eae7
43eae1:	f6 45 f8 01          	testb  $0x1,-0x8(%ebp)
43eae5:	75 09                	jne    0x43eaf0
43eae7:	81 4d 10 00 00 20 00 	orl    $0x200000,0x10(%ebp)
43eaee:	eb 33                	jmp    0x43eb23
43eaf0:	a1 cc 10 47 00       	mov    0x4710cc,%eax
43eaf5:	3b 45 e8             	cmp    -0x18(%ebp),%eax
43eaf8:	74 29                	je     0x43eb23
43eafa:	50                   	push   %eax
43eafb:	ff d6                	call   *%esi
43eafd:	85 c0                	test   %eax,%eax
43eaff:	74 22                	je     0x43eb23
43eb01:	ff d0                	call   *%eax
43eb03:	89 45 ec             	mov    %eax,-0x14(%ebp)
43eb06:	85 c0                	test   %eax,%eax
43eb08:	74 19                	je     0x43eb23
43eb0a:	a1 d0 10 47 00       	mov    0x4710d0,%eax
43eb0f:	3b 45 e8             	cmp    -0x18(%ebp),%eax
43eb12:	74 0f                	je     0x43eb23
43eb14:	50                   	push   %eax
43eb15:	ff d6                	call   *%esi
43eb17:	85 c0                	test   %eax,%eax
43eb19:	74 08                	je     0x43eb23
43eb1b:	ff 75 ec             	push   -0x14(%ebp)
43eb1e:	ff d0                	call   *%eax
43eb20:	89 45 ec             	mov    %eax,-0x14(%ebp)
43eb23:	ff 35 c8 10 47 00    	push   0x4710c8
43eb29:	ff d6                	call   *%esi
43eb2b:	85 c0                	test   %eax,%eax
43eb2d:	74 10                	je     0x43eb3f
43eb2f:	ff 75 10             	push   0x10(%ebp)
43eb32:	ff 75 e4             	push   -0x1c(%ebp)
43eb35:	ff 75 e0             	push   -0x20(%ebp)
43eb38:	ff 75 ec             	push   -0x14(%ebp)
43eb3b:	ff d0                	call   *%eax
43eb3d:	eb 02                	jmp    0x43eb41
43eb3f:	33 c0                	xor    %eax,%eax
43eb41:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43eb44:	5f                   	pop    %edi
43eb45:	5e                   	pop    %esi
43eb46:	33 cd                	xor    %ebp,%ecx
43eb48:	5b                   	pop    %ebx
43eb49:	e8 43 fe ff ff       	call   0x43e991
43eb4e:	c9                   	leave
43eb4f:	c3                   	ret
43eb50:	8b ff                	mov    %edi,%edi
43eb52:	55                   	push   %ebp
43eb53:	8b ec                	mov    %esp,%ebp
43eb55:	56                   	push   %esi
43eb56:	8b 75 08             	mov    0x8(%ebp),%esi
43eb59:	57                   	push   %edi
43eb5a:	85 f6                	test   %esi,%esi
43eb5c:	74 07                	je     0x43eb65
43eb5e:	8b 7d 0c             	mov    0xc(%ebp),%edi
43eb61:	85 ff                	test   %edi,%edi
43eb63:	75 15                	jne    0x43eb7a
43eb65:	e8 3e 5e ff ff       	call   0x4349a8
43eb6a:	6a 16                	push   $0x16
43eb6c:	5e                   	pop    %esi
43eb6d:	89 30                	mov    %esi,(%eax)
43eb6f:	e8 fa 57 ff ff       	call   0x43436e
43eb74:	8b c6                	mov    %esi,%eax
43eb76:	5f                   	pop    %edi
43eb77:	5e                   	pop    %esi
43eb78:	5d                   	pop    %ebp
43eb79:	c3                   	ret
43eb7a:	8b 4d 10             	mov    0x10(%ebp),%ecx
43eb7d:	85 c9                	test   %ecx,%ecx
43eb7f:	75 07                	jne    0x43eb88
43eb81:	33 c0                	xor    %eax,%eax
43eb83:	66 89 06             	mov    %ax,(%esi)
43eb86:	eb dd                	jmp    0x43eb65
43eb88:	8b d6                	mov    %esi,%edx
43eb8a:	66 83 3a 00          	cmpw   $0x0,(%edx)
43eb8e:	74 06                	je     0x43eb96
43eb90:	83 c2 02             	add    $0x2,%edx
43eb93:	4f                   	dec    %edi
43eb94:	75 f4                	jne    0x43eb8a
43eb96:	85 ff                	test   %edi,%edi
43eb98:	74 e7                	je     0x43eb81
43eb9a:	2b d1                	sub    %ecx,%edx
43eb9c:	0f b7 01             	movzwl (%ecx),%eax
43eb9f:	66 89 04 0a          	mov    %ax,(%edx,%ecx,1)
43eba3:	83 c1 02             	add    $0x2,%ecx
43eba6:	66 85 c0             	test   %ax,%ax
43eba9:	74 03                	je     0x43ebae
43ebab:	4f                   	dec    %edi
43ebac:	75 ee                	jne    0x43eb9c
43ebae:	33 c0                	xor    %eax,%eax
43ebb0:	85 ff                	test   %edi,%edi
43ebb2:	75 c2                	jne    0x43eb76
43ebb4:	66 89 06             	mov    %ax,(%esi)
43ebb7:	e8 ec 5d ff ff       	call   0x4349a8
43ebbc:	6a 22                	push   $0x22
43ebbe:	59                   	pop    %ecx
43ebbf:	89 08                	mov    %ecx,(%eax)
43ebc1:	8b f1                	mov    %ecx,%esi
43ebc3:	eb aa                	jmp    0x43eb6f
43ebc5:	8b ff                	mov    %edi,%edi
43ebc7:	55                   	push   %ebp
43ebc8:	8b ec                	mov    %esp,%ebp
43ebca:	8b 55 08             	mov    0x8(%ebp),%edx
43ebcd:	53                   	push   %ebx
43ebce:	8b 5d 14             	mov    0x14(%ebp),%ebx
43ebd1:	56                   	push   %esi
43ebd2:	57                   	push   %edi
43ebd3:	85 db                	test   %ebx,%ebx
43ebd5:	75 10                	jne    0x43ebe7
43ebd7:	85 d2                	test   %edx,%edx
43ebd9:	75 10                	jne    0x43ebeb
43ebdb:	39 55 0c             	cmp    %edx,0xc(%ebp)
43ebde:	75 12                	jne    0x43ebf2
43ebe0:	33 c0                	xor    %eax,%eax
43ebe2:	5f                   	pop    %edi
43ebe3:	5e                   	pop    %esi
43ebe4:	5b                   	pop    %ebx
43ebe5:	5d                   	pop    %ebp
43ebe6:	c3                   	ret
43ebe7:	85 d2                	test   %edx,%edx
43ebe9:	74 07                	je     0x43ebf2
43ebeb:	8b 7d 0c             	mov    0xc(%ebp),%edi
43ebee:	85 ff                	test   %edi,%edi
43ebf0:	75 13                	jne    0x43ec05
43ebf2:	e8 b1 5d ff ff       	call   0x4349a8
43ebf7:	6a 16                	push   $0x16
43ebf9:	5e                   	pop    %esi
43ebfa:	89 30                	mov    %esi,(%eax)
43ebfc:	e8 6d 57 ff ff       	call   0x43436e
43ec01:	8b c6                	mov    %esi,%eax
43ec03:	eb dd                	jmp    0x43ebe2
43ec05:	85 db                	test   %ebx,%ebx
43ec07:	75 07                	jne    0x43ec10
43ec09:	33 c0                	xor    %eax,%eax
43ec0b:	66 89 02             	mov    %ax,(%edx)
43ec0e:	eb d0                	jmp    0x43ebe0
43ec10:	8b 4d 10             	mov    0x10(%ebp),%ecx
43ec13:	85 c9                	test   %ecx,%ecx
43ec15:	75 07                	jne    0x43ec1e
43ec17:	33 c0                	xor    %eax,%eax
43ec19:	66 89 02             	mov    %ax,(%edx)
43ec1c:	eb d4                	jmp    0x43ebf2
43ec1e:	8b c2                	mov    %edx,%eax
43ec20:	83 fb ff             	cmp    $0xffffffff,%ebx
43ec23:	75 18                	jne    0x43ec3d
43ec25:	8b f2                	mov    %edx,%esi