40fa92:	8b 17                	mov    (%edi),%edx
40fa94:	2b d3                	sub    %ebx,%edx
40fa96:	89 17                	mov    %edx,(%edi)
40fa98:	89 79 08             	mov    %edi,0x8(%ecx)
40fa9b:	5f                   	pop    %edi
40fa9c:	5e                   	pop    %esi
40fa9d:	5d                   	pop    %ebp
40fa9e:	5b                   	pop    %ebx
40fa9f:	59                   	pop    %ecx
40faa0:	c3                   	ret
40faa1:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40faa5:	89 0d 80 3f 43 00    	mov    %ecx,0x433f80
40faab:	8b 16                	mov    (%esi),%edx
40faad:	2b d3                	sub    %ebx,%edx
40faaf:	89 16                	mov    %edx,(%esi)
40fab1:	89 71 08             	mov    %esi,0x8(%ecx)
40fab4:	5f                   	pop    %edi
40fab5:	5e                   	pop    %esi
40fab6:	5d                   	pop    %ebp
40fab7:	5b                   	pop    %ebx
40fab8:	59                   	pop    %ecx
40fab9:	c3                   	ret
40faba:	bd 60 1f 43 00       	mov    $0x431f60,%ebp
40fabf:	83 c9 ff             	or     $0xffffffff,%ecx
40fac2:	39 4d 10             	cmp    %ecx,0x10(%ebp)
40fac5:	74 07                	je     0x40face
40fac7:	8b 45 0c             	mov    0xc(%ebp),%eax
40faca:	85 c0                	test   %eax,%eax
40facc:	75 11                	jne    0x40fadf
40face:	8b 6d 00             	mov    0x0(%ebp),%ebp
40fad1:	81 fd 60 1f 43 00    	cmp    $0x431f60,%ebp
40fad7:	0f 84 e0 00 00 00    	je     0x40fbbd
40fadd:	eb e3                	jmp    0x40fac2
40fadf:	8b 45 0c             	mov    0xc(%ebp),%eax
40fae2:	8b 75 10             	mov    0x10(%ebp),%esi
40fae5:	8b f8                	mov    %eax,%edi
40fae7:	89 44 24 18          	mov    %eax,0x18(%esp)
40faeb:	2b fd                	sub    %ebp,%edi
40faed:	8b 10                	mov    (%eax),%edx
40faef:	83 ef 18             	sub    $0x18,%edi
40faf2:	c1 ff 03             	sar    $0x3,%edi
40faf5:	c1 e7 0c             	shl    $0xc,%edi
40faf8:	03 fe                	add    %esi,%edi
40fafa:	33 f6                	xor    %esi,%esi
40fafc:	3b d1                	cmp    %ecx,%edx
40fafe:	75 10                	jne    0x40fb10
40fb00:	83 fe 10             	cmp    $0x10,%esi
40fb03:	7d 0b                	jge    0x40fb10
40fb05:	8b 50 08             	mov    0x8(%eax),%edx
40fb08:	83 c0 08             	add    $0x8,%eax
40fb0b:	46                   	inc    %esi
40fb0c:	3b d1                	cmp    %ecx,%edx
40fb0e:	74 f0                	je     0x40fb00
40fb10:	8b c6                	mov    %esi,%eax
40fb12:	6a 04                	push   $0x4
40fb14:	c1 e0 0c             	shl    $0xc,%eax
40fb17:	68 00 10 00 00       	push   $0x1000
40fb1c:	50                   	push   %eax
40fb1d:	57                   	push   %edi
40fb1e:	89 44 24 20          	mov    %eax,0x20(%esp)
40fb22:	ff 15 20 96 43 00    	call   *0x439620
40fb28:	3b c7                	cmp    %edi,%eax
40fb2a:	0f 85 cb 00 00 00    	jne    0x40fbfb
40fb30:	8b 54 24 18          	mov    0x18(%esp),%edx
40fb34:	8b 44 24 10          	mov    0x10(%esp),%eax
40fb38:	33 c9                	xor    %ecx,%ecx
40fb3a:	85 f6                	test   %esi,%esi
40fb3c:	8b ca                	mov    %edx,%ecx
40fb3e:	7e 32                	jle    0x40fb72
40fb40:	8d 47 04             	lea    0x4(%edi),%eax
40fb43:	8d 50 04             	lea    0x4(%eax),%edx
40fb46:	c7 00 f0 00 00 00    	movl   $0xf0,(%eax)
40fb4c:	89 50 fc             	mov    %edx,-0x4(%eax)
40fb4f:	c6 80 f4 00 00 00 ff 	movb   $0xff,0xf4(%eax)
40fb56:	c7 01 f0 00 00 00    	movl   $0xf0,(%ecx)
40fb5c:	c7 41 04 f1 00 00 00 	movl   $0xf1,0x4(%ecx)
40fb63:	05 00 10 00 00       	add    $0x1000,%eax
40fb68:	83 c1 08             	add    $0x8,%ecx
40fb6b:	4e                   	dec    %esi
40fb6c:	75 d5                	jne    0x40fb43
40fb6e:	8b 54 24 18          	mov    0x18(%esp),%edx
40fb72:	8d 85 18 20 00 00    	lea    0x2018(%ebp),%eax
40fb78:	89 2d 80 3f 43 00    	mov    %ebp,0x433f80
40fb7e:	3b c8                	cmp    %eax,%ecx
40fb80:	73 0e                	jae    0x40fb90
40fb82:	83 39 ff             	cmpl   $0xffffffff,(%ecx)
40fb85:	74 07                	je     0x40fb8e
40fb87:	83 c1 08             	add    $0x8,%ecx
40fb8a:	3b c8                	cmp    %eax,%ecx
40fb8c:	72 f4                	jb     0x40fb82
40fb8e:	3b c8                	cmp    %eax,%ecx
40fb90:	1b c0                	sbb    %eax,%eax
40fb92:	23 c1                	and    %ecx,%eax
40fb94:	89 45 0c             	mov    %eax,0xc(%ebp)
40fb97:	88 5f 08             	mov    %bl,0x8(%edi)
40fb9a:	89 55 08             	mov    %edx,0x8(%ebp)
40fb9d:	8b 0a                	mov    (%edx),%ecx
40fb9f:	2b cb                	sub    %ebx,%ecx
40fba1:	89 0a                	mov    %ecx,(%edx)
40fba3:	8b 47 04             	mov    0x4(%edi),%eax
40fba6:	2b c3                	sub    %ebx,%eax
40fba8:	8d 4c 1f 08          	lea    0x8(%edi,%ebx,1),%ecx
40fbac:	89 47 04             	mov    %eax,0x4(%edi)
40fbaf:	89 0f                	mov    %ecx,(%edi)
40fbb1:	8d 87 00 01 00 00    	lea    0x100(%edi),%eax
40fbb7:	5f                   	pop    %edi
40fbb8:	5e                   	pop    %esi
40fbb9:	5d                   	pop    %ebp
40fbba:	5b                   	pop    %ebx
40fbbb:	59                   	pop    %ecx
40fbbc:	c3                   	ret
40fbbd:	e8 ae fa ff ff       	call   0x40f670
40fbc2:	85 c0                	test   %eax,%eax
40fbc4:	74 35                	je     0x40fbfb
40fbc6:	8b 48 10             	mov    0x10(%eax),%ecx
40fbc9:	88 59 08             	mov    %bl,0x8(%ecx)
40fbcc:	8d 54 19 08          	lea    0x8(%ecx,%ebx,1),%edx
40fbd0:	a3 80 3f 43 00       	mov    %eax,0x433f80
40fbd5:	89 11                	mov    %edx,(%ecx)
40fbd7:	ba f0 00 00 00       	mov    $0xf0,%edx
40fbdc:	2b d3                	sub    %ebx,%edx
40fbde:	81 e3 ff 00 00 00    	and    $0xff,%ebx
40fbe4:	89 51 04             	mov    %edx,0x4(%ecx)
40fbe7:	8b 50 18             	mov    0x18(%eax),%edx
40fbea:	2b d3                	sub    %ebx,%edx
40fbec:	89 50 18             	mov    %edx,0x18(%eax)
40fbef:	8d 81 00 01 00 00    	lea    0x100(%ecx),%eax
40fbf5:	5f                   	pop    %edi
40fbf6:	5e                   	pop    %esi
40fbf7:	5d                   	pop    %ebp
40fbf8:	5b                   	pop    %ebx
40fbf9:	59                   	pop    %ecx
40fbfa:	c3                   	ret
40fbfb:	5f                   	pop    %edi
40fbfc:	5e                   	pop    %esi
40fbfd:	5d                   	pop    %ebp
40fbfe:	33 c0                	xor    %eax,%eax
40fc00:	5b                   	pop    %ebx
40fc01:	59                   	pop    %ecx
40fc02:	c3                   	ret
40fc03:	90                   	nop
40fc04:	90                   	nop
40fc05:	90                   	nop
40fc06:	90                   	nop
40fc07:	90                   	nop
40fc08:	90                   	nop
40fc09:	90                   	nop
40fc0a:	90                   	nop
40fc0b:	90                   	nop
40fc0c:	90                   	nop
40fc0d:	90                   	nop
40fc0e:	90                   	nop
40fc0f:	90                   	nop
40fc10:	8b 54 24 0c          	mov    0xc(%esp),%edx
40fc14:	53                   	push   %ebx
40fc15:	55                   	push   %ebp
40fc16:	56                   	push   %esi
40fc17:	57                   	push   %edi
40fc18:	8b 7c 24 14          	mov    0x14(%esp),%edi
40fc1c:	8b 47 04             	mov    0x4(%edi),%eax
40fc1f:	8b 0f                	mov    (%edi),%ecx
40fc21:	3b c2                	cmp    %edx,%eax
40fc23:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40fc27:	8b f1                	mov    %ecx,%esi
40fc29:	8d 9f f8 00 00 00    	lea    0xf8(%edi),%ebx
40fc2f:	72 3a                	jb     0x40fc6b
40fc31:	8d 04 11             	lea    (%ecx,%edx,1),%eax
40fc34:	88 11                	mov    %dl,(%ecx)
40fc36:	3b c3                	cmp    %ebx,%eax
40fc38:	73 10                	jae    0x40fc4a
40fc3a:	8b 37                	mov    (%edi),%esi
40fc3c:	8b 47 04             	mov    0x4(%edi),%eax
40fc3f:	03 f2                	add    %edx,%esi
40fc41:	2b c2                	sub    %edx,%eax
40fc43:	89 37                	mov    %esi,(%edi)
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