40e781:	8b 0d d8 1d 43 00    	mov    0x431dd8,%ecx
40e787:	8b 1d dc 1d 43 00    	mov    0x431ddc,%ebx
40e78d:	03 d9                	add    %ecx,%ebx
40e78f:	3b cb                	cmp    %ebx,%ecx
40e791:	7d 27                	jge    0x40e7ba
40e793:	8d 14 49             	lea    (%ecx,%ecx,2),%edx
40e796:	c1 e2 02             	shl    $0x2,%edx
40e799:	8b 5e 50             	mov    0x50(%esi),%ebx
40e79c:	41                   	inc    %ecx
40e79d:	89 7c 13 08          	mov    %edi,0x8(%ebx,%edx,1)
40e7a1:	8b 1d d8 1d 43 00    	mov    0x431dd8,%ebx
40e7a7:	8b 2d dc 1d 43 00    	mov    0x431ddc,%ebp
40e7ad:	83 c2 0c             	add    $0xc,%edx
40e7b0:	03 eb                	add    %ebx,%ebp
40e7b2:	3b cd                	cmp    %ebp,%ecx
40e7b4:	7c e3                	jl     0x40e799
40e7b6:	8b 54 24 18          	mov    0x18(%esp),%edx
40e7ba:	8b 00                	mov    (%eax),%eax
40e7bc:	8b 7e 58             	mov    0x58(%esi),%edi
40e7bf:	3d 8e 00 00 c0       	cmp    $0xc000008e,%eax
40e7c4:	75 25                	jne    0x40e7eb
40e7c6:	c7 46 58 83 00 00 00 	movl   $0x83,0x58(%esi)
40e7cd:	8b 46 58             	mov    0x58(%esi),%eax
40e7d0:	50                   	push   %eax
40e7d1:	6a 08                	push   $0x8
40e7d3:	ff d2                	call   *%edx
40e7d5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e7d9:	83 c4 08             	add    $0x8,%esp
40e7dc:	89 7e 58             	mov    %edi,0x58(%esi)
40e7df:	89 4e 54             	mov    %ecx,0x54(%esi)
40e7e2:	83 c8 ff             	or     $0xffffffff,%eax
40e7e5:	5f                   	pop    %edi
40e7e6:	5e                   	pop    %esi
40e7e7:	5d                   	pop    %ebp
40e7e8:	5b                   	pop    %ebx
40e7e9:	59                   	pop    %ecx
40e7ea:	c3                   	ret
40e7eb:	3d 90 00 00 c0       	cmp    $0xc0000090,%eax
40e7f0:	75 25                	jne    0x40e817
40e7f2:	c7 46 58 81 00 00 00 	movl   $0x81,0x58(%esi)
40e7f9:	8b 46 58             	mov    0x58(%esi),%eax
40e7fc:	50                   	push   %eax
40e7fd:	6a 08                	push   $0x8
40e7ff:	ff d2                	call   *%edx
40e801:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e805:	83 c4 08             	add    $0x8,%esp
40e808:	89 7e 58             	mov    %edi,0x58(%esi)
40e80b:	89 4e 54             	mov    %ecx,0x54(%esi)
40e80e:	83 c8 ff             	or     $0xffffffff,%eax
40e811:	5f                   	pop    %edi
40e812:	5e                   	pop    %esi
40e813:	5d                   	pop    %ebp
40e814:	5b                   	pop    %ebx
40e815:	59                   	pop    %ecx
40e816:	c3                   	ret
40e817:	3d 91 00 00 c0       	cmp    $0xc0000091,%eax
40e81c:	75 25                	jne    0x40e843
40e81e:	c7 46 58 84 00 00 00 	movl   $0x84,0x58(%esi)
40e825:	8b 46 58             	mov    0x58(%esi),%eax
40e828:	50                   	push   %eax
40e829:	6a 08                	push   $0x8
40e82b:	ff d2                	call   *%edx
40e82d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e831:	83 c4 08             	add    $0x8,%esp
40e834:	89 7e 58             	mov    %edi,0x58(%esi)
40e837:	89 4e 54             	mov    %ecx,0x54(%esi)
40e83a:	83 c8 ff             	or     $0xffffffff,%eax
40e83d:	5f                   	pop    %edi
40e83e:	5e                   	pop    %esi
40e83f:	5d                   	pop    %ebp
40e840:	5b                   	pop    %ebx
40e841:	59                   	pop    %ecx
40e842:	c3                   	ret
40e843:	3d 93 00 00 c0       	cmp    $0xc0000093,%eax
40e848:	75 25                	jne    0x40e86f
40e84a:	c7 46 58 85 00 00 00 	movl   $0x85,0x58(%esi)
40e851:	8b 46 58             	mov    0x58(%esi),%eax
40e854:	50                   	push   %eax
40e855:	6a 08                	push   $0x8
40e857:	ff d2                	call   *%edx
40e859:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e85d:	83 c4 08             	add    $0x8,%esp
40e860:	89 7e 58             	mov    %edi,0x58(%esi)
40e863:	89 4e 54             	mov    %ecx,0x54(%esi)
40e866:	83 c8 ff             	or     $0xffffffff,%eax
40e869:	5f                   	pop    %edi
40e86a:	5e                   	pop    %esi
40e86b:	5d                   	pop    %ebp
40e86c:	5b                   	pop    %ebx
40e86d:	59                   	pop    %ecx
40e86e:	c3                   	ret
40e86f:	3d 8d 00 00 c0       	cmp    $0xc000008d,%eax
40e874:	75 25                	jne    0x40e89b
40e876:	c7 46 58 82 00 00 00 	movl   $0x82,0x58(%esi)
40e87d:	8b 46 58             	mov    0x58(%esi),%eax
40e880:	50                   	push   %eax
40e881:	6a 08                	push   $0x8
40e883:	ff d2                	call   *%edx
40e885:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e889:	83 c4 08             	add    $0x8,%esp
40e88c:	89 7e 58             	mov    %edi,0x58(%esi)
40e88f:	89 4e 54             	mov    %ecx,0x54(%esi)
40e892:	83 c8 ff             	or     $0xffffffff,%eax
40e895:	5f                   	pop    %edi
40e896:	5e                   	pop    %esi
40e897:	5d                   	pop    %ebp
40e898:	5b                   	pop    %ebx
40e899:	59                   	pop    %ecx
40e89a:	c3                   	ret
40e89b:	3d 8f 00 00 c0       	cmp    $0xc000008f,%eax
40e8a0:	75 25                	jne    0x40e8c7
40e8a2:	c7 46 58 86 00 00 00 	movl   $0x86,0x58(%esi)
40e8a9:	8b 46 58             	mov    0x58(%esi),%eax
40e8ac:	50                   	push   %eax
40e8ad:	6a 08                	push   $0x8
40e8af:	ff d2                	call   *%edx
40e8b1:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e8b5:	83 c4 08             	add    $0x8,%esp
40e8b8:	89 7e 58             	mov    %edi,0x58(%esi)
40e8bb:	89 4e 54             	mov    %ecx,0x54(%esi)
40e8be:	83 c8 ff             	or     $0xffffffff,%eax
40e8c1:	5f                   	pop    %edi
40e8c2:	5e                   	pop    %esi
40e8c3:	5d                   	pop    %ebp
40e8c4:	5b                   	pop    %ebx
40e8c5:	59                   	pop    %ecx
40e8c6:	c3                   	ret
40e8c7:	3d 92 00 00 c0       	cmp    $0xc0000092,%eax
40e8cc:	75 07                	jne    0x40e8d5
40e8ce:	c7 46 58 8a 00 00 00 	movl   $0x8a,0x58(%esi)
40e8d5:	8b 46 58             	mov    0x58(%esi),%eax
40e8d8:	50                   	push   %eax
40e8d9:	6a 08                	push   $0x8
40e8db:	ff d2                	call   *%edx
40e8dd:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e8e1:	83 c4 08             	add    $0x8,%esp
40e8e4:	89 7e 58             	mov    %edi,0x58(%esi)
40e8e7:	89 4e 54             	mov    %ecx,0x54(%esi)
40e8ea:	83 c8 ff             	or     $0xffffffff,%eax
40e8ed:	5f                   	pop    %edi
40e8ee:	5e                   	pop    %esi
40e8ef:	5d                   	pop    %ebp
40e8f0:	5b                   	pop    %ebx
40e8f1:	59                   	pop    %ecx
40e8f2:	c3                   	ret
40e8f3:	51                   	push   %ecx
40e8f4:	89 78 08             	mov    %edi,0x8(%eax)
40e8f7:	ff d2                	call   *%edx
40e8f9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40e8fd:	83 c4 04             	add    $0x4,%esp
40e900:	89 4e 54             	mov    %ecx,0x54(%esi)
40e903:	83 c8 ff             	or     $0xffffffff,%eax
40e906:	5f                   	pop    %edi
40e907:	5e                   	pop    %esi
40e908:	5d                   	pop    %ebp
40e909:	5b                   	pop    %ebx
40e90a:	59                   	pop    %ecx
40e90b:	c3                   	ret
40e90c:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40e910:	52                   	push   %edx
40e911:	ff 15 f0 95 43 00    	call   *0x4395f0
40e917:	5f                   	pop    %edi
40e918:	5e                   	pop    %esi
40e919:	5d                   	pop    %ebp
40e91a:	5b                   	pop    %ebx
40e91b:	59                   	pop    %ecx
40e91c:	c3                   	ret
40e91d:	90                   	nop
40e91e:	90                   	nop
40e91f:	90                   	nop
40e920:	8b 54 24 04          	mov    0x4(%esp),%edx
40e924:	56                   	push   %esi
40e925:	8b 74 24 0c          	mov    0xc(%esp),%esi
40e929:	57                   	push   %edi
40e92a:	8b 3d e4 1d 43 00    	mov    0x431de4,%edi
40e930:	8b 0e                	mov    (%esi),%ecx
40e932:	8b c6                	mov    %esi,%eax
40e934:	3b ca                	cmp    %edx,%ecx
40e936:	74 11                	je     0x40e949
40e938:	8d 0c 7f             	lea    (%edi,%edi,2),%ecx
40e93b:	8d 0c 8e             	lea    (%esi,%ecx,4),%ecx
40e93e:	83 c0 0c             	add    $0xc,%eax
40e941:	3b c1                	cmp    %ecx,%eax
40e943:	73 04                	jae    0x40e949
40e945:	39 10                	cmp    %edx,(%eax)
40e947:	75 f5                	jne    0x40e93e
40e949:	8d 0c 7f             	lea    (%edi,%edi,2),%ecx
40e94c:	8d 0c 8e             	lea    (%esi,%ecx,4),%ecx
40e94f:	3b c1                	cmp    %ecx,%eax
40e951:	73 04                	jae    0x40e957
40e953:	39 10                	cmp    %edx,(%eax)
40e955:	74 02                	je     0x40e959
40e957:	33 c0                	xor    %eax,%eax
40e959:	5f                   	pop    %edi
40e95a:	5e                   	pop    %esi
40e95b:	c3                   	ret
40e95c:	90                   	nop
40e95d:	90                   	nop
40e95e:	90                   	nop
40e95f:	90                   	nop
40e960:	8b 44 24 04          	mov    0x4(%esp),%eax
40e964:	6a 04                	push   $0x4
40e966:	6a 00                	push   $0x0
40e968:	50                   	push   %eax
40e969:	e8 12 00 00 00       	call   0x40e980
40e96e:	83 c4 0c             	add    $0xc,%esp
40e971:	c3                   	ret
40e972:	90                   	nop
40e973:	90                   	nop
40e974:	90                   	nop
40e975:	90                   	nop
40e976:	90                   	nop
40e977:	90                   	nop
40e978:	90                   	nop
40e979:	90                   	nop
40e97a:	90                   	nop
40e97b:	90                   	nop
40e97c:	90                   	nop
40e97d:	90                   	nop
40e97e:	90                   	nop
40e97f:	90                   	nop
40e980:	8b 44 24 04          	mov    0x4(%esp),%eax
40e984:	8a 4c 24 0c          	mov    0xc(%esp),%cl
40e988:	25 ff 00 00 00       	and    $0xff,%eax
40e98d:	84 88 79 70 43 00    	test   %cl,0x437079(%eax)
40e993:	75 1f                	jne    0x40e9b4
40e995:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40e999:	85 c9                	test   %ecx,%ecx
40e99b:	74 10                	je     0x40e9ad
40e99d:	33 d2                	xor    %edx,%edx
40e99f:	66 8b 14 45 52 1b 43 	mov    0x431b52(,%eax,2),%dx
40e9a6:	00
40e9a7:	8b c2                	mov    %edx,%eax
40e9a9:	23 c1                	and    %ecx,%eax
40e9ab:	eb 02                	jmp    0x40e9af
40e9ad:	33 c0                	xor    %eax,%eax
40e9af:	85 c0                	test   %eax,%eax
40e9b1:	75 01                	jne    0x40e9b4
40e9b3:	c3                   	ret
40e9b4:	b8 01 00 00 00       	mov    $0x1,%eax
40e9b9:	c3                   	ret
40e9ba:	90                   	nop
40e9bb:	90                   	nop
40e9bc:	90                   	nop
40e9bd:	90                   	nop
40e9be:	90                   	nop
40e9bf:	90                   	nop
40e9c0:	51                   	push   %ecx
40e9c1:	8b 15 24 70 43 00    	mov    0x437024,%edx
40e9c7:	53                   	push   %ebx
40e9c8:	55                   	push   %ebp
40e9c9:	56                   	push   %esi
40e9ca:	8a 02                	mov    (%edx),%al
40e9cc:	33 f6                	xor    %esi,%esi
40e9ce:	84 c0                	test   %al,%al
40e9d0:	57                   	push   %edi
40e9d1:	74 1d                	je     0x40e9f0
40e9d3:	3c 3d                	cmp    $0x3d,%al
40e9d5:	74 01                	je     0x40e9d8
40e9d7:	46                   	inc    %esi
40e9d8:	8b fa                	mov    %edx,%edi
40e9da:	83 c9 ff             	or     $0xffffffff,%ecx
40e9dd:	33 c0                	xor    %eax,%eax
40e9df:	f2 ae                	repnz scas %es:(%edi),%al
40e9e1:	f7 d1                	not    %ecx
40e9e3:	49                   	dec    %ecx
40e9e4:	8a 44 0a 01          	mov    0x1(%edx,%ecx,1),%al
40e9e8:	8d 54 0a 01          	lea    0x1(%edx,%ecx,1),%edx
40e9ec:	84 c0                	test   %al,%al
40e9ee:	75 e3                	jne    0x40e9d3
40e9f0:	8d 04 b5 04 00 00 00 	lea    0x4(,%esi,4),%eax
40e9f7:	50                   	push   %eax
40e9f8:	e8 c3 da ff ff       	call   0x40c4c0
40e9fd:	8b f0                	mov    %eax,%esi
40e9ff:	83 c4 04             	add    $0x4,%esp
40ea02:	85 f6                	test   %esi,%esi
40ea04:	89 74 24 10          	mov    %esi,0x10(%esp)
40ea08:	89 35 50 70 43 00    	mov    %esi,0x437050
40ea0e:	75 0a                	jne    0x40ea1a
40ea10:	6a 09                	push   $0x9
40ea12:	e8 79 d9 ff ff       	call   0x40c390
40ea17:	83 c4 04             	add    $0x4,%esp
40ea1a:	8b 2d 24 70 43 00    	mov    0x437024,%ebp
40ea20:	8a 55 00             	mov    0x0(%ebp),%dl
40ea23:	84 d2                	test   %dl,%dl
40ea25:	74 63                	je     0x40ea8a
40ea27:	8b fd                	mov    %ebp,%edi
40ea29:	83 c9 ff             	or     $0xffffffff,%ecx
40ea2c:	33 c0                	xor    %eax,%eax
40ea2e:	f2 ae                	repnz scas %es:(%edi),%al
40ea30:	f7 d1                	not    %ecx
40ea32:	49                   	dec    %ecx
40ea33:	8b d9                	mov    %ecx,%ebx
40ea35:	43                   	inc    %ebx
40ea36:	80 fa 3d             	cmp    $0x3d,%dl
40ea39:	74 45                	je     0x40ea80
40ea3b:	53                   	push   %ebx
40ea3c:	e8 7f da ff ff       	call   0x40c4c0
40ea41:	83 c4 04             	add    $0x4,%esp
40ea44:	89 06                	mov    %eax,(%esi)
40ea46:	85 c0                	test   %eax,%eax
40ea48:	75 0a                	jne    0x40ea54
40ea4a:	6a 09                	push   $0x9
40ea4c:	e8 3f d9 ff ff       	call   0x40c390
40ea51:	83 c4 04             	add    $0x4,%esp
40ea54:	8b fd                	mov    %ebp,%edi
40ea56:	83 c9 ff             	or     $0xffffffff,%ecx
40ea59:	33 c0                	xor    %eax,%eax
40ea5b:	f2 ae                	repnz scas %es:(%edi),%al
40ea5d:	8b 44 24 10          	mov    0x10(%esp),%eax
40ea61:	f7 d1                	not    %ecx
40ea63:	2b f9                	sub    %ecx,%edi
40ea65:	8b d1                	mov    %ecx,%edx
40ea67:	8b f7                	mov    %edi,%esi
40ea69:	8b 38                	mov    (%eax),%edi
40ea6b:	c1 e9 02             	shr    $0x2,%ecx
40ea6e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ea70:	8b ca                	mov    %edx,%ecx
40ea72:	83 e1 03             	and    $0x3,%ecx
40ea75:	83 c0 04             	add    $0x4,%eax
40ea78:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40ea7a:	89 44 24 10          	mov    %eax,0x10(%esp)
40ea7e:	8b f0                	mov    %eax,%esi
40ea80:	8a 54 1d 00          	mov    0x0(%ebp,%ebx,1),%dl
40ea84:	03 eb                	add    %ebx,%ebp
40ea86:	84 d2                	test   %dl,%dl
40ea88:	75 9d                	jne    0x40ea27
40ea8a:	a1 24 70 43 00       	mov    0x437024,%eax
40ea8f:	50                   	push   %eax
40ea90:	e8 fb da ff ff       	call   0x40c590
40ea95:	83 c4 04             	add    $0x4,%esp
40ea98:	c7 05 24 70 43 00 00 	movl   $0x0,0x437024
40ea9f:	00 00 00
40eaa2:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40eaa8:	5f                   	pop    %edi
40eaa9:	5e                   	pop    %esi
40eaaa:	5d                   	pop    %ebp
40eaab:	5b                   	pop    %ebx
40eaac:	59                   	pop    %ecx
40eaad:	c3                   	ret
40eaae:	90                   	nop
40eaaf:	90                   	nop
40eab0:	83 ec 08             	sub    $0x8,%esp
40eab3:	56                   	push   %esi
40eab4:	57                   	push   %edi
40eab5:	68 04 01 00 00       	push   $0x104
40eaba:	68 e0 71 43 00       	push   $0x4371e0
40eabf:	6a 00                	push   $0x0
40eac1:	ff 15 7c 96 43 00    	call   *0x43967c
40eac7:	8b 3d b8 8a 43 00    	mov    0x438ab8,%edi