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
40eacd:	c7 05 60 70 43 00 e0 	movl   $0x4371e0,0x437060
40ead4:	71 43 00
40ead7:	80 3f 00             	cmpb   $0x0,(%edi)
40eada:	75 05                	jne    0x40eae1
40eadc:	bf e0 71 43 00       	mov    $0x4371e0,%edi
40eae1:	8d 44 24 0c          	lea    0xc(%esp),%eax
40eae5:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40eae9:	50                   	push   %eax
40eaea:	51                   	push   %ecx
40eaeb:	6a 00                	push   $0x0
40eaed:	6a 00                	push   $0x0
40eaef:	57                   	push   %edi
40eaf0:	e8 5b 00 00 00       	call   0x40eb50
40eaf5:	8b 54 24 20          	mov    0x20(%esp),%edx
40eaf9:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40eafd:	83 c4 14             	add    $0x14,%esp
40eb00:	8d 0c 82             	lea    (%edx,%eax,4),%ecx
40eb03:	51                   	push   %ecx
40eb04:	e8 b7 d9 ff ff       	call   0x40c4c0
40eb09:	8b f0                	mov    %eax,%esi
40eb0b:	83 c4 04             	add    $0x4,%esp
40eb0e:	85 f6                	test   %esi,%esi
40eb10:	75 0a                	jne    0x40eb1c
40eb12:	6a 08                	push   $0x8
40eb14:	e8 77 d8 ff ff       	call   0x40c390
40eb19:	83 c4 04             	add    $0x4,%esp
40eb1c:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40eb20:	8d 54 24 0c          	lea    0xc(%esp),%edx
40eb24:	52                   	push   %edx
40eb25:	8d 44 24 0c          	lea    0xc(%esp),%eax
40eb29:	8d 14 8e             	lea    (%esi,%ecx,4),%edx
40eb2c:	50                   	push   %eax
40eb2d:	52                   	push   %edx
40eb2e:	56                   	push   %esi
40eb2f:	57                   	push   %edi
40eb30:	e8 1b 00 00 00       	call   0x40eb50
40eb35:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40eb39:	83 c4 14             	add    $0x14,%esp
40eb3c:	48                   	dec    %eax
40eb3d:	89 35 48 70 43 00    	mov    %esi,0x437048
40eb43:	5f                   	pop    %edi
40eb44:	a3 44 70 43 00       	mov    %eax,0x437044
40eb49:	5e                   	pop    %esi
40eb4a:	83 c4 08             	add    $0x8,%esp
40eb4d:	c3                   	ret
40eb4e:	90                   	nop
40eb4f:	90                   	nop
40eb50:	8b 44 24 10          	mov    0x10(%esp),%eax
40eb54:	53                   	push   %ebx
40eb55:	55                   	push   %ebp
40eb56:	8b 6c 24 10          	mov    0x10(%esp),%ebp
40eb5a:	56                   	push   %esi
40eb5b:	8b 74 24 18          	mov    0x18(%esp),%esi
40eb5f:	57                   	push   %edi
40eb60:	8b 7c 24 24          	mov    0x24(%esp),%edi
40eb64:	85 ed                	test   %ebp,%ebp
40eb66:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40eb6c:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40eb72:	8b 44 24 14          	mov    0x14(%esp),%eax
40eb76:	bb 04 00 00 00       	mov    $0x4,%ebx
40eb7b:	74 09                	je     0x40eb86
40eb7d:	89 75 00             	mov    %esi,0x0(%ebp)
40eb80:	03 eb                	add    %ebx,%ebp
40eb82:	89 6c 24 18          	mov    %ebp,0x18(%esp)
40eb86:	80 38 22             	cmpb   $0x22,(%eax)
40eb89:	75 56                	jne    0x40ebe1
40eb8b:	8a 48 01             	mov    0x1(%eax),%cl
40eb8e:	40                   	inc    %eax
40eb8f:	80 f9 22             	cmp    $0x22,%cl
40eb92:	74 38                	je     0x40ebcc
40eb94:	84 c9                	test   %cl,%cl
40eb96:	74 34                	je     0x40ebcc
40eb98:	81 e1 ff 00 00 00    	and    $0xff,%ecx
40eb9e:	84 99 79 70 43 00    	test   %bl,0x437079(%ecx)
40eba4:	74 0f                	je     0x40ebb5
40eba6:	8b 17                	mov    (%edi),%edx
40eba8:	42                   	inc    %edx
40eba9:	85 f6                	test   %esi,%esi
40ebab:	89 17                	mov    %edx,(%edi)
40ebad:	74 06                	je     0x40ebb5
40ebaf:	8a 08                	mov    (%eax),%cl
40ebb1:	88 0e                	mov    %cl,(%esi)
40ebb3:	46                   	inc    %esi
40ebb4:	40                   	inc    %eax
40ebb5:	8b 17                	mov    (%edi),%edx
40ebb7:	42                   	inc    %edx
40ebb8:	85 f6                	test   %esi,%esi
40ebba:	89 17                	mov    %edx,(%edi)
40ebbc:	74 05                	je     0x40ebc3
40ebbe:	8a 10                	mov    (%eax),%dl
40ebc0:	88 16                	mov    %dl,(%esi)
40ebc2:	46                   	inc    %esi
40ebc3:	8a 48 01             	mov    0x1(%eax),%cl
40ebc6:	40                   	inc    %eax
40ebc7:	80 f9 22             	cmp    $0x22,%cl
40ebca:	75 c8                	jne    0x40eb94
40ebcc:	8b 17                	mov    (%edi),%edx
40ebce:	42                   	inc    %edx
40ebcf:	85 f6                	test   %esi,%esi
40ebd1:	89 17                	mov    %edx,(%edi)
40ebd3:	74 04                	je     0x40ebd9
40ebd5:	c6 06 00             	movb   $0x0,(%esi)
40ebd8:	46                   	inc    %esi
40ebd9:	80 38 22             	cmpb   $0x22,(%eax)
40ebdc:	75 56                	jne    0x40ec34
40ebde:	40                   	inc    %eax
40ebdf:	eb 53                	jmp    0x40ec34
40ebe1:	8b 17                	mov    (%edi),%edx
40ebe3:	42                   	inc    %edx
40ebe4:	85 f6                	test   %esi,%esi
40ebe6:	89 17                	mov    %edx,(%edi)
40ebe8:	74 05                	je     0x40ebef
40ebea:	8a 08                	mov    (%eax),%cl
40ebec:	88 0e                	mov    %cl,(%esi)
40ebee:	46                   	inc    %esi
40ebef:	8a 08                	mov    (%eax),%cl
40ebf1:	40                   	inc    %eax
40ebf2:	88 4c 24 24          	mov    %cl,0x24(%esp)
40ebf6:	8b 54 24 24          	mov    0x24(%esp),%edx
40ebfa:	81 e2 ff 00 00 00    	and    $0xff,%edx
40ec00:	84 9a 79 70 43 00    	test   %bl,0x437079(%edx)
40ec06:	74 0f                	je     0x40ec17
40ec08:	8b 17                	mov    (%edi),%edx
40ec0a:	42                   	inc    %edx
40ec0b:	85 f6                	test   %esi,%esi
40ec0d:	89 17                	mov    %edx,(%edi)
40ec0f:	74 05                	je     0x40ec16
40ec11:	8a 10                	mov    (%eax),%dl
40ec13:	88 16                	mov    %dl,(%esi)
40ec15:	46                   	inc    %esi
40ec16:	40                   	inc    %eax
40ec17:	80 f9 20             	cmp    $0x20,%cl
40ec1a:	74 09                	je     0x40ec25
40ec1c:	84 c9                	test   %cl,%cl
40ec1e:	74 09                	je     0x40ec29
40ec20:	80 f9 09             	cmp    $0x9,%cl
40ec23:	75 bc                	jne    0x40ebe1
40ec25:	84 c9                	test   %cl,%cl
40ec27:	75 03                	jne    0x40ec2c
40ec29:	48                   	dec    %eax
40ec2a:	eb 08                	jmp    0x40ec34
40ec2c:	85 f6                	test   %esi,%esi
40ec2e:	74 04                	je     0x40ec34
40ec30:	c6 46 ff 00          	movb   $0x0,-0x1(%esi)
40ec34:	33 d2                	xor    %edx,%edx
40ec36:	89 54 24 24          	mov    %edx,0x24(%esp)
40ec3a:	80 38 00             	cmpb   $0x0,(%eax)
40ec3d:	0f 84 03 01 00 00    	je     0x40ed46
40ec43:	8a 08                	mov    (%eax),%cl
40ec45:	80 f9 20             	cmp    $0x20,%cl
40ec48:	74 05                	je     0x40ec4f
40ec4a:	80 f9 09             	cmp    $0x9,%cl
40ec4d:	75 03                	jne    0x40ec52
40ec4f:	40                   	inc    %eax
40ec50:	eb f1                	jmp    0x40ec43
40ec52:	80 38 00             	cmpb   $0x0,(%eax)
40ec55:	0f 84 eb 00 00 00    	je     0x40ed46
40ec5b:	85 ed                	test   %ebp,%ebp
40ec5d:	74 09                	je     0x40ec68
40ec5f:	89 75 00             	mov    %esi,0x0(%ebp)
40ec62:	03 eb                	add    %ebx,%ebp
40ec64:	89 6c 24 18          	mov    %ebp,0x18(%esp)
40ec68:	8b 4c 24 20          	mov    0x20(%esp),%ecx
40ec6c:	ff 01                	incl   (%ecx)
40ec6e:	8a 18                	mov    (%eax),%bl
40ec70:	33 c9                	xor    %ecx,%ecx
40ec72:	80 fb 5c             	cmp    $0x5c,%bl
40ec75:	bd 01 00 00 00       	mov    $0x1,%ebp
40ec7a:	75 0a                	jne    0x40ec86
40ec7c:	8a 58 01             	mov    0x1(%eax),%bl
40ec7f:	40                   	inc    %eax
40ec80:	41                   	inc    %ecx
40ec81:	80 fb 5c             	cmp    $0x5c,%bl
40ec84:	74 f6                	je     0x40ec7c
40ec86:	80 38 22             	cmpb   $0x22,(%eax)