40e7e8:	01 12                	add    %edx,(%edx)
40e7ea:	81 71 05 20 00 12 81 	xorl   $0x81120020,0x5(%ecx)
40e7f1:	75 07                	jne    0x40e7fa
40e7f3:	20 01                	and    %al,(%ecx)
40e7f5:	01 1d 12 81 61 06    	add    %ebx,0x6618112
40e7fb:	20 01                	and    %al,(%ecx)
40e7fd:	01 12                	add    %edx,(%edx)
40e7ff:	81 79 06 20 01 01 11 	cmpl   $0x11010120,0x6(%ecx)
40e806:	81 7d 06 20 01 01 11 	cmpl   $0x11010120,0x6(%ebp)
40e80d:	81 81 06 20 01 01 11 	addl   $0x6858111,0x1012006(%ecx)
40e814:	81 85 06
40e817:	20 01                	and    %al,(%ecx)
40e819:	01 12                	add    %edx,(%edx)
40e81b:	81 89 06 20 01 01 11 	orl    $0x68d8111,0x1012006(%ecx)
40e822:	81 8d 06
40e825:	20 01                	and    %al,(%ecx)
40e827:	01 12                	add    %edx,(%edx)
40e829:	81 91 06 20 01 01 11 	adcl   $0xc9d8111,0x1012006(%ecx)
40e830:	81 9d 0c
40e833:	20 05 01 0e 0c 11    	and    %al,0x110c0e01
40e839:	81 a1 11 81 a5 05 06 	andl   $0x1012006,0x5a58111(%ecx)
40e840:	20 01 01
40e843:	11 81 a9 07 20 04    	adc    %eax,0x42007a9(%ecx)
40e849:	01 08                	add    %ecx,(%eax)
40e84b:	08 08                	or     %cl,(%eax)
40e84d:	08 06                	or     %al,(%esi)
40e84f:	20 01                	and    %al,(%ecx)
40e851:	01 11                	add    %edx,(%ecx)
40e853:	81 ad 05 20 02 01 0c 	subl   $0x20060c0c,0x1022005(%ebp)
40e85a:	0c 06 20
40e85d:	01 01                	add    %eax,(%ecx)
40e85f:	11 81 b1 06 20 01    	adc    %eax,0x12006b1(%ecx)
40e865:	01 11                	add    %edx,(%ecx)
40e867:	81 b9 04 20 01 1c 0e 	cmpl   $0x120060e,0x1c012004(%ecx)
40e86e:	06 20 01
40e871:	01 12                	add    %edx,(%edx)
40e873:	81 bd 06 20 01 01 11 	cmpl   $0x3c18111,0x1012006(%ebp)
40e87a:	81 c1 03
40e87d:	00 00                	add    %al,(%eax)
40e87f:	01 04 00             	add    %eax,(%eax,%eax,1)
40e882:	01 01                	add    %eax,(%ecx)
40e884:	02 05 00 01 01 12    	add    0x12010100,%al
40e88a:	51                   	push   %ecx
40e88b:	04 07                	add    $0x7,%al
40e88d:	01 12                	add    %edx,(%edx)
40e88f:	30 04 20             	xor    %al,(%eax,%eiz,1)
40e892:	00 11                	add    %dl,(%ecx)
40e894:	45                   	inc    %ebp
40e895:	05 07 01 12 80       	add    $0x80120107,%eax
40e89a:	99                   	cltd
40e89b:	08 00                	or     %al,(%eax)
40e89d:	03 11                	add    (%ecx),%edx
40e89f:	81 49 08 08 08 06 20 	orl    $0x20060808,0x8(%ecx)
40e8a6:	01 01                	add    %eax,(%ecx)
40e8a8:	11 81 c9 05 00 00    	adc    %eax,0x5c9(%ecx)
40e8ae:	12 81 d1 06 20 01    	adc    0x12006d1(%ecx),%al
40e8b4:	01 12                	add    %edx,(%edx)
40e8b6:	81 d1 05 20 00 12    	adc    $0x12002005,%ecx
40e8bc:	81 d9 06 20 01 01    	sbb    $0x1012006,%ecx
40e8c2:	11 81 dd 06 20 01    	adc    %eax,0x12006dd(%ecx)
40e8c8:	01 11                	add    %edx,(%ecx)
40e8ca:	81 e1 0f 07 0a 12    	and    $0x120a070f,%ecx
40e8d0:	34 02                	xor    $0x2,%al
40e8d2:	02 08                	add    (%eax),%cl
40e8d4:	08 08                	or     %cl,(%eax)
40e8d6:	11 2c 11             	adc    %ebp,(%ecx,%edx,1)
40e8d9:	2c 02                	sub    $0x2,%al
40e8db:	02 08                	add    (%eax),%cl
40e8dd:	14 11                	adc    $0x11,%al
40e8df:	2c 02                	sub    $0x2,%al
40e8e1:	00 02                	add    %al,(%edx)
40e8e3:	00 00                	add    %al,(%eax)
40e8e5:	06                   	push   %es
40e8e6:	20 02                	and    %al,(%edx)
40e8e8:	11 2c 08             	adc    %ebp,(%eax,%ecx,1)
40e8eb:	08 07                	or     %al,(%edi)
40e8ed:	20 03                	and    %al,(%ebx)
40e8ef:	01 08                	add    %ecx,(%eax)
40e8f1:	08 11                	or     %dl,(%ecx)
40e8f3:	2c 08                	sub    $0x8,%al
40e8f5:	07                   	pop    %es
40e8f6:	06                   	push   %es
40e8f7:	08 08                	or     %cl,(%eax)
40e8f9:	02 02                	add    (%edx),%al
40e8fb:	02 02                	add    (%edx),%al
40e8fd:	0b 07                	or     (%edi),%eax
40e8ff:	07                   	pop    %es
40e900:	11 28                	adc    %ebp,(%eax)
40e902:	02 02                	add    (%edx),%al
40e904:	02 11                	add    (%ecx),%dl
40e906:	28 02                	sub    %al,(%edx)
40e908:	02 05 07 03 02 02    	add    0x2020307,%al
40e90e:	02 04 07             	add    (%edi,%eax,1),%al
40e911:	02 02                	add    (%edx),%al
40e913:	08 04 00             	or     %al,(%eax,%eax,1)
40e916:	00 12                	add    %dl,(%edx)
40e918:	51                   	push   %ecx
40e919:	05 07 01 12 80       	add    $0x80120107,%eax
40e91e:	8d 06                	lea    (%esi),%eax
40e920:	07                   	pop    %es
40e921:	04 02                	add    $0x2,%al
40e923:	02 02                	add    (%edx),%al
40e925:	02 08                	add    (%eax),%cl
40e927:	07                   	pop    %es
40e928:	02 11                	add    (%ecx),%dl
40e92a:	80 b9 11 80 b9 06 20 	cmpb   $0x20,0x6b98011(%ecx)
40e931:	01 01                	add    %eax,(%ecx)
40e933:	11 81 e5 1e 07 0d    	adc    %eax,0xd071ee5(%ecx)
40e939:	14 11                	adc    $0x11,%al
40e93b:	2c 02                	sub    $0x2,%al
40e93d:	00 02                	add    %al,(%edx)
40e93f:	00 00                	add    %al,(%eax)
40e941:	1d 0e 08 08 08       	sbb    $0x808080e,%eax
40e946:	08 02                	or     %al,(%edx)
40e948:	08 08                	or     %cl,(%eax)
40e94a:	02 02                	add    (%edx),%al
40e94c:	02 14 11             	add    (%ecx,%edx,1),%dl
40e94f:	2c 02                	sub    $0x2,%al
40e951:	00 02                	add    %al,(%edx)
40e953:	00 00                	add    %al,(%eax)
40e955:	06                   	push   %es
40e956:	07                   	pop    %es
40e957:	03 03                	add    (%ebx),%eax
40e959:	03 11                	add    (%ecx),%edx
40e95b:	2c 07                	sub    $0x7,%al
40e95d:	07                   	pop    %es
40e95e:	03 11                	add    (%ecx),%edx
40e960:	2c 11                	sub    $0x11,%al
40e962:	2c 03                	sub    $0x3,%al
40e964:	08 07                	or     %al,(%edi)
40e966:	05 1d 03 0e 08       	add    $0x80e031d,%eax
40e96b:	02 0e                	add    (%esi),%cl
40e96d:	04 20                	add    $0x20,%al
40e96f:	00 1d 03 05 20 02    	add    %bl,0x2200503
40e975:	0e                   	push   %cs
40e976:	0e                   	push   %cs
40e977:	0e                   	push   %cs
40e978:	04 07                	add    $0x7,%al
40e97a:	01 1d 05 0a 07 05    	add    %ebx,0x5070a05
40e980:	1d 05 12 80 bd       	sbb    $0xbd801205,%eax
40e985:	1c 1c                	sbb    $0x1c,%al
40e987:	0e                   	push   %cs
40e988:	07                   	pop    %es
40e989:	20 01                	and    %al,(%ecx)
40e98b:	12 80 bd 1d 05 0e    	adc    0xe051dbd(%eax),%al
40e991:	00 06                	add    %al,(%esi)
40e993:	1c 1c                	sbb    $0x1c,%al
40e995:	12 81 69 0e 1d 1c    	adc    0x1c1d0e69(%ecx),%al
40e99b:	1d 0e 1d 02 05       	sbb    $0x5021d0e,%eax
40e9a0:	07                   	pop    %es
40e9a1:	01 12                	add    %edx,(%edx)
40e9a3:	80 c1 05             	add    $0x5,%cl
40e9a6:	00 00                	add    %al,(%eax)
40e9a8:	12 80 c1 03 07 01    	adc    0x10703c1(%eax),%al
40e9ae:	0d 06 15 12 80       	or     $0x80121506,%eax
40e9b3:	c5 01                	lds    (%ecx),%eax
40e9b5:	0d 0a 07 03 15       	or     $0x1503070a,%eax
40e9ba:	11 80 c9 01 0d 02    	adc    %eax,0x20d01c9(%eax)
40e9c0:	02 05 20 01 01 13    	add    0x13010120,%al
40e9c6:	00 06                	add    %al,(%esi)
40e9c8:	15 11 80 c9 01       	adc    $0x1c98011,%eax
40e9cd:	0d 04 20 00 13       	or     $0x13002004,%eax
40e9d2:	00 05 07 02 12 51    	add    %al,0x51120207
40e9d8:	08 05 20 01 01 12    	or     %al,0x12010120
40e9de:	51                   	push   %ecx
40e9df:	07                   	pop    %es
40e9e0:	07                   	pop    %es
40e9e1:	03 12                	add    (%edx),%edx
40e9e3:	80 dd 02             	sbb    $0x2,%ch
40e9e6:	0e                   	push   %cs
40e9e7:	06                   	push   %es
40e9e8:	00 01                	add    %al,(%ecx)
40e9ea:	0e                   	push   %cs
40e9eb:	11 81 f1 07 20 01    	adc    %eax,0x12007f1(%ecx)
40e9f1:	11 45 12             	adc    %eax,0x12(%ebp)
40e9f4:	81 fd 07 07 03 12    	cmp    $0x12030707,%ebp
40e9fa:	80 e1 02             	and    $0x2,%cl
40e9fd:	0e                   	push   %cs
40e9fe:	03 20                	add    (%eax),%esp
40ea00:	00 02                	add    %al,(%edx)
40ea02:	06                   	push   %es
40ea03:	20 01                	and    %al,(%ecx)
40ea05:	01 11                	add    %edx,(%ecx)
40ea07:	82 01 08             	addb   $0x8,(%ecx)
40ea0a:	07                   	pop    %es
40ea0b:	03 1d 12 51 08 12    	add    0x12085112,%ebx
40ea11:	51                   	push   %ecx
40ea12:	05 20 00 1d 12       	add    $0x121d0020,%eax
40ea17:	51                   	push   %ecx
40ea18:	05 20 01 01 12       	add    $0x12010120,%eax
40ea1d:	59                   	pop    %ecx
40ea1e:	05 20 01 01 12       	add    $0x12010120,%eax
40ea23:	6d                   	insl   (%dx),%es:(%edi)
40ea24:	06                   	push   %es
40ea25:	20 01                	and    %al,(%ecx)
40ea27:	01 11                	add    %edx,(%ecx)
40ea29:	80 b9 06 20 01 01 11 	cmpb   $0x11,0x1012006(%ecx)
40ea30:	82 09 06             	orb    $0x6,(%ecx)
40ea33:	20 01                	and    %al,(%ecx)
40ea35:	01 12                	add    %edx,(%edx)
40ea37:	80 cd 04             	or     $0x4,%ch
40ea3a:	07                   	pop    %es
40ea3b:	02 02                	add    (%edx),%al
40ea3d:	0d 07 07 05 0d       	or     $0xd050707,%eax
40ea42:	02 02                	add    (%edx),%al
40ea44:	02 02                	add    (%edx),%al
40ea46:	04 07                	add    $0x7,%al
40ea48:	02 0d 02 05 15 12    	add    0x12150502,%cl
40ea4e:	58                   	pop    %eax
40ea4f:	01 0d 07 15 12 80    	add    %ecx,0x80121507
40ea55:	e5 02                	in     $0x2,%eax
40ea57:	0d 08 03 07 01       	or     $0x1070308,%eax
40ea5c:	08 03                	or     %al,(%ebx)
40ea5e:	20 00                	and    %al,(%eax)
40ea60:	0d 05 07 03 02       	or     $0x2030705,%eax
40ea65:	0d 08 04 20 01       	or     $0x1200408,%eax
40ea6a:	02 0d 06 20 01 13    	add    0x13012006,%cl
40ea70:	01 13                	add    %edx,(%ebx)
40ea72:	00 07                	add    %al,(%edi)
40ea74:	20 02                	and    %al,(%edx)
40ea76:	01 13                	add    %edx,(%ebx)
40ea78:	00 13                	add    %dl,(%ebx)
40ea7a:	01 04 20             	add    %eax,(%eax,%eiz,1)
40ea7d:	01 01                	add    %eax,(%ecx)
40ea7f:	0d 07 07 05 02       	or     $0x2050707,%eax
40ea84:	02 0d 08 02 05 20    	add    0x20050208,%cl
40ea8a:	01 02                	add    %eax,(%edx)
40ea8c:	13 00                	adc    (%eax),%eax
40ea8e:	0d 07 05 0d 12       	or     $0x120d0507,%eax
40ea93:	64 12 64 1d 12       	adc    %fs:0x12(%ebp,%ebx,1),%ah
40ea98:	64 1d 12 64 06 15    	fs sbb $0x15066412,%eax
40ea9e:	12 58 01             	adc    0x1(%eax),%bl
40eaa1:	13 00                	adc    (%eax),%eax
40eaa3:	02 06                	add    (%esi),%al
40eaa5:	0d 03 07 01 0e       	or     $0xe010703,%eax
40eaaa:	08 07                	or     %al,(%edi)
40eaac:	01 15 12 80 f5 01    	add    %edx,0x1f58012
40eab2:	0d 09 00 02 01       	or     $0x1020009,%eax
40eab7:	12 81 2d 11 82 19    	adc    0x1982112d(%ecx),%al
40eabd:	06                   	push   %es
40eabe:	15 12 80 f5 01       	adc    $0x1f58012,%eax
40eac3:	0d 09 07 03 12       	or     $0x12030709,%eax
40eac8:	80 f9 11             	cmp    $0x11,%cl
40eacb:	80 fd 0d             	cmp    $0xd,%ch
40eace:	05 00 00 11 80       	add    $0x80110000,%eax
40ead3:	fd                   	std
40ead4:	05 20 02 08 08       	add    $0x8080220,%eax
40ead9:	08 04 07             	or     %al,(%edi,%eax,1)
40eadc:	02 0d 0d 17 07 0a    	add    0xa07170d,%cl
40eae2:	08 15 12 80 f5 01    	or     %dl,0x1f58012
40eae8:	0a 12                	or     (%edx),%dl
40eaea:	81 01 1d 12 64 12    	addl   $0x1264121d,(%ecx)
40eaf0:	64 12 64 0a 02       	adc    %fs:0x2(%edx,%ecx,1),%ah
40eaf5:	02 02                	add    (%edx),%al
40eaf7:	06                   	push   %es
40eaf8:	15 12 80 f5 01       	adc    $0x1f58012,%eax
40eafd:	0a 03                	or     (%ebx),%al
40eaff:	20 00                	and    %al,(%eax)
40eb01:	0a 05 20 00 1d 13    	or     0x131d0020,%al
40eb07:	00 05 00 02 0e 0e    	add    %al,0xe0e0200
40eb0d:	1c 04                	sbb    $0x4,%al
40eb0f:	00 01                	add    %al,(%ecx)
40eb11:	01 0e                	add    %ecx,(%esi)
40eb13:	06                   	push   %es
40eb14:	00 02                	add    %al,(%edx)
40eb16:	0e                   	push   %cs
40eb17:	0e                   	push   %cs
40eb18:	1d 1c 09 07 07       	sbb    $0x707091c,%eax
40eb1d:	08 08                	or     %cl,(%eax)
40eb1f:	08 0d 0d 0d 02 09    	or     %cl,0x9020d0d
40eb25:	07                   	pop    %es
40eb26:	03 02                	add    (%edx),%eax
40eb28:	12 81 0d 12 81 0d    	adc    0xd81120d(%ecx),%al
40eb2e:	05 20 00 12 80       	add    $0x80120020,%eax
40eb33:	bd 07 20 02 01       	mov    $0x1022007,%ebp
40eb38:	0e                   	push   %cs
40eb39:	12 80 bd 05 07 01    	adc    0x10705bd(%eax),%al
40eb3f:	12 81 11 05 07 02    	adc    0x2070511(%ecx),%al
40eb45:	1c 1d                	sbb    $0x1d,%al
40eb47:	05 07 20 02 1c       	add    $0x1c022007,%eax
40eb4c:	0e                   	push   %cs
40eb4d:	12 81 11 02 1d 05    	adc    0x51d0211(%ecx),%al
40eb53:	06                   	push   %es
40eb54:	07                   	pop    %es
40eb55:	02 1c 12             	add    (%edx,%edx,1),%bl
40eb58:	81 15 08 b7 7a 5c 56 	adcl   $0xe0341956,0x5c7ab708
40eb5f:	19 34 e0
40eb62:	89 08                	mov    %ecx,(%eax)
40eb64:	b0 3f                	mov    $0x3f,%al
40eb66:	5f                   	pop    %edi
40eb67:	7f 11                	jg     0x40eb7a
40eb69:	d5 0a                	aad    $0xa
40eb6b:	3a 04 00             	cmp    (%eax,%eax,1),%al
40eb6e:	00 00                	add    %al,(%eax)
40eb70:	00 04 01             	add    %al,(%ecx,%eax,1)
40eb73:	00 00                	add    %al,(%eax)
40eb75:	00 04 02             	add    %al,(%edx,%eax,1)
40eb78:	00 00                	add    %al,(%eax)
40eb7a:	00 04 03             	add    %al,(%ebx,%eax,1)
40eb7d:	00 00                	add    %al,(%eax)
40eb7f:	00 04 04             	add    %al,(%esp,%eax,1)
40eb82:	00 00                	add    %al,(%eax)
40eb84:	00 04 05 00 00 00 09 	add    %al,0x9000000(,%eax,1)
40eb8b:	06                   	push   %es
40eb8c:	14 11                	adc    $0x11,%al
40eb8e:	0c 02                	or     $0x2,%al
40eb90:	00 02                	add    %al,(%edx)
40eb92:	00 00                	add    %al,(%eax)
40eb94:	02 06                	add    (%esi),%al
40eb96:	08 03                	or     %al,(%ebx)
40eb98:	06                   	push   %es
40eb99:	11 0c 09             	adc    %ecx,(%ecx,%ecx,1)
40eb9c:	06                   	push   %es
40eb9d:	14 12                	adc    $0x12,%al
40eb9f:	55                   	push   %ebp
40eba0:	02 00                	add    (%eax),%al
40eba2:	02 00                	add    (%eax),%al
40eba4:	00 03                	add    %al,(%ebx)
40eba6:	06                   	push   %es
40eba7:	12 08                	adc    (%eax),%cl
40eba9:	03 06                	add    (%esi),%eax
40ebab:	12 59 03             	adc    0x3(%ecx),%bl
40ebae:	06                   	push   %es
40ebaf:	12 5d 03             	adc    0x3(%ebp),%bl
40ebb2:	06                   	push   %es
40ebb3:	12 61 03             	adc    0x3(%ecx),%ah
40ebb6:	06                   	push   %es
40ebb7:	12 65 03             	adc    0x3(%ebp),%ah
40ebba:	06                   	push   %es
40ebbb:	12 69 03             	adc    0x3(%ecx),%ch
40ebbe:	06                   	push   %es
40ebbf:	12 6d 03             	adc    0x3(%ebp),%ch
40ebc2:	06                   	push   %es
40ebc3:	12 71 03             	adc    0x3(%ecx),%dh
40ebc6:	06                   	push   %es
40ebc7:	12 75 03             	adc    0x3(%ebp),%dh
40ebca:	06                   	push   %es
40ebcb:	12 79 04             	adc    0x4(%ecx),%bh
40ebce:	06                   	push   %es
40ebcf:	12 80 a1 04 06 12    	adc    0x120604a1(%eax),%al
40ebd5:	80 a5 09 06 14 11 2c 	andb   $0x2c,0x11140609(%ebp)
40ebdc:	02 00                	add    (%eax),%al
40ebde:	02 00                	add    (%eax),%al
40ebe0:	00 03                	add    %al,(%ebx)
40ebe2:	06                   	push   %es
40ebe3:	12 20                	adc    (%eax),%ah
40ebe5:	03 06                	add    (%esi),%eax
40ebe7:	12 24 03             	adc    (%ebx,%eax,1),%ah
40ebea:	06                   	push   %es
40ebeb:	11 28                	adc    %ebp,(%eax)