41bd4e:	5d                   	pop    %ebp
41bd4f:	c3                   	ret
41bd50:	53                   	push   %ebx
41bd51:	56                   	push   %esi
41bd52:	57                   	push   %edi
41bd53:	8b f9                	mov    %ecx,%edi
41bd55:	8b f2                	mov    %edx,%esi
41bd57:	8b d8                	mov    %eax,%ebx
41bd59:	85 f6                	test   %esi,%esi
41bd5b:	7c 05                	jl     0x41bd62
41bd5d:	3b 73 08             	cmp    0x8(%ebx),%esi
41bd60:	7c 0f                	jl     0x41bd71
41bd62:	8b 15 dc 70 6a 00    	mov    0x6a70dc,%edx
41bd68:	8b ce                	mov    %esi,%ecx
41bd6a:	8b 03                	mov    (%ebx),%eax
41bd6c:	e8 8b ff ff ff       	call   0x41bcfc
41bd71:	85 ff                	test   %edi,%edi
41bd73:	7c 05                	jl     0x41bd7a
41bd75:	3b 7b 08             	cmp    0x8(%ebx),%edi
41bd78:	7c 0f                	jl     0x41bd89
41bd7a:	8b 15 dc 70 6a 00    	mov    0x6a70dc,%edx
41bd80:	8b cf                	mov    %edi,%ecx
41bd82:	8b 03                	mov    (%ebx),%eax
41bd84:	e8 73 ff ff ff       	call   0x41bcfc
41bd89:	8b 43 04             	mov    0x4(%ebx),%eax
41bd8c:	8b 14 b0             	mov    (%eax,%esi,4),%edx
41bd8f:	8b 4b 04             	mov    0x4(%ebx),%ecx
41bd92:	8b 0c b9             	mov    (%ecx,%edi,4),%ecx
41bd95:	89 0c b0             	mov    %ecx,(%eax,%esi,4)
41bd98:	89 14 b8             	mov    %edx,(%eax,%edi,4)
41bd9b:	5f                   	pop    %edi
41bd9c:	5e                   	pop    %esi
41bd9d:	5b                   	pop    %ebx
41bd9e:	c3                   	ret
41bd9f:	90                   	nop
41bda0:	53                   	push   %ebx
41bda1:	8b d8                	mov    %eax,%ebx
41bda3:	8b 43 08             	mov    0x8(%ebx),%eax
41bda6:	3b 43 0c             	cmp    0xc(%ebx),%eax
41bda9:	75 06                	jne    0x41bdb1
41bdab:	8b c3                	mov    %ebx,%eax
41bdad:	8b 10                	mov    (%eax),%edx
41bdaf:	ff 12                	call   *(%edx)
41bdb1:	8b c3                	mov    %ebx,%eax
41bdb3:	5b                   	pop    %ebx
41bdb4:	c3                   	ret
41bdb5:	8d 40 00             	lea    0x0(%eax),%eax
41bdb8:	33 d2                	xor    %edx,%edx
41bdba:	e8 01 00 00 00       	call   0x41bdc0
41bdbf:	c3                   	ret
41bdc0:	53                   	push   %ebx
41bdc1:	56                   	push   %esi
41bdc2:	8b f2                	mov    %edx,%esi
41bdc4:	8b d8                	mov    %eax,%ebx
41bdc6:	85 f6                	test   %esi,%esi
41bdc8:	7c 05                	jl     0x41bdcf
41bdca:	3b 73 08             	cmp    0x8(%ebx),%esi
41bdcd:	7c 0f                	jl     0x41bdde
41bdcf:	8b 15 dc 70 6a 00    	mov    0x6a70dc,%edx
41bdd5:	8b ce                	mov    %esi,%ecx
41bdd7:	8b 03                	mov    (%ebx),%eax
41bdd9:	e8 1e ff ff ff       	call   0x41bcfc
41bdde:	8b 43 04             	mov    0x4(%ebx),%eax
41bde1:	8b 04 b0             	mov    (%eax,%esi,4),%eax
41bde4:	5e                   	pop    %esi
41bde5:	5b                   	pop    %ebx
41bde6:	c3                   	ret
41bde7:	90                   	nop
41bde8:	8b 50 0c             	mov    0xc(%eax),%edx
41bdeb:	83 fa 40             	cmp    $0x40,%edx
41bdee:	7e 0e                	jle    0x41bdfe
41bdf0:	8b ca                	mov    %edx,%ecx
41bdf2:	85 c9                	test   %ecx,%ecx
41bdf4:	79 03                	jns    0x41bdf9
41bdf6:	83 c1 03             	add    $0x3,%ecx
41bdf9:	c1 f9 02             	sar    $0x2,%ecx
41bdfc:	eb 11                	jmp    0x41be0f
41bdfe:	83 fa 08             	cmp    $0x8,%edx
41be01:	7e 07                	jle    0x41be0a
41be03:	b9 10 00 00 00       	mov    $0x10,%ecx
41be08:	eb 05                	jmp    0x41be0f
41be0a:	b9 04 00 00 00       	mov    $0x4,%ecx
41be0f:	03 ca                	add    %edx,%ecx
41be11:	8b d1                	mov    %ecx,%edx
41be13:	e8 68 01 00 00       	call   0x41bf80
41be18:	c3                   	ret
41be19:	8d 40 00             	lea    0x0(%eax),%eax
41be1c:	53                   	push   %ebx
41be1d:	33 c9                	xor    %ecx,%ecx
41be1f:	eb 01                	jmp    0x41be22
41be21:	41                   	inc    %ecx
41be22:	3b 48 08             	cmp    0x8(%eax),%ecx
41be25:	7d 08                	jge    0x41be2f
41be27:	8b 58 04             	mov    0x4(%eax),%ebx
41be2a:	3b 14 8b             	cmp    (%ebx,%ecx,4),%edx
41be2d:	75 f2                	jne    0x41be21
41be2f:	3b 48 08             	cmp    0x8(%eax),%ecx
41be32:	75 03                	jne    0x41be37
41be34:	83 c9 ff             	or     $0xffffffff,%ecx
41be37:	8b c1                	mov    %ecx,%eax
41be39:	5b                   	pop    %ebx
41be3a:	c3                   	ret
41be3b:	90                   	nop
41be3c:	53                   	push   %ebx
41be3d:	56                   	push   %esi
41be3e:	57                   	push   %edi
41be3f:	8b f9                	mov    %ecx,%edi
41be41:	8b f2                	mov    %edx,%esi
41be43:	8b d8                	mov    %eax,%ebx
41be45:	85 f6                	test   %esi,%esi
41be47:	7c 05                	jl     0x41be4e
41be49:	3b 73 08             	cmp    0x8(%ebx),%esi
41be4c:	7e 0f                	jle    0x41be5d
41be4e:	8b 15 dc 70 6a 00    	mov    0x6a70dc,%edx
41be54:	8b ce                	mov    %esi,%ecx
41be56:	8b 03                	mov    (%ebx),%eax
41be58:	e8 9f fe ff ff       	call   0x41bcfc
41be5d:	8b 43 08             	mov    0x8(%ebx),%eax
41be60:	3b 43 0c             	cmp    0xc(%ebx),%eax
41be63:	75 06                	jne    0x41be6b
41be65:	8b c3                	mov    %ebx,%eax
41be67:	8b 10                	mov    (%eax),%edx
41be69:	ff 12                	call   *(%edx)
41be6b:	8b 43 08             	mov    0x8(%ebx),%eax
41be6e:	3b f0                	cmp    %eax,%esi
41be70:	7d 19                	jge    0x41be8b
41be72:	2b c6                	sub    %esi,%eax
41be74:	8b c8                	mov    %eax,%ecx
41be76:	c1 e1 02             	shl    $0x2,%ecx
41be79:	8b 43 04             	mov    0x4(%ebx),%eax
41be7c:	8d 54 b0 04          	lea    0x4(%eax,%esi,4),%edx
41be80:	8b 43 04             	mov    0x4(%ebx),%eax
41be83:	8d 04 b0             	lea    (%eax,%esi,4),%eax
41be86:	e8 95 6b fe ff       	call   0x402a20
41be8b:	8b 43 04             	mov    0x4(%ebx),%eax
41be8e:	89 3c b0             	mov    %edi,(%eax,%esi,4)
41be91:	ff 43 08             	incl   0x8(%ebx)
41be94:	85 ff                	test   %edi,%edi
41be96:	74 0b                	je     0x41bea3
41be98:	33 c9                	xor    %ecx,%ecx
41be9a:	8b d7                	mov    %edi,%edx
41be9c:	8b c3                	mov    %ebx,%eax
41be9e:	8b 18                	mov    (%eax),%ebx
41bea0:	ff 53 04             	call   *0x4(%ebx)
41bea3:	5f                   	pop    %edi
41bea4:	5e                   	pop    %esi
41bea5:	5b                   	pop    %ebx
41bea6:	c3                   	ret
41bea7:	90                   	nop
41bea8:	8b 50 08             	mov    0x8(%eax),%edx
41beab:	4a                   	dec    %edx
41beac:	e8 0f ff ff ff       	call   0x41bdc0
41beb1:	c3                   	ret
41beb2:	8b c0                	mov    %eax,%eax
41beb4:	53                   	push   %ebx
41beb5:	56                   	push   %esi
41beb6:	57                   	push   %edi
41beb7:	55                   	push   %ebp
41beb8:	8b f1                	mov    %ecx,%esi
41beba:	8b fa                	mov    %edx,%edi
41bebc:	8b d8                	mov    %eax,%ebx
41bebe:	3b f7                	cmp    %edi,%esi
41bec0:	74 45                	je     0x41bf07
41bec2:	85 f6                	test   %esi,%esi
41bec4:	7c 05                	jl     0x41becb
41bec6:	3b 73 08             	cmp    0x8(%ebx),%esi
41bec9:	7c 0f                	jl     0x41beda
41becb:	8b 15 dc 70 6a 00    	mov    0x6a70dc,%edx
41bed1:	8b ce                	mov    %esi,%ecx
41bed3:	8b 03                	mov    (%ebx),%eax
41bed5:	e8 22 fe ff ff       	call   0x41bcfc
41beda:	8b d7                	mov    %edi,%edx
41bedc:	8b c3                	mov    %ebx,%eax
41bede:	e8 dd fe ff ff       	call   0x41bdc0
41bee3:	8b e8                	mov    %eax,%ebp
41bee5:	8b 43 04             	mov    0x4(%ebx),%eax
41bee8:	33 d2                	xor    %edx,%edx
41beea:	89 14 b8             	mov    %edx,(%eax,%edi,4)
41beed:	8b d7                	mov    %edi,%edx
41beef:	8b c3                	mov    %ebx,%eax
41bef1:	e8 6a fd ff ff       	call   0x41bc60
41bef6:	33 c9                	xor    %ecx,%ecx
41bef8:	8b d6                	mov    %esi,%edx
41befa:	8b c3                	mov    %ebx,%eax
41befc:	e8 3b ff ff ff       	call   0x41be3c
41bf01:	8b 43 04             	mov    0x4(%ebx),%eax
41bf04:	89 2c b0             	mov    %ebp,(%eax,%esi,4)
41bf07:	5d                   	pop    %ebp
41bf08:	5f                   	pop    %edi
41bf09:	5e                   	pop    %esi
41bf0a:	5b                   	pop    %ebx
41bf0b:	c3                   	ret
41bf0c:	53                   	push   %ebx
41bf0d:	56                   	push   %esi
41bf0e:	57                   	push   %edi
41bf0f:	8b f9                	mov    %ecx,%edi
41bf11:	8b f2                	mov    %edx,%esi
41bf13:	8b d8                	mov    %eax,%ebx
41bf15:	85 f6                	test   %esi,%esi
41bf17:	7c 05                	jl     0x41bf1e
41bf19:	3b 73 08             	cmp    0x8(%ebx),%esi
41bf1c:	7c 0f                	jl     0x41bf2d
41bf1e:	8b 15 dc 70 6a 00    	mov    0x6a70dc,%edx
41bf24:	8b ce                	mov    %esi,%ecx
41bf26:	8b 03                	mov    (%ebx),%eax
41bf28:	e8 cf fd ff ff       	call   0x41bcfc
41bf2d:	8b 53 04             	mov    0x4(%ebx),%edx
41bf30:	8b 04 b2             	mov    (%edx,%esi,4),%eax
41bf33:	3b f8                	cmp    %eax,%edi
41bf35:	74 24                	je     0x41bf5b
41bf37:	8b 4b 04             	mov    0x4(%ebx),%ecx
41bf3a:	89 3c b2             	mov    %edi,(%edx,%esi,4)
41bf3d:	85 c0                	test   %eax,%eax
41bf3f:	74 0b                	je     0x41bf4c
41bf41:	b1 02                	mov    $0x2,%cl
41bf43:	8b d0                	mov    %eax,%edx
41bf45:	8b c3                	mov    %ebx,%eax
41bf47:	8b 30                	mov    (%eax),%esi
41bf49:	ff 56 04             	call   *0x4(%esi)
41bf4c:	85 ff                	test   %edi,%edi
41bf4e:	74 0b                	je     0x41bf5b
41bf50:	33 c9                	xor    %ecx,%ecx
41bf52:	8b d7                	mov    %edi,%edx
41bf54:	8b c3                	mov    %ebx,%eax
41bf56:	8b 18                	mov    (%eax),%ebx
41bf58:	ff 53 04             	call   *0x4(%ebx)
41bf5b:	5f                   	pop    %edi
41bf5c:	5e                   	pop    %esi
41bf5d:	5b                   	pop    %ebx
41bf5e:	c3                   	ret
41bf5f:	90                   	nop
41bf60:	53                   	push   %ebx
41bf61:	56                   	push   %esi
41bf62:	8b d8                	mov    %eax,%ebx
41bf64:	8b c3                	mov    %ebx,%eax
41bf66:	e8 b1 fe ff ff       	call   0x41be1c
41bf6b:	8b f0                	mov    %eax,%esi
41bf6d:	85 f6                	test   %esi,%esi
41bf6f:	7c 09                	jl     0x41bf7a
41bf71:	8b d6                	mov    %esi,%edx
41bf73:	8b c3                	mov    %ebx,%eax
41bf75:	e8 e6 fc ff ff       	call   0x41bc60
41bf7a:	8b c6                	mov    %esi,%eax
41bf7c:	5e                   	pop    %esi
41bf7d:	5b                   	pop    %ebx
41bf7e:	c3                   	ret
41bf7f:	90                   	nop
41bf80:	53                   	push   %ebx
41bf81:	56                   	push   %esi
41bf82:	8b f2                	mov    %edx,%esi
41bf84:	8b d8                	mov    %eax,%ebx
41bf86:	3b 73 08             	cmp    0x8(%ebx),%esi
41bf89:	7c 08                	jl     0x41bf93
41bf8b:	81 fe ff ff ff 07    	cmp    $0x7ffffff,%esi
41bf91:	7e 0f                	jle    0x41bfa2
41bf93:	8b 15 60 6f 6a 00    	mov    0x6a6f60,%edx
41bf99:	8b ce                	mov    %esi,%ecx
41bf9b:	8b 03                	mov    (%ebx),%eax
41bf9d:	e8 5a fd ff ff       	call   0x41bcfc
41bfa2:	3b 73 0c             	cmp    0xc(%ebx),%esi
41bfa5:	74 10                	je     0x41bfb7
41bfa7:	8b d6                	mov    %esi,%edx
41bfa9:	c1 e2 02             	shl    $0x2,%edx
41bfac:	8d 43 04             	lea    0x4(%ebx),%eax
41bfaf:	e8 38 68 fe ff       	call   0x4027ec
41bfb4:	89 73 0c             	mov    %esi,0xc(%ebx)
41bfb7:	5e                   	pop    %esi
41bfb8:	5b                   	pop    %ebx
41bfb9:	c3                   	ret
41bfba:	8b c0                	mov    %eax,%eax
41bfbc:	53                   	push   %ebx
41bfbd:	56                   	push   %esi
41bfbe:	57                   	push   %edi
41bfbf:	55                   	push   %ebp
41bfc0:	8b f2                	mov    %edx,%esi
41bfc2:	8b d8                	mov    %eax,%ebx
41bfc4:	85 f6                	test   %esi,%esi
41bfc6:	7c 08                	jl     0x41bfd0
41bfc8:	81 fe ff ff ff 07    	cmp    $0x7ffffff,%esi
41bfce:	7e 0f                	jle    0x41bfdf
41bfd0:	8b 15 88 6e 6a 00    	mov    0x6a6e88,%edx
41bfd6:	8b ce                	mov    %esi,%ecx
41bfd8:	8b 03                	mov    (%ebx),%eax
41bfda:	e8 1d fd ff ff       	call   0x41bcfc
41bfdf:	3b 73 0c             	cmp    0xc(%ebx),%esi
41bfe2:	7e 09                	jle    0x41bfed
41bfe4:	8b d6                	mov    %esi,%edx
41bfe6:	8b c3                	mov    %ebx,%eax
41bfe8:	e8 93 ff ff ff       	call   0x41bf80
41bfed:	8b 43 08             	mov    0x8(%ebx),%eax
41bff0:	3b f0                	cmp    %eax,%esi
41bff2:	7e 19                	jle    0x41c00d
41bff4:	8b 53 04             	mov    0x4(%ebx),%edx
41bff7:	8d 14 82             	lea    (%edx,%eax,4),%edx
41bffa:	8b ce                	mov    %esi,%ecx
41bffc:	2b c8                	sub    %eax,%ecx
41bffe:	8b c1                	mov    %ecx,%eax
41c000:	c1 e0 02             	shl    $0x2,%eax
41c003:	33 c9                	xor    %ecx,%ecx
41c005:	92                   	xchg   %eax,%edx
41c006:	e8 35 72 fe ff       	call   0x403240
41c00b:	eb 17                	jmp    0x41c024
41c00d:	8b e8                	mov    %eax,%ebp
41c00f:	4d                   	dec    %ebp
41c010:	8b fe                	mov    %esi,%edi
41c012:	2b fd                	sub    %ebp,%edi
41c014:	7f 0e                	jg     0x41c024
41c016:	4f                   	dec    %edi
41c017:	8b d5                	mov    %ebp,%edx
41c019:	8b c3                	mov    %ebx,%eax
41c01b:	e8 40 fc ff ff       	call   0x41bc60
41c020:	4d                   	dec    %ebp
41c021:	47                   	inc    %edi
41c022:	75 f3                	jne    0x41c017
41c024:	89 73 08             	mov    %esi,0x8(%ebx)
41c027:	5d                   	pop    %ebp
41c028:	5f                   	pop    %edi
41c029:	5e                   	pop    %esi
41c02a:	5b                   	pop    %ebx
41c02b:	c3                   	ret
41c02c:	55                   	push   %ebp
41c02d:	8b ec                	mov    %esp,%ebp
41c02f:	83 c4 f4             	add    $0xfffffff4,%esp
41c032:	53                   	push   %ebx
41c033:	56                   	push   %esi
41c034:	57                   	push   %edi
41c035:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41c038:	89 55 fc             	mov    %edx,-0x4(%ebp)
41c03b:	8b f8                	mov    %eax,%edi
41c03d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
41c040:	8b 75 f8             	mov    -0x8(%ebp),%esi
41c043:	8b 45 fc             	mov    -0x4(%ebp),%eax
41c046:	03 45 f8             	add    -0x8(%ebp),%eax
41c049:	d1 e8                	shr    $1,%eax
41c04b:	8b 04 87             	mov    (%edi,%eax,4),%eax
41c04e:	89 45 f4             	mov    %eax,-0xc(%ebp)
41c051:	eb 01                	jmp    0x41c054
41c053:	43                   	inc    %ebx
41c054:	8b 04 9f             	mov    (%edi,%ebx,4),%eax
41c057:	8b 55 f4             	mov    -0xc(%ebp),%edx
41c05a:	ff 55 08             	call   *0x8(%ebp)
41c05d:	85 c0                	test   %eax,%eax
41c05f:	7c f2                	jl     0x41c053
41c061:	eb 01                	jmp    0x41c064
41c063:	4e                   	dec    %esi
41c064:	8b 04 b7             	mov    (%edi,%esi,4),%eax
41c067:	8b 55 f4             	mov    -0xc(%ebp),%edx
41c06a:	ff 55 08             	call   *0x8(%ebp)
41c06d:	85 c0                	test   %eax,%eax
41c06f:	7f f2                	jg     0x41c063