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)
40ebed:	03 06                	add    (%esi),%eax
40ebef:	11 2c 03             	adc    %ebp,(%ebx,%eax,1)
40ebf2:	06                   	push   %es
40ebf3:	12 1c 07             	adc    (%edi,%eax,1),%bl
40ebf6:	06                   	push   %es
40ebf7:	15 12 80 c5 01       	adc    $0x1c58012,%eax
40ebfc:	0d 03 06 12 60       	or     $0x60120603,%eax
40ec01:	03 06                	add    (%esi),%eax
40ec03:	12 4c 04 06          	adc    0x6(%esp,%eax,1),%cl
40ec07:	12 80 cd 04 06 12    	adc    0x120604cd(%eax),%al
40ec0d:	80 d1 04             	adc    $0x4,%cl
40ec10:	06                   	push   %es
40ec11:	12 80 d5 04 06 12    	adc    0x120604d5(%eax),%al
40ec17:	80 d9 03             	sbb    $0x3,%cl
40ec1a:	06                   	push   %es
40ec1b:	12 50 06             	adc    0x6(%eax),%dl
40ec1e:	06                   	push   %es
40ec1f:	15 12 58 01 0d       	adc    $0xd015812,%eax
40ec24:	08 06                	or     %al,(%esi)
40ec26:	15 12 80 e5 02       	adc    $0x2e58012,%eax
40ec2b:	0d 08 03 06 12       	or     $0x12060308,%eax
40ec30:	44                   	inc    %esp
40ec31:	03 06                	add    (%esi),%eax
40ec33:	12 40 02             	adc    0x2(%eax),%al
40ec36:	06                   	push   %es
40ec37:	02 03                	add    (%ebx),%al
40ec39:	06                   	push   %es
40ec3a:	1d 0d 07 06 15       	sbb    $0x1506070d,%eax
40ec3f:	12 80 f5 01 0d 03    	adc    0x30d01f5(%eax),%al
40ec45:	06                   	push   %es
40ec46:	12 6c 03 06          	adc    0x6(%ebx,%eax,1),%ch
40ec4a:	12 5c 04 06          	adc    0x6(%esp,%eax,1),%bl
40ec4e:	12 81 0d 04 06 12    	adc    0x1206040d(%ecx),%al
40ec54:	81 11 04 06 11 80    	adcl   $0x80110604,(%ecx)
40ec5a:	80 0c 20 01          	orb    $0x1,(%eax,%eiz,1)
40ec5e:	14 11                	adc    $0x11,%al
40ec60:	0c 02                	or     $0x2,%al
40ec62:	00 02                	add    %al,(%edx)
40ec64:	00 00                	add    %al,(%eax)
40ec66:	10 08                	adc    %cl,(%eax)
40ec68:	0a 20                	or     (%eax),%ah
40ec6a:	04 01                	add    $0x1,%al
40ec6c:	0e                   	push   %cs
40ec6d:	10 08                	adc    %cl,(%eax)
40ec6f:	10 08                	adc    %cl,(%eax)
40ec71:	10 08                	adc    %cl,(%eax)
40ec73:	0c 20                	or     $0x20,%al
40ec75:	02 01                	add    (%ecx),%al
40ec77:	08 14 11             	or     %dl,(%ecx,%edx,1)
40ec7a:	0c 02                	or     $0x2,%al
40ec7c:	00 02                	add    %al,(%edx)
40ec7e:	00 00                	add    %al,(%eax)
40ec80:	05 20 01 11 0c       	add    $0xc110120,%eax
40ec85:	03 05 20 01 03 11    	add    0x11030120,%eax
40ec8b:	0c 04                	or     $0x4,%al
40ec8d:	20 01                	and    %al,(%ecx)
40ec8f:	08 0e                	or     %cl,(%esi)
40ec91:	06                   	push   %es
40ec92:	20 02                	and    %al,(%edx)
40ec94:	01 1c 12             	add    %ebx,(%edx,%edx,1)
40ec97:	7d 07                	jge    0x40eca0
40ec99:	20 02                	and    %al,(%edx)
40ec9b:	01 1c 12             	add    %ebx,(%edx,%edx,1)
40ec9e:	80 81 07 20 02 01 1c 	addb   $0x1c,0x1022007(%ecx)
40eca5:	12 80 85 05 20 01    	adc    0x1200585(%eax),%al
40ecab:	01 11                	add    %edx,(%ecx)
40ecad:	0c 07                	or     $0x7,%al
40ecaf:	20 01                	and    %al,(%ecx)
40ecb1:	12 80 8d 11 0c 07    	adc    0x70c118d(%eax),%al
40ecb7:	20 02                	and    %al,(%edx)
40ecb9:	01 1c 12             	add    %ebx,(%edx,%edx,1)
40ecbc:	80 91 07 20 02 01 1c 	adcb   $0x1c,0x1022007(%ecx)
40ecc3:	12 80 95 05 20 01    	adc    0x1200595(%eax),%al
40ecc9:	08 11                	or     %dl,(%ecx)
40eccb:	0c 07                	or     $0x7,%al
40eccd:	20 02                	and    %al,(%edx)
40eccf:	01 12                	add    %edx,(%edx)
40ecd1:	20 12                	and    %dl,(%edx)
40ecd3:	24 08                	and    $0x8,%al
40ecd5:	20 03                	and    %al,(%ebx)
40ecd7:	02 08                	add    (%eax),%cl
40ecd9:	10 08                	adc    %cl,(%eax)
40ecdb:	10 08                	adc    %cl,(%eax)
40ecdd:	05 20 01 02 11       	add    $0x11020120,%eax
40ece2:	28 07                	sub    %al,(%edi)
40ece4:	20 02                	and    %al,(%edx)
40ece6:	01 11                	add    %edx,(%ecx)
40ece8:	28 11                	sub    %dl,(%ecx)
40ecea:	2c 0d                	sub    $0xd,%al
40ecec:	20 04 12             	and    %al,(%edx,%edx,1)
40ecef:	80 ad 11 28 11 2c 12 	subb   $0x12,0x2c112811(%ebp)
40ecf6:	80 b1 1c 06 20 01 01 	xorb   $0x1,0x120061c(%ecx)
40ecfd:	12 80 ad 0b 20 04    	adc    0x4200bad(%eax),%al
40ed03:	12 80 ad 08 08 12    	adc    0x120808ad(%eax),%al
40ed09:	80 b1 1c 07 20 01 12 	xorb   $0x12,0x120071c(%ecx)
40ed10:	80 8d 11 2c 0b 20 01 	orb    $0x1,0x200b2c11(%ebp)
40ed17:	14 11                	adc    $0x11,%al
40ed19:	2c 02                	sub    $0x2,%al
40ed1b:	00 02                	add    %al,(%edx)
40ed1d:	00 00                	add    %al,(%eax)
40ed1f:	08 05 20 01 11 2c    	or     %al,0x2c110120
40ed25:	03 05 20 01 03 11    	add    0x11030120,%eax
40ed2b:	2c 04                	sub    $0x4,%al
40ed2d:	20 01                	and    %al,(%ecx)
40ed2f:	0e                   	push   %cs
40ed30:	0e                   	push   %cs
40ed31:	04 00                	add    $0x0,%al
40ed33:	00 1d 05 05 20 00    	add    %bl,0x200505
40ed39:	12 80 c1 0a 20 02    	adc    0x2200ac1(%eax),%al
40ed3f:	01 0d 15 11 80 c9    	add    %ecx,0xc9801115
40ed45:	01 0d 07 20 03 01    	add    %ecx,0x1032007
40ed4b:	08 08                	or     %cl,(%eax)
40ed4d:	12 44 05 20          	adc    0x20(%ebp,%eax,1),%al
40ed51:	00 1d 12 64 06 20    	add    %bl,0x20066412
40ed57:	03 01                	add    (%ecx),%eax
40ed59:	0d 0d 0d 08 20       	or     $0x20080d0d,%eax
40ed5e:	00 15 12 80 f5 01    	add    %dl,0x1f58012
40ed64:	0d 06 20 03 01       	or     $0x1032006,%eax
40ed69:	08 08                	or     %cl,(%eax)
40ed6b:	08 09                	or     %cl,(%ecx)
40ed6d:	20 04 01             	and    %al,(%ecx,%eax,1)
40ed70:	12 6c 12 5c          	adc    0x5c(%edx,%edx,1),%ch
40ed74:	08 08                	or     %cl,(%eax)
40ed76:	05 20 02 01 02       	add    $0x2010220,%eax
40ed7b:	02 08                	add    (%eax),%cl
40ed7d:	20 05 01 0d 0d 0e    	and    %al,0xe0d0d01
40ed83:	08 08                	or     %cl,(%eax)
40ed85:	09 20                	or     %esp,(%eax)
40ed87:	04 01                	add    $0x1,%al
40ed89:	08 08                	or     %cl,(%eax)
40ed8b:	1d 0d 12 64 05       	sbb    $0x564120d,%eax
40ed90:	00 00                	add    %al,(%eax)
40ed92:	12 81 0d 05 00 00    	adc    0x50d(%ecx),%al
40ed98:	12 81 11 06 00 01    	adc    0x1000611(%ecx),%al
40ed9e:	01 12                	add    %edx,(%edx)
40eda0:	81 11 05 00 00 12    	adcl   $0x12000005,(%ecx)
40eda6:	81 15 03 28 00 0d 03 	adcl   $0x8002803,0xd002803
40edad:	28 00 08
40edb0:	05 08 00 12 81       	add    $0x81120008,%eax
40edb5:	0d 05 08 00 12       	or     $0x12000805,%eax
40edba:	81 11 04 08 00 1d    	adcl   $0x1d000804,(%ecx)
40edc0:	05 05 08 00 12       	add    $0x12000805,%eax
40edc5:	81 15 08 01 00 08 00 	adcl   $0x0,0x8000108
40edcc:	00 00 00
40edcf:	00 1e                	add    %bl,(%esi)
40edd1:	01 00                	add    %eax,(%eax)
40edd3:	01 00                	add    %eax,(%eax)
40edd5:	54                   	push   %esp
40edd6:	02 16                	add    (%esi),%dl
40edd8:	57                   	push   %edi
40edd9:	72 61                	jb     0x40ee3c
40eddb:	70 4e                	jo     0x40ee2b
40eddd:	6f                   	outsl  %ds:(%esi),(%dx)
40edde:	6e                   	outsb  %ds:(%esi),(%dx)
40eddf:	45                   	inc    %ebp
40ede0:	78 63                	js     0x40ee45
40ede2:	65 70 74             	gs jo  0x40ee59
40ede5:	69 6f 6e 54 68 72 6f 	imul   $0x6f726854,0x6e(%edi),%ebp
40edec:	77 73                	ja     0x40ee61
40edee:	01 08                	add    %ecx,(%eax)
40edf0:	01 00                	add    %eax,(%eax)
40edf2:	07                   	pop    %es
40edf3:	01 00                	add    %eax,(%eax)
40edf5:	00 00                	add    %al,(%eax)
40edf7:	00 13                	add    %dl,(%ebx)
40edf9:	01 00                	add    %eax,(%eax)
40edfb:	0e                   	push   %cs
40edfc:	56                   	push   %esi
40edfd:	65 72 73             	gs jb  0x40ee73
40ee00:	69 76 65 50 72 6f 6a 	imul   $0x6a6f7250,0x65(%esi),%esi
40ee07:	65 63 74 00 00       	arpl   %esi,%gs:0x0(%eax,%eax,1)
40ee0c:	05 01 00 00 00       	add    $0x1,%eax
40ee11:	00 17                	add    %dl,(%edi)
40ee13:	01 00                	add    %eax,(%eax)
40ee15:	12 43 6f             	adc    0x6f(%ebx),%al