40ac87:	e8 74 f6 ff ff       	call   0x40a300
40ac8c:	8b d0                	mov    %eax,%edx
40ac8e:	83 c4 14             	add    $0x14,%esp
40ac91:	81 fa 20 fc ff ff    	cmp    $0xfffffc20,%edx
40ac97:	0f 84 aa ec 07 00    	je     0x489947
40ac9d:	85 d2                	test   %edx,%edx
40ac9f:	0f 85 e6 08 08 00    	jne    0x48b58b
40aca5:	0f b7 47 02          	movzwl 0x2(%edi),%eax
40aca9:	8d 3c 47             	lea    (%edi,%eax,2),%edi
40acac:	8b 45 f4             	mov    -0xc(%ebp),%eax
40acaf:	89 83 b0 00 00 00    	mov    %eax,0xb0(%ebx)
40acb5:	66 83 3f 77          	cmpw   $0x77,(%edi)
40acb9:	0f 85 b5 f8 ff ff    	jne    0x40a574
40acbf:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40acc2:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
40acc8:	e9 c3 f6 ff ff       	jmp    0x40a390
40accd:	f6 c1 01             	test   $0x1,%cl
40acd0:	75 42                	jne    0x40ad14
40acd2:	33 d2                	xor    %edx,%edx
40acd4:	e9 0b ff ff ff       	jmp    0x40abe4
40acd9:	8b 45 f8             	mov    -0x8(%ebp),%eax
40acdc:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40acdf:	42                   	inc    %edx
40ace0:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40ace3:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ace6:	3b 55 e8             	cmp    -0x18(%ebp),%edx
40ace9:	0f 8d 29 fa ff ff    	jge    0x40a718
40acef:	e9 d0 f9 ff ff       	jmp    0x40a6c4
40acf4:	89 55 e0             	mov    %edx,-0x20(%ebp)
40acf7:	e9 48 8f 07 00       	jmp    0x483c44
40acfc:	83 c7 02             	add    $0x2,%edi
40acff:	e9 05 8f 07 00       	jmp    0x483c09
40ad04:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ad07:	e9 c4 92 07 00       	jmp    0x483fd0
40ad0c:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40ad0f:	e9 d1 98 07 00       	jmp    0x4845e5
40ad14:	ba 01 00 00 00       	mov    $0x1,%edx
40ad19:	e9 c6 fe ff ff       	jmp    0x40abe4
40ad1e:	be 02 00 00 00       	mov    $0x2,%esi
40ad23:	e9 0c fc ff ff       	jmp    0x40a934
40ad28:	33 d2                	xor    %edx,%edx
40ad2a:	e9 12 fd ff ff       	jmp    0x40aa41
40ad2f:	90                   	nop
40ad30:	97                   	xchg   %eax,%edi
40ad31:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40ad32:	40                   	inc    %eax
40ad33:	00 04 ad 40 00 78 40 	add    %al,0x40780040(,%ebp,4)
40ad3a:	48                   	dec    %eax
40ad3b:	00 98 40 48 00 50    	add    %bl,0x50004840(%eax)
40ad41:	42                   	inc    %edx
40ad42:	48                   	dec    %eax
40ad43:	00 42 46             	add    %al,0x46(%edx)
40ad46:	48                   	dec    %eax
40ad47:	00 a8 46 48 00 0e    	add    %ch,0xe004846(%eax)
40ad4d:	47                   	inc    %edi
40ad4e:	48                   	dec    %eax
40ad4f:	00 74 47 48          	add    %dh,0x48(%edi,%eax,2)
40ad53:	00 da                	add    %bl,%dl
40ad55:	47                   	inc    %edi
40ad56:	48                   	dec    %eax
40ad57:	00 40 48             	add    %al,0x48(%eax)
40ad5a:	48                   	dec    %eax
40ad5b:	00 41 45             	add    %al,0x45(%ecx)
40ad5e:	48                   	dec    %eax
40ad5f:	00 0c ad 40 00 2b 46 	add    %cl,0x462b0040(,%ebp,4)
40ad66:	48                   	dec    %eax
40ad67:	00 57 a8             	add    %dl,-0x58(%edi)
40ad6a:	40                   	inc    %eax
40ad6b:	00 a6 48 48 00 86    	add    %ah,-0x79ffb7b8(%esi)
40ad71:	49                   	dec    %ecx
40ad72:	48                   	dec    %eax
40ad73:	00 5a 4a             	add    %bl,0x4a(%edx)
40ad76:	48                   	dec    %eax
40ad77:	00 2e                	add    %ch,(%esi)
40ad79:	4b                   	dec    %ebx
40ad7a:	48                   	dec    %eax
40ad7b:	00 b8 4b 48 00 7d    	add    %bh,0x7d00484b(%eax)
40ad81:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ad82:	40                   	inc    %eax
40ad83:	00 d5                	add    %dl,%ch
40ad85:	41                   	inc    %ecx
40ad86:	48                   	dec    %eax
40ad87:	00 c1                	add    %al,%cl
40ad89:	41                   	inc    %ecx
40ad8a:	48                   	dec    %eax
40ad8b:	00 b3 41 48 00 a9    	add    %dh,-0x56ffb7bf(%ebx)
40ad91:	40                   	inc    %eax
40ad92:	48                   	dec    %eax
40ad93:	00 bf 3f 48 00 e4    	add    %bh,-0x1bffb7c1(%edi)
40ad99:	3f                   	aas
40ad9a:	48                   	dec    %eax
40ad9b:	00 06                	add    %al,(%esi)
40ad9d:	a9 40 00 63 a7       	test   $0xa7630040,%eax
40ada2:	40                   	inc    %eax
40ada3:	00 59 5c             	add    %bl,0x5c(%ecx)
40ada6:	48                   	dec    %eax
40ada7:	00 2b                	add    %ch,(%ebx)
40ada9:	57                   	push   %edi
40adaa:	48                   	dec    %eax
40adab:	00 bc 56 48 00 a3 56 	add    %bh,0x56a30048(%esi,%edx,2)
40adb2:	48                   	dec    %eax
40adb3:	00 ea                	add    %ch,%dl
40adb5:	56                   	push   %esi
40adb6:	48                   	dec    %eax
40adb7:	00 01                	add    %al,(%ecx)
40adb9:	57                   	push   %edi
40adba:	48                   	dec    %eax
40adbb:	00 18                	add    %bl,(%eax)
40adbd:	57                   	push   %edi
40adbe:	48                   	dec    %eax
40adbf:	00 b5 56 48 00 4d    	add    %dh,0x4d004856(%ebp)
40adc5:	5e                   	pop    %esi
40adc6:	48                   	dec    %eax
40adc7:	00 b7 5d 48 00 a5    	add    %dh,-0x5affb7a3(%edi)
40adcd:	5d                   	pop    %ebp
40adce:	48                   	dec    %eax
40adcf:	00 ea                	add    %ch,%dl
40add1:	5d                   	pop    %ebp
40add2:	48                   	dec    %eax
40add3:	00 06                	add    %al,(%esi)
40add5:	5e                   	pop    %esi
40add6:	48                   	dec    %eax
40add7:	00 1f                	add    %bl,(%edi)
40add9:	5e                   	pop    %esi
40adda:	48                   	dec    %eax
40addb:	00 34 5e             	add    %dh,(%esi,%ebx,2)
40adde:	48                   	dec    %eax
40addf:	00 2e                	add    %ch,(%esi)
40ade1:	aa                   	stos   %al,%es:(%edi)
40ade2:	40                   	inc    %eax
40ade3:	00 88 64 48 00 6c    	add    %cl,0x6c004864(%eax)
40ade9:	64 48                	fs dec %eax
40adeb:	00 a7 64 48 00 bc    	add    %ah,-0x43ffb79c(%edi)
40adf1:	64 48                	fs dec %eax
40adf3:	00 d1                	add    %dl,%cl
40adf5:	64 48                	fs dec %eax
40adf7:	00 e9                	add    %ch,%cl
40adf9:	64 48                	fs dec %eax
40adfb:	00 ce                	add    %cl,%dh
40adfd:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40adfe:	40                   	inc    %eax
40adff:	00 f7                	add    %dh,%bh
40ae01:	52                   	push   %edx
40ae02:	48                   	dec    %eax
40ae03:	00 5a 4f             	add    %bl,0x4f(%edx)
40ae06:	48                   	dec    %eax
40ae07:	00 be 4e 48 00 1d    	add    %bh,0x1d00484e(%esi)
40ae0d:	3a 48 00             	cmp    0x0(%eax),%cl
40ae10:	43                   	inc    %ebx
40ae11:	39 48 00             	cmp    %ecx,0x0(%eax)
40ae14:	14 ac                	adc    $0xac,%al
40ae16:	40                   	inc    %eax
40ae17:	00 e7                	add    %ah,%bh
40ae19:	a3 40 00 c9 38       	mov    %eax,0x38c90040
40ae1e:	48                   	dec    %eax
40ae1f:	00 24 37             	add    %ah,(%edi,%esi,1)
40ae22:	48                   	dec    %eax
40ae23:	00 fb                	add    %bh,%bl
40ae25:	37                   	aaa
40ae26:	48                   	dec    %eax
40ae27:	00 90 a3 40 00 e6    	add    %dl,-0x19ffbf5d(%eax)
40ae2d:	32 48 00             	xor    0x0(%eax),%cl
40ae30:	c1 3d 48 00 76 a9 40 	sarl   $0x40,0xa9760048
40ae37:	00 f4                	add    %dh,%ah
40ae39:	ac                   	lods   %ds:(%esi),%al
40ae3a:	40                   	inc    %eax
40ae3b:	00 c7                	add    %al,%bh
40ae3d:	33 48 00             	xor    0x0(%eax),%ecx
40ae40:	2a ac 40 00 c9 3b 48 	sub    0x483bc900(%eax,%eax,2),%ch
40ae47:	00 22                	add    %ah,(%edx)
40ae49:	3c 48                	cmp    $0x48,%al
40ae4b:	00 d1                	add    %dl,%cl
40ae4d:	b5 48                	mov    $0x48,%ch
40ae4f:	00 98 b6 48 00 d1    	add    %bl,-0x2effb74a(%eax)
40ae55:	b6 48                	mov    $0x48,%dh
40ae57:	00 3a                	add    %bh,(%edx)
40ae59:	b7 48                	mov    $0x48,%bh
40ae5b:	00 bc 32 48 00 7b b7 	add    %bh,-0x4884ffb8(%edx,%esi,1)
40ae62:	48                   	dec    %eax
40ae63:	00 c2                	add    %al,%dl
40ae65:	b7 48                	mov    $0x48,%bh
40ae67:	00 5f b6             	add    %bl,-0x4a(%edi)
40ae6a:	48                   	dec    %eax
40ae6b:	00 74 a5 40          	add    %dh,0x40(%ebp,%eiz,4)
40ae6f:	00 b9 36 48 00 fc    	add    %bh,-0x3ffb7ca(%ecx)
40ae75:	ac                   	lods   %ds:(%esi),%al
40ae76:	40                   	inc    %eax
40ae77:	00 65 b8             	add    %ah,-0x48(%ebp)
40ae7a:	48                   	dec    %eax
40ae7b:	00 00                	add    %al,(%eax)
40ae7d:	01 02                	add    %eax,(%edx)
40ae7f:	03 04 04             	add    (%esp,%eax,1),%eax
40ae82:	05 06 07 08 09       	add    $0x9080706,%eax
40ae87:	0a 0b                	or     (%ebx),%cl
40ae89:	0c 0d                	or     $0xd,%al
40ae8b:	0e                   	push   %cs
40ae8c:	0e                   	push   %cs
40ae8d:	0f 10 11             	movups (%ecx),%xmm2
40ae90:	12 13                	adc    (%ebx),%dl
40ae92:	14 15                	adc    $0x15,%al
40ae94:	16                   	push   %ss
40ae95:	17                   	pop    %ss
40ae96:	18 19                	sbb    %bl,(%ecx)
40ae98:	1a 1b                	sbb    (%ebx),%bl
40ae9a:	1c 1d                	sbb    $0x1d,%al
40ae9c:	1d 1e 1e 1e 1e       	sbb    $0x1e1e1e1e,%eax
40aea1:	1e                   	push   %ds
40aea2:	1e                   	push   %ds
40aea3:	1f                   	pop    %ds
40aea4:	1f                   	pop    %ds
40aea5:	20 21                	and    %ah,(%ecx)
40aea7:	22 23                	and    (%ebx),%ah
40aea9:	24 1e                	and    $0x1e,%al
40aeab:	1e                   	push   %ds
40aeac:	1e                   	push   %ds
40aead:	1e                   	push   %ds
40aeae:	1e                   	push   %ds
40aeaf:	1e                   	push   %ds
40aeb0:	1f                   	pop    %ds
40aeb1:	1f                   	pop    %ds
40aeb2:	20 21                	and    %ah,(%ecx)
40aeb4:	22 23                	and    (%ebx),%ah
40aeb6:	24 25                	and    $0x25,%al
40aeb8:	25 25 25 25 25       	and    $0x25252525,%eax
40aebd:	26 26 27             	es es daa
40aec0:	28 29                	sub    %ch,(%ecx)
40aec2:	2a 2b                	sub    (%ebx),%ch
40aec4:	25 25 25 25 25       	and    $0x25252525,%eax
40aec9:	25 26 26 27 28       	and    $0x28272626,%eax
40aece:	29 2a                	sub    %ebp,(%edx)
40aed0:	2b 2c 2c             	sub    (%esp,%ebp,1),%ebp
40aed3:	2c 2c                	sub    $0x2c,%al
40aed5:	2c 2c                	sub    $0x2c,%al
40aed7:	2d 2d 2e 2f 30       	sub    $0x302f2e2d,%eax
40aedc:	31 32                	xor    %esi,(%edx)
40aede:	52                   	push   %edx
40aedf:	52                   	push   %edx
40aee0:	52                   	push   %edx
40aee1:	52                   	push   %edx
40aee2:	52                   	push   %edx
40aee3:	52                   	push   %edx
40aee4:	52                   	push   %edx
40aee5:	52                   	push   %edx
40aee6:	52                   	push   %edx
40aee7:	52                   	push   %edx
40aee8:	52                   	push   %edx
40aee9:	52                   	push   %edx
40aeea:	33 33                	xor    (%ebx),%esi
40aeec:	34 35                	xor    $0x35,%al
40aeee:	35 36 36 37 38       	xor    $0x38373636,%eax
40aef3:	39 3a                	cmp    %edi,(%edx)
40aef5:	3a 3a                	cmp    (%edx),%bh
40aef7:	3a 3b                	cmp    (%ebx),%bh
40aef9:	3c 3d                	cmp    $0x3d,%al
40aefb:	3c 3d                	cmp    $0x3d,%al
40aefd:	3e 3f                	ds aas
40aeff:	3e 40                	ds inc %eax
40af01:	41                   	inc    %ecx
40af02:	42                   	inc    %edx
40af03:	43                   	inc    %ebx
40af04:	3e 40                	ds inc %eax
40af06:	41                   	inc    %ecx
40af07:	42                   	inc    %edx
40af08:	43                   	inc    %ebx
40af09:	52                   	push   %edx
40af0a:	52                   	push   %edx
40af0b:	52                   	push   %edx
40af0c:	52                   	push   %edx
40af0d:	52                   	push   %edx
40af0e:	44                   	inc    %esp
40af0f:	45                   	inc    %ebp
40af10:	46                   	inc    %esi
40af11:	47                   	inc    %edi
40af12:	48                   	dec    %eax
40af13:	49                   	dec    %ecx
40af14:	4a                   	dec    %edx
40af15:	4b                   	dec    %ebx
40af16:	4c                   	dec    %esp
40af17:	4d                   	dec    %ebp
40af18:	4e                   	dec    %esi
40af19:	4f                   	dec    %edi
40af1a:	00 00                	add    %al,(%eax)
40af1c:	50                   	push   %eax
40af1d:	51                   	push   %ecx
40af1e:	8b ff                	mov    %edi,%edi
40af20:	c8 ab 40 00          	enter  $0x40ab,$0x0
40af24:	f7 50 48             	notl   0x48(%eax)
40af27:	00 00                	add    %al,(%eax)
40af29:	00 00                	add    %al,(%eax)
40af2b:	00 00                	add    %al,(%eax)
40af2d:	00 01                	add    %al,(%ecx)
40af2f:	01 00                	add    %eax,(%eax)
40af31:	00 00                	add    %al,(%eax)
40af33:	01 55 8b             	add    %edx,-0x75(%ebp)
40af36:	ec                   	in     (%dx),%al
40af37:	5d                   	pop    %ebp
40af38:	e9 1f 8a 01 00       	jmp    0x42395c
40af3d:	e9 5b 6d 01 00       	jmp    0x421c9d
40af42:	cc                   	int3
40af43:	cc                   	int3
40af44:	cc                   	int3
40af45:	cc                   	int3
40af46:	cc                   	int3
40af47:	cc                   	int3
40af48:	cc                   	int3
40af49:	cc                   	int3
40af4a:	cc                   	int3
40af4b:	cc                   	int3
40af4c:	cc                   	int3
40af4d:	cc                   	int3
40af4e:	cc                   	int3
40af4f:	cc                   	int3
40af50:	55                   	push   %ebp
40af51:	8b ec                	mov    %esp,%ebp
40af53:	83 ec 4c             	sub    $0x4c,%esp
40af56:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40af59:	33 c9                	xor    %ecx,%ecx
40af5b:	b8 08 00 00 00       	mov    $0x8,%eax
40af60:	ba 02 00 00 00       	mov    $0x2,%edx
40af65:	f7 e2                	mul    %edx
40af67:	0f 90 c1             	seto   %cl
40af6a:	53                   	push   %ebx
40af6b:	56                   	push   %esi
40af6c:	57                   	push   %edi
40af6d:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40af74:	c7 45 cc 08 00 00 00 	movl   $0x8,-0x34(%ebp)
40af7b:	f7 d9                	neg    %ecx
40af7d:	0b c8                	or     %eax,%ecx
40af7f:	51                   	push   %ecx
40af80:	e8 65 45 01 00       	call   0x41f4ea
40af85:	83 c4 04             	add    $0x4,%esp
40af88:	33 c9                	xor    %ecx,%ecx
40af8a:	6a 04                	push   $0x4
40af8c:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40af8f:	66 89 08             	mov    %cx,(%eax)
40af92:	e8 53 45 01 00       	call   0x41f4ea
40af97:	8b f0                	mov    %eax,%esi
40af99:	83 c4 04             	add    $0x4,%esp
40af9c:	89 75 ec             	mov    %esi,-0x14(%ebp)
40af9f:	85 f6                	test   %esi,%esi
40afa1:	0f 84 b1 01 00 00    	je     0x40b158
40afa7:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
40afad:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40afb0:	33 ff                	xor    %edi,%edi
40afb2:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40afb5:	89 75 d0             	mov    %esi,-0x30(%ebp)
40afb8:	8b 01                	mov    (%ecx),%eax
40afba:	89 7d fc             	mov    %edi,-0x4(%ebp)
40afbd:	89 7d f4             	mov    %edi,-0xc(%ebp)
40afc0:	83 f8 01             	cmp    $0x1,%eax