40f8c4:	74 2e                	je     0x40f8f4
40f8c6:	83 7a 18 ff          	cmpl   $0xffffffff,0x18(%edx)
40f8ca:	75 28                	jne    0x40f8f4
40f8cc:	b8 01 00 00 00       	mov    $0x1,%eax
40f8d1:	8d 4a 20             	lea    0x20(%edx),%ecx
40f8d4:	83 39 ff             	cmpl   $0xffffffff,(%ecx)
40f8d7:	75 0b                	jne    0x40f8e4
40f8d9:	40                   	inc    %eax
40f8da:	83 c1 08             	add    $0x8,%ecx
40f8dd:	3d 00 04 00 00       	cmp    $0x400,%eax
40f8e2:	7c f0                	jl     0x40f8d4
40f8e4:	3d 00 04 00 00       	cmp    $0x400,%eax
40f8e9:	75 09                	jne    0x40f8f4
40f8eb:	52                   	push   %edx
40f8ec:	e8 ef fe ff ff       	call   0x40f7e0
40f8f1:	83 c4 04             	add    $0x4,%esp
40f8f4:	3b 3d 64 1f 43 00    	cmp    0x431f64,%edi
40f8fa:	74 0c                	je     0x40f908
40f8fc:	8b 44 24 14          	mov    0x14(%esp),%eax
40f900:	85 c0                	test   %eax,%eax
40f902:	0f 8f 42 ff ff ff    	jg     0x40f84a
40f908:	5f                   	pop    %edi
40f909:	5e                   	pop    %esi
40f90a:	5d                   	pop    %ebp
40f90b:	5b                   	pop    %ebx
40f90c:	c3                   	ret
40f90d:	90                   	nop
40f90e:	90                   	nop
40f90f:	90                   	nop
40f910:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f914:	b8 60 1f 43 00       	mov    $0x431f60,%eax
40f919:	3b 48 10             	cmp    0x10(%eax),%ecx
40f91c:	76 05                	jbe    0x40f923
40f91e:	3b 48 14             	cmp    0x14(%eax),%ecx
40f921:	72 0b                	jb     0x40f92e
40f923:	8b 00                	mov    (%eax),%eax
40f925:	3d 60 1f 43 00       	cmp    $0x431f60,%eax
40f92a:	74 3a                	je     0x40f966
40f92c:	eb eb                	jmp    0x40f919
40f92e:	f6 c1 0f             	test   $0xf,%cl
40f931:	75 33                	jne    0x40f966
40f933:	8b d1                	mov    %ecx,%edx
40f935:	81 e2 ff 0f 00 00    	and    $0xfff,%edx
40f93b:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40f941:	72 23                	jb     0x40f966
40f943:	8b 54 24 08          	mov    0x8(%esp),%edx
40f947:	89 02                	mov    %eax,(%edx)
40f949:	8b 54 24 0c          	mov    0xc(%esp),%edx
40f94d:	8b c1                	mov    %ecx,%eax
40f94f:	25 00 f0 ff ff       	and    $0xfffff000,%eax
40f954:	2b c8                	sub    %eax,%ecx
40f956:	89 02                	mov    %eax,(%edx)
40f958:	81 e9 00 01 00 00    	sub    $0x100,%ecx
40f95e:	c1 f9 04             	sar    $0x4,%ecx
40f961:	8d 44 01 08          	lea    0x8(%ecx,%eax,1),%eax
40f965:	c3                   	ret
40f966:	33 c0                	xor    %eax,%eax
40f968:	c3                   	ret
40f969:	90                   	nop
40f96a:	90                   	nop
40f96b:	90                   	nop
40f96c:	90                   	nop
40f96d:	90                   	nop
40f96e:	90                   	nop
40f96f:	90                   	nop
40f970:	8b 44 24 04          	mov    0x4(%esp),%eax
40f974:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40f978:	56                   	push   %esi
40f979:	33 d2                	xor    %edx,%edx
40f97b:	2b 48 10             	sub    0x10(%eax),%ecx
40f97e:	c1 f9 0c             	sar    $0xc,%ecx
40f981:	8b 74 c8 18          	mov    0x18(%eax,%ecx,8),%esi
40f985:	8d 44 c8 18          	lea    0x18(%eax,%ecx,8),%eax
40f989:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f98d:	8a 11                	mov    (%ecx),%dl
40f98f:	03 f2                	add    %edx,%esi
40f991:	89 30                	mov    %esi,(%eax)
40f993:	c6 01 00             	movb   $0x0,(%ecx)
40f996:	8b 08                	mov    (%eax),%ecx
40f998:	c7 40 04 f1 00 00 00 	movl   $0xf1,0x4(%eax)
40f99f:	81 f9 f0 00 00 00    	cmp    $0xf0,%ecx
40f9a5:	75 1a                	jne    0x40f9c1
40f9a7:	a1 5c 73 43 00       	mov    0x43735c,%eax
40f9ac:	40                   	inc    %eax
40f9ad:	83 f8 20             	cmp    $0x20,%eax
40f9b0:	a3 5c 73 43 00       	mov    %eax,0x43735c
40f9b5:	75 0a                	jne    0x40f9c1
40f9b7:	6a 10                	push   $0x10
40f9b9:	e8 82 fe ff ff       	call   0x40f840
40f9be:	83 c4 04             	add    $0x4,%esp
40f9c1:	5e                   	pop    %esi
40f9c2:	c3                   	ret
40f9c3:	90                   	nop
40f9c4:	90                   	nop
40f9c5:	90                   	nop
40f9c6:	90                   	nop
40f9c7:	90                   	nop
40f9c8:	90                   	nop
40f9c9:	90                   	nop
40f9ca:	90                   	nop
40f9cb:	90                   	nop
40f9cc:	90                   	nop
40f9cd:	90                   	nop
40f9ce:	90                   	nop
40f9cf:	90                   	nop
40f9d0:	51                   	push   %ecx
40f9d1:	8b 0d 80 3f 43 00    	mov    0x433f80,%ecx
40f9d7:	53                   	push   %ebx
40f9d8:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40f9dc:	55                   	push   %ebp
40f9dd:	56                   	push   %esi
40f9de:	57                   	push   %edi
40f9df:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40f9e3:	8b 41 10             	mov    0x10(%ecx),%eax
40f9e6:	83 f8 ff             	cmp    $0xffffffff,%eax
40f9e9:	0f 84 85 00 00 00    	je     0x40fa74
40f9ef:	8b 79 08             	mov    0x8(%ecx),%edi
40f9f2:	8d a9 18 20 00 00    	lea    0x2018(%ecx),%ebp
40f9f8:	8b f7                	mov    %edi,%esi
40f9fa:	2b f1                	sub    %ecx,%esi
40f9fc:	83 ee 18             	sub    $0x18,%esi
40f9ff:	c1 fe 03             	sar    $0x3,%esi
40fa02:	c1 e6 0c             	shl    $0xc,%esi
40fa05:	03 f0                	add    %eax,%esi
40fa07:	3b fd                	cmp    %ebp,%edi
40fa09:	73 2e                	jae    0x40fa39
40fa0b:	8b 07                	mov    (%edi),%eax
40fa0d:	3b c3                	cmp    %ebx,%eax
40fa0f:	7c 1b                	jl     0x40fa2c
40fa11:	39 5f 04             	cmp    %ebx,0x4(%edi)
40fa14:	76 16                	jbe    0x40fa2c
40fa16:	53                   	push   %ebx
40fa17:	50                   	push   %eax
40fa18:	56                   	push   %esi
40fa19:	e8 f2 01 00 00       	call   0x40fc10
40fa1e:	83 c4 0c             	add    $0xc,%esp
40fa21:	85 c0                	test   %eax,%eax
40fa23:	75 63                	jne    0x40fa88
40fa25:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40fa29:	89 5f 04             	mov    %ebx,0x4(%edi)
40fa2c:	83 c7 08             	add    $0x8,%edi
40fa2f:	81 c6 00 10 00 00    	add    $0x1000,%esi
40fa35:	3b fd                	cmp    %ebp,%edi
40fa37:	72 d2                	jb     0x40fa0b
40fa39:	8b 69 08             	mov    0x8(%ecx),%ebp
40fa3c:	8b 79 10             	mov    0x10(%ecx),%edi
40fa3f:	8d 71 18             	lea    0x18(%ecx),%esi
40fa42:	3b f5                	cmp    %ebp,%esi
40fa44:	73 2e                	jae    0x40fa74
40fa46:	8b 06                	mov    (%esi),%eax
40fa48:	3b c3                	cmp    %ebx,%eax
40fa4a:	7c 1b                	jl     0x40fa67
40fa4c:	39 5e 04             	cmp    %ebx,0x4(%esi)
40fa4f:	76 16                	jbe    0x40fa67
40fa51:	53                   	push   %ebx
40fa52:	50                   	push   %eax
40fa53:	57                   	push   %edi
40fa54:	e8 b7 01 00 00       	call   0x40fc10
40fa59:	83 c4 0c             	add    $0xc,%esp
40fa5c:	85 c0                	test   %eax,%eax
40fa5e:	75 41                	jne    0x40faa1
40fa60:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40fa64:	89 5e 04             	mov    %ebx,0x4(%esi)
40fa67:	83 c6 08             	add    $0x8,%esi
40fa6a:	81 c7 00 10 00 00    	add    $0x1000,%edi
40fa70:	3b f5                	cmp    %ebp,%esi
40fa72:	72 d2                	jb     0x40fa46
40fa74:	8b 09                	mov    (%ecx),%ecx
40fa76:	a1 80 3f 43 00       	mov    0x433f80,%eax
40fa7b:	3b c8                	cmp    %eax,%ecx
40fa7d:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40fa81:	74 37                	je     0x40faba
40fa83:	e9 5b ff ff ff       	jmp    0x40f9e3
40fa88:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40fa8c:	89 0d 80 3f 43 00    	mov    %ecx,0x433f80
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)