40fc45:	89 47 04             	mov    %eax,0x4(%edi)
40fc48:	eb 0c                	jmp    0x40fc56
40fc4a:	8d 57 08             	lea    0x8(%edi),%edx
40fc4d:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
40fc54:	89 17                	mov    %edx,(%edi)
40fc56:	8d 04 7f             	lea    (%edi,%edi,2),%eax
40fc59:	8d 04 80             	lea    (%eax,%eax,4),%eax
40fc5c:	8b d0                	mov    %eax,%edx
40fc5e:	8d 41 08             	lea    0x8(%ecx),%eax
40fc61:	c1 e0 04             	shl    $0x4,%eax
40fc64:	2b c2                	sub    %edx,%eax
40fc66:	5f                   	pop    %edi
40fc67:	5e                   	pop    %esi
40fc68:	5d                   	pop    %ebp
40fc69:	5b                   	pop    %ebx
40fc6a:	c3                   	ret
40fc6b:	03 c1                	add    %ecx,%eax
40fc6d:	80 38 00             	cmpb   $0x0,(%eax)
40fc70:	74 02                	je     0x40fc74
40fc72:	8b f0                	mov    %eax,%esi
40fc74:	8d 04 16             	lea    (%esi,%edx,1),%eax
40fc77:	3b c3                	cmp    %ebx,%eax
40fc79:	8b 5c 24 18          	mov    0x18(%esp),%ebx
40fc7d:	73 75                	jae    0x40fcf4
40fc7f:	8a 06                	mov    (%esi),%al
40fc81:	84 c0                	test   %al,%al
40fc83:	75 3c                	jne    0x40fcc1
40fc85:	80 7e 01 00          	cmpb   $0x0,0x1(%esi)
40fc89:	8d 46 01             	lea    0x1(%esi),%eax
40fc8c:	b9 01 00 00 00       	mov    $0x1,%ecx
40fc91:	75 07                	jne    0x40fc9a
40fc93:	40                   	inc    %eax
40fc94:	41                   	inc    %ecx
40fc95:	80 38 00             	cmpb   $0x0,(%eax)
40fc98:	74 f9                	je     0x40fc93
40fc9a:	3b ca                	cmp    %edx,%ecx
40fc9c:	73 39                	jae    0x40fcd7
40fc9e:	8b 6c 24 14          	mov    0x14(%esp),%ebp
40fca2:	3b f5                	cmp    %ebp,%esi
40fca4:	75 09                	jne    0x40fcaf
40fca6:	89 4f 04             	mov    %ecx,0x4(%edi)
40fca9:	8b f0                	mov    %eax,%esi
40fcab:	8b cd                	mov    %ebp,%ecx
40fcad:	eb 19                	jmp    0x40fcc8
40fcaf:	2b d9                	sub    %ecx,%ebx
40fcb1:	3b da                	cmp    %edx,%ebx
40fcb3:	0f 82 c2 00 00 00    	jb     0x40fd7b
40fcb9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40fcbd:	8b f0                	mov    %eax,%esi
40fcbf:	eb 07                	jmp    0x40fcc8
40fcc1:	25 ff 00 00 00       	and    $0xff,%eax
40fcc6:	03 f0                	add    %eax,%esi
40fcc8:	8d 2c 16             	lea    (%esi,%edx,1),%ebp
40fccb:	8d 87 f8 00 00 00    	lea    0xf8(%edi),%eax
40fcd1:	3b e8                	cmp    %eax,%ebp
40fcd3:	72 aa                	jb     0x40fc7f
40fcd5:	eb 1d                	jmp    0x40fcf4
40fcd7:	8d 04 16             	lea    (%esi,%edx,1),%eax
40fcda:	8d 9f f8 00 00 00    	lea    0xf8(%edi),%ebx
40fce0:	3b c3                	cmp    %ebx,%eax
40fce2:	73 09                	jae    0x40fced
40fce4:	2b ca                	sub    %edx,%ecx
40fce6:	89 07                	mov    %eax,(%edi)
40fce8:	89 4f 04             	mov    %ecx,0x4(%edi)
40fceb:	eb 79                	jmp    0x40fd66
40fced:	8d 4f 08             	lea    0x8(%edi),%ecx
40fcf0:	89 0f                	mov    %ecx,(%edi)
40fcf2:	eb 6b                	jmp    0x40fd5f
40fcf4:	8d 6f 08             	lea    0x8(%edi),%ebp
40fcf7:	8b f5                	mov    %ebp,%esi
40fcf9:	3b f1                	cmp    %ecx,%esi
40fcfb:	73 7e                	jae    0x40fd7b
40fcfd:	8d 0c 16             	lea    (%esi,%edx,1),%ecx
40fd00:	8d 87 f8 00 00 00    	lea    0xf8(%edi),%eax
40fd06:	3b c8                	cmp    %eax,%ecx
40fd08:	73 71                	jae    0x40fd7b
40fd0a:	8a 06                	mov    (%esi),%al
40fd0c:	84 c0                	test   %al,%al
40fd0e:	75 23                	jne    0x40fd33
40fd10:	80 7e 01 00          	cmpb   $0x0,0x1(%esi)
40fd14:	8d 46 01             	lea    0x1(%esi),%eax
40fd17:	b9 01 00 00 00       	mov    $0x1,%ecx
40fd1c:	75 07                	jne    0x40fd25
40fd1e:	40                   	inc    %eax
40fd1f:	41                   	inc    %ecx
40fd20:	80 38 00             	cmpb   $0x0,(%eax)
40fd23:	74 f9                	je     0x40fd1e
40fd25:	3b ca                	cmp    %edx,%ecx
40fd27:	73 1e                	jae    0x40fd47
40fd29:	2b d9                	sub    %ecx,%ebx
40fd2b:	3b da                	cmp    %edx,%ebx
40fd2d:	72 4c                	jb     0x40fd7b
40fd2f:	8b f0                	mov    %eax,%esi
40fd31:	eb 07                	jmp    0x40fd3a
40fd33:	25 ff 00 00 00       	and    $0xff,%eax
40fd38:	03 f0                	add    %eax,%esi
40fd3a:	3b 74 24 14          	cmp    0x14(%esp),%esi
40fd3e:	72 bd                	jb     0x40fcfd
40fd40:	33 c0                	xor    %eax,%eax
40fd42:	5f                   	pop    %edi
40fd43:	5e                   	pop    %esi
40fd44:	5d                   	pop    %ebp
40fd45:	5b                   	pop    %ebx
40fd46:	c3                   	ret
40fd47:	8d 04 16             	lea    (%esi,%edx,1),%eax
40fd4a:	8d 9f f8 00 00 00    	lea    0xf8(%edi),%ebx
40fd50:	3b c3                	cmp    %ebx,%eax
40fd52:	73 09                	jae    0x40fd5d
40fd54:	2b ca                	sub    %edx,%ecx
40fd56:	89 07                	mov    %eax,(%edi)
40fd58:	89 4f 04             	mov    %ecx,0x4(%edi)
40fd5b:	eb 09                	jmp    0x40fd66
40fd5d:	89 2f                	mov    %ebp,(%edi)
40fd5f:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
40fd66:	8d 04 7f             	lea    (%edi,%edi,2),%eax
40fd69:	88 16                	mov    %dl,(%esi)
40fd6b:	8d 14 80             	lea    (%eax,%eax,4),%edx
40fd6e:	8d 46 08             	lea    0x8(%esi),%eax
40fd71:	c1 e0 04             	shl    $0x4,%eax
40fd74:	2b c2                	sub    %edx,%eax
40fd76:	5f                   	pop    %edi
40fd77:	5e                   	pop    %esi
40fd78:	5d                   	pop    %ebp
40fd79:	5b                   	pop    %ebx
40fd7a:	c3                   	ret
40fd7b:	5f                   	pop    %edi
40fd7c:	5e                   	pop    %esi
40fd7d:	5d                   	pop    %ebp
40fd7e:	33 c0                	xor    %eax,%eax
40fd80:	5b                   	pop    %ebx
40fd81:	c3                   	ret
40fd82:	90                   	nop
40fd83:	90                   	nop
40fd84:	90                   	nop
40fd85:	90                   	nop
40fd86:	90                   	nop
40fd87:	90                   	nop
40fd88:	90                   	nop
40fd89:	90                   	nop
40fd8a:	90                   	nop
40fd8b:	90                   	nop
40fd8c:	90                   	nop
40fd8d:	90                   	nop
40fd8e:	90                   	nop
40fd8f:	90                   	nop
40fd90:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40fd94:	53                   	push   %ebx
40fd95:	55                   	push   %ebp
40fd96:	8b 6c 24 10          	mov    0x10(%esp),%ebp
40fd9a:	56                   	push   %esi
40fd9b:	57                   	push   %edi
40fd9c:	8b 79 10             	mov    0x10(%ecx),%edi
40fd9f:	8b d5                	mov    %ebp,%edx
40fda1:	2b d7                	sub    %edi,%edx
40fda3:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
40fda7:	c1 fa 0c             	sar    $0xc,%edx
40fdaa:	8b 5c 24 20          	mov    0x20(%esp),%ebx
40fdae:	33 c0                	xor    %eax,%eax
40fdb0:	8d 4c d1 18          	lea    0x18(%ecx,%edx,8),%ecx
40fdb4:	33 d2                	xor    %edx,%edx
40fdb6:	8a 17                	mov    (%edi),%dl
40fdb8:	89 4c 24 18          	mov    %ecx,0x18(%esp)
40fdbc:	8b f2                	mov    %edx,%esi
40fdbe:	3b f3                	cmp    %ebx,%esi
40fdc0:	76 1b                	jbe    0x40fddd
40fdc2:	88 1f                	mov    %bl,(%edi)
40fdc4:	8b 01                	mov    (%ecx),%eax
40fdc6:	2b f3                	sub    %ebx,%esi
40fdc8:	c7 41 04 f1 00 00 00 	movl   $0xf1,0x4(%ecx)
40fdcf:	03 c6                	add    %esi,%eax
40fdd1:	89 01                	mov    %eax,(%ecx)
40fdd3:	b8 01 00 00 00       	mov    $0x1,%eax
40fdd8:	5f                   	pop    %edi
40fdd9:	5e                   	pop    %esi
40fdda:	5d                   	pop    %ebp
40fddb:	5b                   	pop    %ebx
40fddc:	c3                   	ret
40fddd:	73 70                	jae    0x40fe4f
40fddf:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx
40fde2:	8d 95 f8 00 00 00    	lea    0xf8(%ebp),%edx
40fde8:	3b ca                	cmp    %edx,%ecx
40fdea:	77 63                	ja     0x40fe4f
40fdec:	8d 14 3e             	lea    (%esi,%edi,1),%edx
40fdef:	3b d1                	cmp    %ecx,%edx
40fdf1:	73 0c                	jae    0x40fdff
40fdf3:	80 3a 00             	cmpb   $0x0,(%edx)
40fdf6:	75 05                	jne    0x40fdfd
40fdf8:	42                   	inc    %edx
40fdf9:	3b d1                	cmp    %ecx,%edx
40fdfb:	72 f6                	jb     0x40fdf3
40fdfd:	3b d1                	cmp    %ecx,%edx
40fdff:	75 4e                	jne    0x40fe4f
40fe01:	88 1f                	mov    %bl,(%edi)
40fe03:	8b 45 00             	mov    0x0(%ebp),%eax
40fe06:	3b f8                	cmp    %eax,%edi
40fe08:	77 34                	ja     0x40fe3e
40fe0a:	3b c8                	cmp    %eax,%ecx
40fe0c:	76 30                	jbe    0x40fe3e
40fe0e:	8d 85 f8 00 00 00    	lea    0xf8(%ebp),%eax
40fe14:	3b c8                	cmp    %eax,%ecx
40fe16:	73 19                	jae    0x40fe31
40fe18:	89 4d 00             	mov    %ecx,0x0(%ebp)
40fe1b:	8a 11                	mov    (%ecx),%dl
40fe1d:	33 c0                	xor    %eax,%eax
40fe1f:	84 d2                	test   %dl,%dl
40fe21:	75 09                	jne    0x40fe2c
40fe23:	8a 54 08 01          	mov    0x1(%eax,%ecx,1),%dl
40fe27:	40                   	inc    %eax
40fe28:	84 d2                	test   %dl,%dl
40fe2a:	74 f7                	je     0x40fe23
40fe2c:	89 45 04             	mov    %eax,0x4(%ebp)
40fe2f:	eb 0d                	jmp    0x40fe3e
40fe31:	8d 45 08             	lea    0x8(%ebp),%eax
40fe34:	c7 45 04 00 00 00 00 	movl   $0x0,0x4(%ebp)
40fe3b:	89 45 00             	mov    %eax,0x0(%ebp)
40fe3e:	8b 44 24 18          	mov    0x18(%esp),%eax
40fe42:	2b f3                	sub    %ebx,%esi
40fe44:	8b 08                	mov    (%eax),%ecx
40fe46:	03 ce                	add    %esi,%ecx
40fe48:	89 08                	mov    %ecx,(%eax)
40fe4a:	b8 01 00 00 00       	mov    $0x1,%eax
40fe4f:	5f                   	pop    %edi
40fe50:	5e                   	pop    %esi
40fe51:	5d                   	pop    %ebp
40fe52:	5b                   	pop    %ebx
40fe53:	c3                   	ret
40fe54:	90                   	nop
40fe55:	90                   	nop
40fe56:	90                   	nop
40fe57:	90                   	nop
40fe58:	90                   	nop
40fe59:	90                   	nop
40fe5a:	90                   	nop
40fe5b:	90                   	nop
40fe5c:	90                   	nop
40fe5d:	90                   	nop
40fe5e:	90                   	nop
40fe5f:	90                   	nop
40fe60:	8d 42 ff             	lea    -0x1(%edx),%eax
40fe63:	5b                   	pop    %ebx
40fe64:	c3                   	ret
40fe65:	2e 8b c0             	cs mov %eax,%eax
40fe68:	2e 8b c0             	cs mov %eax,%eax
40fe6b:	2e 8b c0             	cs mov %eax,%eax
40fe6e:	8b c0                	mov    %eax,%eax
40fe70:	33 c0                	xor    %eax,%eax
40fe72:	8a 44 24 08          	mov    0x8(%esp),%al
40fe76:	53                   	push   %ebx
40fe77:	8b d8                	mov    %eax,%ebx
40fe79:	c1 e0 08             	shl    $0x8,%eax
40fe7c:	8b 54 24 08          	mov    0x8(%esp),%edx
40fe80:	f7 c2 03 00 00 00    	test   $0x3,%edx
40fe86:	74 13                	je     0x40fe9b
40fe88:	8a 0a                	mov    (%edx),%cl
40fe8a:	42                   	inc    %edx
40fe8b:	38 d9                	cmp    %bl,%cl
40fe8d:	74 d1                	je     0x40fe60
40fe8f:	84 c9                	test   %cl,%cl
40fe91:	74 51                	je     0x40fee4
40fe93:	f7 c2 03 00 00 00    	test   $0x3,%edx
40fe99:	75 ed                	jne    0x40fe88
40fe9b:	0b d8                	or     %eax,%ebx
40fe9d:	57                   	push   %edi
40fe9e:	8b c3                	mov    %ebx,%eax
40fea0:	c1 e3 10             	shl    $0x10,%ebx
40fea3:	56                   	push   %esi
40fea4:	0b d8                	or     %eax,%ebx
40fea6:	8b 0a                	mov    (%edx),%ecx
40fea8:	bf ff fe fe 7e       	mov    $0x7efefeff,%edi
40fead:	8b c1                	mov    %ecx,%eax
40feaf:	8b f7                	mov    %edi,%esi
40feb1:	33 cb                	xor    %ebx,%ecx
40feb3:	03 f0                	add    %eax,%esi
40feb5:	03 f9                	add    %ecx,%edi
40feb7:	83 f1 ff             	xor    $0xffffffff,%ecx
40feba:	83 f0 ff             	xor    $0xffffffff,%eax
40febd:	33 cf                	xor    %edi,%ecx
40febf:	33 c6                	xor    %esi,%eax
40fec1:	83 c2 04             	add    $0x4,%edx
40fec4:	81 e1 00 01 01 81    	and    $0x81010100,%ecx
40feca:	75 1c                	jne    0x40fee8
40fecc:	25 00 01 01 81       	and    $0x81010100,%eax
40fed1:	74 d3                	je     0x40fea6
40fed3:	25 00 01 01 01       	and    $0x1010100,%eax
40fed8:	75 08                	jne    0x40fee2
40feda:	81 e6 00 00 00 80    	and    $0x80000000,%esi
40fee0:	75 c4                	jne    0x40fea6
40fee2:	5e                   	pop    %esi
40fee3:	5f                   	pop    %edi
40fee4:	5b                   	pop    %ebx
40fee5:	33 c0                	xor    %eax,%eax
40fee7:	c3                   	ret
40fee8:	8b 42 fc             	mov    -0x4(%edx),%eax
40feeb:	38 d8                	cmp    %bl,%al
40feed:	74 36                	je     0x40ff25
40feef:	84 c0                	test   %al,%al
40fef1:	74 ef                	je     0x40fee2
40fef3:	38 dc                	cmp    %bl,%ah
40fef5:	74 27                	je     0x40ff1e
40fef7:	84 e4                	test   %ah,%ah
40fef9:	74 e7                	je     0x40fee2
40fefb:	c1 e8 10             	shr    $0x10,%eax
40fefe:	38 d8                	cmp    %bl,%al
40ff00:	74 15                	je     0x40ff17
40ff02:	84 c0                	test   %al,%al
40ff04:	74 dc                	je     0x40fee2
40ff06:	38 dc                	cmp    %bl,%ah
40ff08:	74 06                	je     0x40ff10
40ff0a:	84 e4                	test   %ah,%ah
40ff0c:	74 d4                	je     0x40fee2
40ff0e:	eb 96                	jmp    0x40fea6
40ff10:	5e                   	pop    %esi
40ff11:	5f                   	pop    %edi
40ff12:	8d 42 ff             	lea    -0x1(%edx),%eax
40ff15:	5b                   	pop    %ebx
40ff16:	c3                   	ret
40ff17:	8d 42 fe             	lea    -0x2(%edx),%eax
40ff1a:	5e                   	pop    %esi
40ff1b:	5f                   	pop    %edi
40ff1c:	5b                   	pop    %ebx
40ff1d:	c3                   	ret
40ff1e:	8d 42 fd             	lea    -0x3(%edx),%eax
40ff21:	5e                   	pop    %esi
40ff22:	5f                   	pop    %edi
40ff23:	5b                   	pop    %ebx
40ff24:	c3                   	ret
40ff25:	8d 42 fc             	lea    -0x4(%edx),%eax
40ff28:	5e                   	pop    %esi
40ff29:	5f                   	pop    %edi
40ff2a:	5b                   	pop    %ebx
40ff2b:	c3                   	ret
40ff2c:	cc                   	int3
40ff2d:	cc                   	int3
40ff2e:	cc                   	int3
40ff2f:	cc                   	int3
40ff30:	53                   	push   %ebx
40ff31:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40ff35:	0f af 5c 24 08       	imul   0x8(%esp),%ebx
40ff3a:	55                   	push   %ebp
40ff3b:	56                   	push   %esi
40ff3c:	83 fb e0             	cmp    $0xffffffe0,%ebx
40ff3f:	57                   	push   %edi
40ff40:	77 11                	ja     0x40ff53
40ff42:	85 db                	test   %ebx,%ebx
40ff44:	76 08                	jbe    0x40ff4e
40ff46:	83 c3 0f             	add    $0xf,%ebx
40ff49:	83 e3 f0             	and    $0xfffffff0,%ebx
40ff4c:	eb 05                	jmp    0x40ff53
40ff4e:	bb 10 00 00 00       	mov    $0x10,%ebx
40ff53:	8b 2d 58 96 43 00    	mov    0x439658,%ebp