40ac3d:	ff 75 f8             	push   -0x8(%ebp)
40ac40:	e8 64 dd ff ff       	call   0x4089a9
40ac45:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ac48:	59                   	pop    %ecx
40ac49:	8d 65 e4             	lea    -0x1c(%ebp),%esp
40ac4c:	5f                   	pop    %edi
40ac4d:	5e                   	pop    %esi
40ac4e:	5b                   	pop    %ebx
40ac4f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ac52:	33 cd                	xor    %ebp,%ecx
40ac54:	e8 dc b2 ff ff       	call   0x405f35
40ac59:	c9                   	leave
40ac5a:	c3                   	ret
40ac5b:	55                   	push   %ebp
40ac5c:	8b ec                	mov    %esp,%ebp
40ac5e:	83 ec 10             	sub    $0x10,%esp
40ac61:	ff 75 08             	push   0x8(%ebp)
40ac64:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ac67:	e8 58 dd ff ff       	call   0x4089c4
40ac6c:	ff 75 24             	push   0x24(%ebp)
40ac6f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ac72:	ff 75 20             	push   0x20(%ebp)
40ac75:	ff 75 1c             	push   0x1c(%ebp)
40ac78:	ff 75 18             	push   0x18(%ebp)
40ac7b:	ff 75 14             	push   0x14(%ebp)
40ac7e:	ff 75 10             	push   0x10(%ebp)
40ac81:	ff 75 0c             	push   0xc(%ebp)
40ac84:	e8 71 fd ff ff       	call   0x40a9fa
40ac89:	83 c4 1c             	add    $0x1c,%esp
40ac8c:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40ac90:	74 07                	je     0x40ac99
40ac92:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ac95:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40ac99:	c9                   	leave
40ac9a:	c3                   	ret
40ac9b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40ac9f:	53                   	push   %ebx
40aca0:	33 db                	xor    %ebx,%ebx
40aca2:	3b cb                	cmp    %ebx,%ecx
40aca4:	56                   	push   %esi
40aca5:	57                   	push   %edi
40aca6:	74 08                	je     0x40acb0
40aca8:	8b 7c 24 14          	mov    0x14(%esp),%edi
40acac:	3b fb                	cmp    %ebx,%edi
40acae:	77 1b                	ja     0x40accb
40acb0:	e8 45 e7 ff ff       	call   0x4093fa
40acb5:	6a 16                	push   $0x16
40acb7:	5e                   	pop    %esi
40acb8:	89 30                	mov    %esi,(%eax)
40acba:	53                   	push   %ebx
40acbb:	53                   	push   %ebx
40acbc:	53                   	push   %ebx
40acbd:	53                   	push   %ebx
40acbe:	53                   	push   %ebx
40acbf:	e8 8c c9 ff ff       	call   0x407650
40acc4:	83 c4 14             	add    $0x14,%esp
40acc7:	8b c6                	mov    %esi,%eax
40acc9:	eb 31                	jmp    0x40acfc
40accb:	8b 74 24 18          	mov    0x18(%esp),%esi
40accf:	3b f3                	cmp    %ebx,%esi
40acd1:	75 04                	jne    0x40acd7
40acd3:	88 19                	mov    %bl,(%ecx)
40acd5:	eb d9                	jmp    0x40acb0
40acd7:	8b d1                	mov    %ecx,%edx
40acd9:	8a 06                	mov    (%esi),%al
40acdb:	88 02                	mov    %al,(%edx)
40acdd:	42                   	inc    %edx
40acde:	46                   	inc    %esi
40acdf:	3a c3                	cmp    %bl,%al
40ace1:	74 03                	je     0x40ace6
40ace3:	4f                   	dec    %edi
40ace4:	75 f3                	jne    0x40acd9
40ace6:	3b fb                	cmp    %ebx,%edi
40ace8:	75 10                	jne    0x40acfa
40acea:	88 19                	mov    %bl,(%ecx)
40acec:	e8 09 e7 ff ff       	call   0x4093fa
40acf1:	6a 22                	push   $0x22
40acf3:	59                   	pop    %ecx
40acf4:	89 08                	mov    %ecx,(%eax)
40acf6:	8b f1                	mov    %ecx,%esi
40acf8:	eb c0                	jmp    0x40acba
40acfa:	33 c0                	xor    %eax,%eax
40acfc:	5f                   	pop    %edi
40acfd:	5e                   	pop    %esi
40acfe:	5b                   	pop    %ebx
40acff:	c3                   	ret
40ad00:	6a 0c                	push   $0xc
40ad02:	68 d0 ab 41 00       	push   $0x41abd0
40ad07:	e8 3c 29 00 00       	call   0x40d648
40ad0c:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40ad10:	8b 75 08             	mov    0x8(%ebp),%esi
40ad13:	3b 35 e0 e5 41 00    	cmp    0x41e5e0,%esi
40ad19:	77 22                	ja     0x40ad3d
40ad1b:	6a 04                	push   $0x4
40ad1d:	e8 f5 1d 00 00       	call   0x40cb17
40ad22:	59                   	pop    %ecx
40ad23:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ad27:	56                   	push   %esi
40ad28:	e8 37 26 00 00       	call   0x40d364
40ad2d:	59                   	pop    %ecx
40ad2e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ad31:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ad38:	e8 09 00 00 00       	call   0x40ad46
40ad3d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ad40:	e8 48 29 00 00       	call   0x40d68d
40ad45:	c3                   	ret
40ad46:	6a 04                	push   $0x4
40ad48:	e8 f2 1c 00 00       	call   0x40ca3f
40ad4d:	59                   	pop    %ecx
40ad4e:	c3                   	ret
40ad4f:	55                   	push   %ebp
40ad50:	8b 6c 24 08          	mov    0x8(%esp),%ebp
40ad54:	83 fd e0             	cmp    $0xffffffe0,%ebp
40ad57:	0f 87 9f 00 00 00    	ja     0x40adfc
40ad5d:	53                   	push   %ebx
40ad5e:	8b 1d c0 70 41 00    	mov    0x4170c0,%ebx
40ad64:	56                   	push   %esi
40ad65:	57                   	push   %edi
40ad66:	33 f6                	xor    %esi,%esi
40ad68:	39 35 5c dd 41 00    	cmp    %esi,0x41dd5c
40ad6e:	8b fd                	mov    %ebp,%edi
40ad70:	75 18                	jne    0x40ad8a
40ad72:	e8 77 2f 00 00       	call   0x40dcee
40ad77:	6a 1e                	push   $0x1e
40ad79:	e8 d0 2d 00 00       	call   0x40db4e
40ad7e:	68 ff 00 00 00       	push   $0xff
40ad83:	e8 08 2b 00 00       	call   0x40d890
40ad88:	59                   	pop    %ecx
40ad89:	59                   	pop    %ecx
40ad8a:	a1 f0 e5 41 00       	mov    0x41e5f0,%eax
40ad8f:	83 f8 01             	cmp    $0x1,%eax
40ad92:	75 0e                	jne    0x40ada2
40ad94:	3b ee                	cmp    %esi,%ebp
40ad96:	74 04                	je     0x40ad9c
40ad98:	8b c5                	mov    %ebp,%eax
40ad9a:	eb 03                	jmp    0x40ad9f
40ad9c:	33 c0                	xor    %eax,%eax
40ad9e:	40                   	inc    %eax
40ad9f:	50                   	push   %eax
40ada0:	eb 1e                	jmp    0x40adc0
40ada2:	83 f8 03             	cmp    $0x3,%eax
40ada5:	75 0b                	jne    0x40adb2
40ada7:	55                   	push   %ebp
40ada8:	e8 53 ff ff ff       	call   0x40ad00
40adad:	3b c6                	cmp    %esi,%eax
40adaf:	59                   	pop    %ecx
40adb0:	75 17                	jne    0x40adc9
40adb2:	3b ee                	cmp    %esi,%ebp
40adb4:	75 03                	jne    0x40adb9
40adb6:	33 ff                	xor    %edi,%edi
40adb8:	47                   	inc    %edi
40adb9:	83 c7 0f             	add    $0xf,%edi
40adbc:	83 e7 f0             	and    $0xfffffff0,%edi
40adbf:	57                   	push   %edi
40adc0:	56                   	push   %esi
40adc1:	ff 35 5c dd 41 00    	push   0x41dd5c
40adc7:	ff d3                	call   *%ebx
40adc9:	8b f0                	mov    %eax,%esi
40adcb:	85 f6                	test   %esi,%esi
40adcd:	75 26                	jne    0x40adf5
40adcf:	39 05 88 e3 41 00    	cmp    %eax,0x41e388
40add5:	6a 0c                	push   $0xc
40add7:	5f                   	pop    %edi
40add8:	74 0d                	je     0x40ade7
40adda:	55                   	push   %ebp
40addb:	e8 23 14 00 00       	call   0x40c203
40ade0:	85 c0                	test   %eax,%eax
40ade2:	59                   	pop    %ecx
40ade3:	75 81                	jne    0x40ad66
40ade5:	eb 07                	jmp    0x40adee
40ade7:	e8 0e e6 ff ff       	call   0x4093fa
40adec:	89 38                	mov    %edi,(%eax)
40adee:	e8 07 e6 ff ff       	call   0x4093fa
40adf3:	89 38                	mov    %edi,(%eax)
40adf5:	5f                   	pop    %edi
40adf6:	8b c6                	mov    %esi,%eax
40adf8:	5e                   	pop    %esi
40adf9:	5b                   	pop    %ebx
40adfa:	5d                   	pop    %ebp
40adfb:	c3                   	ret
40adfc:	55                   	push   %ebp
40adfd:	e8 01 14 00 00       	call   0x40c203
40ae02:	59                   	pop    %ecx
40ae03:	e8 f2 e5 ff ff       	call   0x4093fa
40ae08:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40ae0e:	33 c0                	xor    %eax,%eax
40ae10:	5d                   	pop    %ebp
40ae11:	c3                   	ret
40ae12:	6a 0c                	push   $0xc
40ae14:	68 f0 ab 41 00       	push   $0x41abf0
40ae19:	e8 2a 28 00 00       	call   0x40d648
40ae1e:	6a 0e                	push   $0xe
40ae20:	e8 f2 1c 00 00       	call   0x40cb17
40ae25:	59                   	pop    %ecx
40ae26:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ae2a:	8b 75 08             	mov    0x8(%ebp),%esi
40ae2d:	8b 4e 04             	mov    0x4(%esi),%ecx
40ae30:	85 c9                	test   %ecx,%ecx
40ae32:	74 2f                	je     0x40ae63
40ae34:	a1 14 da 41 00       	mov    0x41da14,%eax
40ae39:	ba 10 da 41 00       	mov    $0x41da10,%edx
40ae3e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ae41:	85 c0                	test   %eax,%eax
40ae43:	74 11                	je     0x40ae56
40ae45:	39 08                	cmp    %ecx,(%eax)
40ae47:	75 2c                	jne    0x40ae75
40ae49:	8b 48 04             	mov    0x4(%eax),%ecx
40ae4c:	89 4a 04             	mov    %ecx,0x4(%edx)
40ae4f:	50                   	push   %eax
40ae50:	e8 fe b5 ff ff       	call   0x406453
40ae55:	59                   	pop    %ecx
40ae56:	ff 76 04             	push   0x4(%esi)
40ae59:	e8 f5 b5 ff ff       	call   0x406453
40ae5e:	59                   	pop    %ecx
40ae5f:	83 66 04 00          	andl   $0x0,0x4(%esi)
40ae63:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ae6a:	e8 0a 00 00 00       	call   0x40ae79
40ae6f:	e8 19 28 00 00       	call   0x40d68d
40ae74:	c3                   	ret
40ae75:	8b d0                	mov    %eax,%edx
40ae77:	eb c5                	jmp    0x40ae3e
40ae79:	6a 0e                	push   $0xe
40ae7b:	e8 bf 1b 00 00       	call   0x40ca3f
40ae80:	59                   	pop    %ecx
40ae81:	c3                   	ret
40ae82:	cc                   	int3
40ae83:	cc                   	int3
40ae84:	cc                   	int3
40ae85:	cc                   	int3
40ae86:	cc                   	int3
40ae87:	cc                   	int3
40ae88:	cc                   	int3
40ae89:	cc                   	int3
40ae8a:	cc                   	int3
40ae8b:	cc                   	int3
40ae8c:	cc                   	int3
40ae8d:	cc                   	int3
40ae8e:	cc                   	int3
40ae8f:	cc                   	int3
40ae90:	8b 54 24 04          	mov    0x4(%esp),%edx
40ae94:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40ae98:	f7 c2 03 00 00 00    	test   $0x3,%edx
40ae9e:	75 3c                	jne    0x40aedc
40aea0:	8b 02                	mov    (%edx),%eax
40aea2:	3a 01                	cmp    (%ecx),%al
40aea4:	75 2e                	jne    0x40aed4
40aea6:	0a c0                	or     %al,%al
40aea8:	74 26                	je     0x40aed0
40aeaa:	3a 61 01             	cmp    0x1(%ecx),%ah
40aead:	75 25                	jne    0x40aed4
40aeaf:	0a e4                	or     %ah,%ah
40aeb1:	74 1d                	je     0x40aed0
40aeb3:	c1 e8 10             	shr    $0x10,%eax
40aeb6:	3a 41 02             	cmp    0x2(%ecx),%al
40aeb9:	75 19                	jne    0x40aed4
40aebb:	0a c0                	or     %al,%al
40aebd:	74 11                	je     0x40aed0
40aebf:	3a 61 03             	cmp    0x3(%ecx),%ah
40aec2:	75 10                	jne    0x40aed4
40aec4:	83 c1 04             	add    $0x4,%ecx
40aec7:	83 c2 04             	add    $0x4,%edx
40aeca:	0a e4                	or     %ah,%ah
40aecc:	75 d2                	jne    0x40aea0
40aece:	8b ff                	mov    %edi,%edi
40aed0:	33 c0                	xor    %eax,%eax
40aed2:	c3                   	ret
40aed3:	90                   	nop
40aed4:	1b c0                	sbb    %eax,%eax
40aed6:	d1 e0                	shl    $1,%eax
40aed8:	83 c0 01             	add    $0x1,%eax
40aedb:	c3                   	ret
40aedc:	f7 c2 01 00 00 00    	test   $0x1,%edx
40aee2:	74 18                	je     0x40aefc
40aee4:	8a 02                	mov    (%edx),%al
40aee6:	83 c2 01             	add    $0x1,%edx
40aee9:	3a 01                	cmp    (%ecx),%al
40aeeb:	75 e7                	jne    0x40aed4
40aeed:	83 c1 01             	add    $0x1,%ecx
40aef0:	0a c0                	or     %al,%al
40aef2:	74 dc                	je     0x40aed0
40aef4:	f7 c2 02 00 00 00    	test   $0x2,%edx
40aefa:	74 a4                	je     0x40aea0
40aefc:	66 8b 02             	mov    (%edx),%ax
40aeff:	83 c2 02             	add    $0x2,%edx
40af02:	3a 01                	cmp    (%ecx),%al
40af04:	75 ce                	jne    0x40aed4
40af06:	0a c0                	or     %al,%al
40af08:	74 c6                	je     0x40aed0
40af0a:	3a 61 01             	cmp    0x1(%ecx),%ah
40af0d:	75 c5                	jne    0x40aed4
40af0f:	0a e4                	or     %ah,%ah
40af11:	74 bd                	je     0x40aed0
40af13:	83 c1 02             	add    $0x2,%ecx
40af16:	eb 88                	jmp    0x40aea0
40af18:	cc                   	int3
40af19:	cc                   	int3
40af1a:	cc                   	int3
40af1b:	cc                   	int3
40af1c:	cc                   	int3
40af1d:	cc                   	int3
40af1e:	cc                   	int3
40af1f:	cc                   	int3
40af20:	55                   	push   %ebp
40af21:	8b ec                	mov    %esp,%ebp
40af23:	57                   	push   %edi
40af24:	56                   	push   %esi
40af25:	8b 75 0c             	mov    0xc(%ebp),%esi
40af28:	8b 4d 10             	mov    0x10(%ebp),%ecx
40af2b:	8b 7d 08             	mov    0x8(%ebp),%edi
40af2e:	8b c1                	mov    %ecx,%eax
40af30:	8b d1                	mov    %ecx,%edx
40af32:	03 c6                	add    %esi,%eax
40af34:	3b fe                	cmp    %esi,%edi
40af36:	76 08                	jbe    0x40af40
40af38:	3b f8                	cmp    %eax,%edi
40af3a:	0f 82 a4 01 00 00    	jb     0x40b0e4
40af40:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
40af46:	72 1f                	jb     0x40af67
40af48:	83 3d f8 e5 41 00 00 	cmpl   $0x0,0x41e5f8
40af4f:	74 16                	je     0x40af67
40af51:	57                   	push   %edi
40af52:	56                   	push   %esi
40af53:	83 e7 0f             	and    $0xf,%edi
40af56:	83 e6 0f             	and    $0xf,%esi
40af59:	3b fe                	cmp    %esi,%edi
40af5b:	5e                   	pop    %esi
40af5c:	5f                   	pop    %edi
40af5d:	75 08                	jne    0x40af67
40af5f:	5e                   	pop    %esi
40af60:	5f                   	pop    %edi
40af61:	5d                   	pop    %ebp
40af62:	e9 12 05 00 00       	jmp    0x40b479
40af67:	f7 c7 03 00 00 00    	test   $0x3,%edi
40af6d:	75 15                	jne    0x40af84
40af6f:	c1 e9 02             	shr    $0x2,%ecx
40af72:	83 e2 03             	and    $0x3,%edx
40af75:	83 f9 08             	cmp    $0x8,%ecx
40af78:	72 2a                	jb     0x40afa4
40af7a:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40af7c:	ff 24 95 94 b0 40 00 	jmp    *0x40b094(,%edx,4)
40af83:	90                   	nop
40af84:	8b c7                	mov    %edi,%eax
40af86:	ba 03 00 00 00       	mov    $0x3,%edx
40af8b:	83 e9 04             	sub    $0x4,%ecx
40af8e:	72 0c                	jb     0x40af9c
40af90:	83 e0 03             	and    $0x3,%eax
40af93:	03 c8                	add    %eax,%ecx
40af95:	ff 24 85 a8 af 40 00 	jmp    *0x40afa8(,%eax,4)
40af9c:	ff 24 8d a4 b0 40 00 	jmp    *0x40b0a4(,%ecx,4)
40afa3:	90                   	nop