51ca2b:	e8 60 0c 01 00       	call   0x52d690
51ca30:	8b 4d e0             	mov    -0x20(%ebp),%ecx
51ca33:	83 c4 08             	add    $0x8,%esp
51ca36:	8b 45 dc             	mov    -0x24(%ebp),%eax
51ca39:	3b 4d 14             	cmp    0x14(%ebp),%ecx
51ca3c:	7f 44                	jg     0x51ca82
51ca3e:	7c 07                	jl     0x51ca47
51ca40:	8b 55 10             	mov    0x10(%ebp),%edx
51ca43:	3b c2                	cmp    %edx,%eax
51ca45:	73 3e                	jae    0x51ca85
51ca47:	8d 57 01             	lea    0x1(%edi),%edx
51ca4a:	89 55 f8             	mov    %edx,-0x8(%ebp)
51ca4d:	3b d3                	cmp    %ebx,%edx
51ca4f:	7e 49                	jle    0x51ca9a
51ca51:	83 ce ff             	or     $0xffffffff,%esi
51ca54:	8b 45 f0             	mov    -0x10(%ebp),%eax
51ca57:	8b 5d 08             	mov    0x8(%ebp),%ebx
51ca5a:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
51ca5e:	0f 85 69 02 00 00    	jne    0x51cccd
51ca64:	8b f0                	mov    %eax,%esi
51ca66:	0f b7 46 18          	movzwl 0x18(%esi),%eax
51ca6a:	3b d0                	cmp    %eax,%edx
51ca6c:	0f 8c 86 01 00 00    	jl     0x51cbf8
51ca72:	0f b6 4e 09          	movzbl 0x9(%esi),%ecx
51ca76:	8b 46 38             	mov    0x38(%esi),%eax
51ca79:	8b 54 01 08          	mov    0x8(%ecx,%eax,1),%edx
51ca7d:	e9 90 01 00 00       	jmp    0x51cc12
51ca82:	8b 55 10             	mov    0x10(%ebp),%edx
51ca85:	3b 4d 14             	cmp    0x14(%ebp),%ecx
51ca88:	7c 21                	jl     0x51caab
51ca8a:	7f 04                	jg     0x51ca90
51ca8c:	3b c2                	cmp    %edx,%eax
51ca8e:	76 1b                	jbe    0x51caab
51ca90:	8b 55 f8             	mov    -0x8(%ebp),%edx
51ca93:	8d 5f ff             	lea    -0x1(%edi),%ebx
51ca96:	3b d3                	cmp    %ebx,%edx
51ca98:	7f 0a                	jg     0x51caa4
51ca9a:	8d 3c 13             	lea    (%ebx,%edx,1),%edi
51ca9d:	d1 ff                	sar    $1,%edi
51ca9f:	e9 4b ff ff ff       	jmp    0x51c9ef
51caa4:	be 01 00 00 00       	mov    $0x1,%esi
51caa9:	eb a9                	jmp    0x51ca54
51caab:	8b 5d 08             	mov    0x8(%ebp),%ebx
51caae:	66 89 7b 46          	mov    %di,0x46(%ebx)
51cab2:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
51cab6:	0f 85 e0 01 00 00    	jne    0x51cc9c
51cabc:	8b d7                	mov    %edi,%edx
51cabe:	89 55 f8             	mov    %edx,-0x8(%ebp)
51cac1:	eb a3                	jmp    0x51ca66
51cac3:	8b 46 40             	mov    0x40(%esi),%eax
51cac6:	66 8b 04 78          	mov    (%eax,%edi,2),%ax
51caca:	8a e8                	mov    %al,%ch
51cacc:	8a cc                	mov    %ah,%cl
51cace:	0f b7 46 1a          	movzwl 0x1a(%esi),%eax
51cad2:	0f b7 c9             	movzwl %cx,%ecx
51cad5:	23 c8                	and    %eax,%ecx
51cad7:	0f b6 46 0b          	movzbl 0xb(%esi),%eax
51cadb:	03 4e 44             	add    0x44(%esi),%ecx
51cade:	0f b6 11             	movzbl (%ecx),%edx
51cae1:	3b d0                	cmp    %eax,%edx
51cae3:	77 15                	ja     0x51cafa
51cae5:	ff 75 0c             	push   0xc(%ebp)
51cae8:	8d 41 01             	lea    0x1(%ecx),%eax
51caeb:	50                   	push   %eax
51caec:	52                   	push   %edx
51caed:	ff 55 f4             	call   *-0xc(%ebp)
51caf0:	83 c4 0c             	add    $0xc,%esp
51caf3:	8b f0                	mov    %eax,%esi
51caf5:	e9 ce 00 00 00       	jmp    0x51cbc8
51cafa:	8a 41 01             	mov    0x1(%ecx),%al
51cafd:	84 c0                	test   %al,%al
51caff:	78 28                	js     0x51cb29
51cb01:	83 e2 7f             	and    $0x7f,%edx
51cb04:	0f b6 c0             	movzbl %al,%eax
51cb07:	c1 e2 07             	shl    $0x7,%edx
51cb0a:	03 d0                	add    %eax,%edx
51cb0c:	0f b7 46 0e          	movzwl 0xe(%esi),%eax
51cb10:	3b d0                	cmp    %eax,%edx
51cb12:	77 15                	ja     0x51cb29
51cb14:	ff 75 0c             	push   0xc(%ebp)
51cb17:	8d 41 02             	lea    0x2(%ecx),%eax
51cb1a:	50                   	push   %eax
51cb1b:	52                   	push   %edx
51cb1c:	ff 55 f4             	call   *-0xc(%ebp)
51cb1f:	83 c4 0c             	add    $0xc,%esp
51cb22:	8b f0                	mov    %eax,%esi
51cb24:	e9 9f 00 00 00       	jmp    0x51cbc8
51cb29:	8b 55 f0             	mov    -0x10(%ebp),%edx
51cb2c:	8b 5d 08             	mov    0x8(%ebp),%ebx
51cb2f:	0f b6 42 0a          	movzbl 0xa(%edx),%eax
51cb33:	8d 73 20             	lea    0x20(%ebx),%esi
51cb36:	2b c8                	sub    %eax,%ecx
51cb38:	8b 42 50             	mov    0x50(%edx),%eax
51cb3b:	56                   	push   %esi
51cb3c:	51                   	push   %ecx
51cb3d:	52                   	push   %edx
51cb3e:	ff d0                	call   *%eax
51cb40:	8b 36                	mov    (%esi),%esi
51cb42:	83 c4 0c             	add    $0xc,%esp
51cb45:	83 fe 02             	cmp    $0x2,%esi
51cb48:	0f 8c ee 01 00 00    	jl     0x51cd3c
51cb4e:	8b 4b 14             	mov    0x14(%ebx),%ecx
51cb51:	33 d2                	xor    %edx,%edx
51cb53:	8b c6                	mov    %esi,%eax
51cb55:	f7 71 24             	divl   0x24(%ecx)
51cb58:	3b 41 2c             	cmp    0x2c(%ecx),%eax
51cb5b:	0f 87 db 01 00 00    	ja     0x51cd3c
51cb61:	8d 46 12             	lea    0x12(%esi),%eax
51cb64:	99                   	cltd
51cb65:	52                   	push   %edx
51cb66:	50                   	push   %eax
51cb67:	e8 f4 43 01 00       	call   0x530f60
51cb6c:	8b d8                	mov    %eax,%ebx
51cb6e:	83 c4 08             	add    $0x8,%esp
51cb71:	85 db                	test   %ebx,%ebx
51cb73:	0f 84 ae 01 00 00    	je     0x51cd27
51cb79:	8b 45 08             	mov    0x8(%ebp),%eax
51cb7c:	6a 00                	push   $0x0
51cb7e:	53                   	push   %ebx
51cb7f:	56                   	push   %esi
51cb80:	6a 00                	push   $0x0
51cb82:	50                   	push   %eax
51cb83:	66 89 78 46          	mov    %di,0x46(%eax)
51cb87:	e8 14 50 fd ff       	call   0x4f1ba0
51cb8c:	8b 4d 08             	mov    0x8(%ebp),%ecx
51cb8f:	0f 57 c0             	xorps  %xmm0,%xmm0
51cb92:	0f 11 04 33          	movups %xmm0,(%ebx,%esi,1)
51cb96:	66 c7 44 33 10 00 00 	movw   $0x0,0x10(%ebx,%esi,1)
51cb9d:	83 c4 14             	add    $0x14,%esp
51cba0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
51cba3:	80 61 01 fb          	andb   $0xfb,0x1(%ecx)
51cba7:	85 c0                	test   %eax,%eax
51cba9:	0f 85 5c 01 00 00    	jne    0x51cd0b
51cbaf:	50                   	push   %eax
51cbb0:	ff 75 0c             	push   0xc(%ebp)
51cbb3:	53                   	push   %ebx
51cbb4:	56                   	push   %esi
51cbb5:	e8 86 f9 02 00       	call   0x54c540
51cbba:	53                   	push   %ebx
51cbbb:	8b f0                	mov    %eax,%esi
51cbbd:	e8 ce e1 fc ff       	call   0x4ead90
51cbc2:	8b 5d ec             	mov    -0x14(%ebp),%ebx
51cbc5:	83 c4 14             	add    $0x14,%esp
51cbc8:	85 f6                	test   %esi,%esi
51cbca:	79 08                	jns    0x51cbd4
51cbcc:	8d 57 01             	lea    0x1(%edi),%edx
51cbcf:	89 55 f8             	mov    %edx,-0x8(%ebp)
51cbd2:	eb 0f                	jmp    0x51cbe3
51cbd4:	0f 8e 0b 01 00 00    	jle    0x51cce5
51cbda:	8b 55 f8             	mov    -0x8(%ebp),%edx
51cbdd:	8d 5f ff             	lea    -0x1(%edi),%ebx
51cbe0:	89 5d ec             	mov    %ebx,-0x14(%ebp)
51cbe3:	3b d3                	cmp    %ebx,%edx
51cbe5:	0f 8f 69 fe ff ff    	jg     0x51ca54
51cbeb:	8b 75 f0             	mov    -0x10(%ebp),%esi
51cbee:	8d 3c 13             	lea    (%ebx,%edx,1),%edi
51cbf1:	d1 ff                	sar    $1,%edi
51cbf3:	e9 cb fe ff ff       	jmp    0x51cac3
51cbf8:	8b 46 40             	mov    0x40(%esi),%eax
51cbfb:	66 8b 04 50          	mov    (%eax,%edx,2),%ax
51cbff:	8a e8                	mov    %al,%ch
51cc01:	8a cc                	mov    %ah,%cl
51cc03:	0f b7 46 1a          	movzwl 0x1a(%esi),%eax
51cc07:	0f b7 c9             	movzwl %cx,%ecx
51cc0a:	23 c8                	and    %eax,%ecx
51cc0c:	8b 46 38             	mov    0x38(%esi),%eax
51cc0f:	8b 14 01             	mov    (%ecx,%eax,1),%edx
51cc12:	8a 43 44             	mov    0x44(%ebx),%al
51cc15:	8b 4d f8             	mov    -0x8(%ebp),%ecx
51cc18:	8b 73 14             	mov    0x14(%ebx),%esi
51cc1b:	66 89 4b 46          	mov    %cx,0x46(%ebx)
51cc1f:	0f ca                	bswap  %edx
51cc21:	3c 13                	cmp    $0x13,%al
51cc23:	0f 8d 95 00 00 00    	jge    0x51ccbe
51cc29:	80 63 01 f9          	andb   $0xf9,0x1(%ebx)
51cc2d:	33 ff                	xor    %edi,%edi
51cc2f:	0f be c0             	movsbl %al,%eax
51cc32:	66 89 7b 32          	mov    %di,0x32(%ebx)
51cc36:	8d 7b 74             	lea    0x74(%ebx),%edi
51cc39:	66 89 4c 43 48       	mov    %cx,0x48(%ebx,%eax,2)
51cc3e:	0f be 4b 44          	movsbl 0x44(%ebx),%ecx
51cc42:	8b 07                	mov    (%edi),%eax
51cc44:	89 44 8b 78          	mov    %eax,0x78(%ebx,%ecx,4)
51cc48:	33 c0                	xor    %eax,%eax
51cc4a:	fe 43 44             	incb   0x44(%ebx)
51cc4d:	66 89 43 46          	mov    %ax,0x46(%ebx)
51cc51:	0f b6 43 02          	movzbl 0x2(%ebx),%eax
51cc55:	50                   	push   %eax
51cc56:	53                   	push   %ebx
51cc57:	57                   	push   %edi
51cc58:	52                   	push   %edx
51cc59:	56                   	push   %esi
51cc5a:	e8 91 8d fe ff       	call   0x5059f0
51cc5f:	83 c4 14             	add    $0x14,%esp
51cc62:	85 c0                	test   %eax,%eax
51cc64:	0f 85 f5 00 00 00    	jne    0x51cd5f
51cc6a:	8b 45 e8             	mov    -0x18(%ebp),%eax
51cc6d:	e9 4e fd ff ff       	jmp    0x51c9c0
51cc72:	68 fc c4 6b 00       	push   $0x6bc4fc
51cc77:	68 dc 0f 01 00       	push   $0x10fdc
51cc7c:	68 94 c4 6b 00       	push   $0x6bc494
51cc81:	68 78 c4 6b 00       	push   $0x6bc478
51cc86:	6a 0b                	push   $0xb
51cc88:	e8 53 33 fc ff       	call   0x4dffe0
51cc8d:	83 c4 14             	add    $0x14,%esp
51cc90:	b8 0b 00 00 00       	mov    $0xb,%eax
51cc95:	5f                   	pop    %edi
51cc96:	5e                   	pop    %esi
51cc97:	5b                   	pop    %ebx
51cc98:	8b e5                	mov    %ebp,%esp
51cc9a:	5d                   	pop    %ebp
51cc9b:	c3                   	ret
51cc9c:	80 4b 01 02          	orb    $0x2,0x1(%ebx)
51cca0:	89 43 20             	mov    %eax,0x20(%ebx)
51cca3:	33 c0                	xor    %eax,%eax
51cca5:	66 89 43 32          	mov    %ax,0x32(%ebx)
51cca9:	8b 45 1c             	mov    0x1c(%ebp),%eax
51ccac:	5f                   	pop    %edi
51ccad:	89 4b 24             	mov    %ecx,0x24(%ebx)
51ccb0:	5e                   	pop    %esi
51ccb1:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
51ccb7:	33 c0                	xor    %eax,%eax
51ccb9:	5b                   	pop    %ebx
51ccba:	8b e5                	mov    %ebp,%esp
51ccbc:	5d                   	pop    %ebp
51ccbd:	c3                   	ret
51ccbe:	68 fc c4 6b 00       	push   $0x6bc4fc
51ccc3:	68 40 0e 01 00       	push   $0x10e40
51ccc8:	e9 79 00 00 00       	jmp    0x51cd46
51cccd:	8b 45 1c             	mov    0x1c(%ebp),%eax
51ccd0:	66 89 7b 46          	mov    %di,0x46(%ebx)
51ccd4:	5f                   	pop    %edi
51ccd5:	89 30                	mov    %esi,(%eax)
51ccd7:	33 c0                	xor    %eax,%eax
51ccd9:	33 c9                	xor    %ecx,%ecx
51ccdb:	5e                   	pop    %esi
51ccdc:	66 89 4b 32          	mov    %cx,0x32(%ebx)
51cce0:	5b                   	pop    %ebx
51cce1:	8b e5                	mov    %ebp,%esp
51cce3:	5d                   	pop    %ebp
51cce4:	c3                   	ret
51cce5:	8b 45 1c             	mov    0x1c(%ebp),%eax
51cce8:	8b 5d 08             	mov    0x8(%ebp),%ebx
51cceb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51ccee:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
51ccf4:	33 c0                	xor    %eax,%eax
51ccf6:	66 89 7b 46          	mov    %di,0x46(%ebx)
51ccfa:	38 41 0b             	cmp    %al,0xb(%ecx)
51ccfd:	74 60                	je     0x51cd5f
51ccff:	68 fc c4 6b 00       	push   $0x6bc4fc
51cd04:	68 47 10 01 00       	push   $0x11047
51cd09:	eb 3b                	jmp    0x51cd46
51cd0b:	53                   	push   %ebx
51cd0c:	e8 7f e0 fc ff       	call   0x4ead90
51cd11:	8b 5d 08             	mov    0x8(%ebp),%ebx
51cd14:	83 c4 04             	add    $0x4,%esp
51cd17:	8b 45 e4             	mov    -0x1c(%ebp),%eax
51cd1a:	33 c9                	xor    %ecx,%ecx
51cd1c:	5f                   	pop    %edi
51cd1d:	5e                   	pop    %esi
51cd1e:	66 89 4b 32          	mov    %cx,0x32(%ebx)
51cd22:	5b                   	pop    %ebx
51cd23:	8b e5                	mov    %ebp,%esp
51cd25:	5d                   	pop    %ebp
51cd26:	c3                   	ret
51cd27:	8b 5d 08             	mov    0x8(%ebp),%ebx
51cd2a:	33 c9                	xor    %ecx,%ecx
51cd2c:	5f                   	pop    %edi
51cd2d:	5e                   	pop    %esi
51cd2e:	b8 07 00 00 00       	mov    $0x7,%eax
51cd33:	66 89 4b 32          	mov    %cx,0x32(%ebx)
51cd37:	5b                   	pop    %ebx
51cd38:	8b e5                	mov    %ebp,%esp
51cd3a:	5d                   	pop    %ebp
51cd3b:	c3                   	ret
51cd3c:	68 fc c4 6b 00       	push   $0x6bc4fc
51cd41:	68 27 10 01 00       	push   $0x11027
51cd46:	68 94 c4 6b 00       	push   $0x6bc494
51cd4b:	68 78 c4 6b 00       	push   $0x6bc478
51cd50:	6a 0b                	push   $0xb
51cd52:	e8 89 32 fc ff       	call   0x4dffe0
51cd57:	83 c4 14             	add    $0x14,%esp
51cd5a:	b8 0b 00 00 00       	mov    $0xb,%eax
51cd5f:	33 c9                	xor    %ecx,%ecx
51cd61:	66 89 4b 32          	mov    %cx,0x32(%ebx)
51cd65:	5f                   	pop    %edi
51cd66:	5e                   	pop    %esi
51cd67:	5b                   	pop    %ebx
51cd68:	8b e5                	mov    %ebp,%esp
51cd6a:	5d                   	pop    %ebp
51cd6b:	c3                   	ret
51cd6c:	cc                   	int3
51cd6d:	cc                   	int3
51cd6e:	cc                   	int3
51cd6f:	cc                   	int3
51cd70:	55                   	push   %ebp
51cd71:	8b ec                	mov    %esp,%ebp
51cd73:	8b 4d 08             	mov    0x8(%ebp),%ecx
51cd76:	33 c0                	xor    %eax,%eax
51cd78:	80 61 01 f9          	andb   $0xf9,0x1(%ecx)
51cd7c:	66 89 41 32          	mov    %ax,0x32(%ecx)
51cd80:	38 01                	cmp    %al,(%ecx)
51cd82:	75 18                	jne    0x51cd9c
51cd84:	8b 41 74             	mov    0x74(%ecx),%eax
51cd87:	66 ff 41 46          	incw   0x46(%ecx)
51cd8b:	0f b7 51 46          	movzwl 0x46(%ecx),%edx
51cd8f:	66 3b 50 18          	cmp    0x18(%eax),%dx
51cd93:	72 12                	jb     0x51cda7
51cd95:	8d 42 ff             	lea    -0x1(%edx),%eax
51cd98:	66 89 41 46          	mov    %ax,0x46(%ecx)
51cd9c:	51                   	push   %ecx
51cd9d:	e8 8e a3 fd ff       	call   0x4f7130
51cda2:	83 c4 04             	add    $0x4,%esp
51cda5:	5d                   	pop    %ebp
51cda6:	c3                   	ret
51cda7:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
51cdab:	74 04                	je     0x51cdb1
51cdad:	33 c0                	xor    %eax,%eax
51cdaf:	5d                   	pop    %ebp
51cdb0:	c3                   	ret
51cdb1:	51                   	push   %ecx
51cdb2:	e8 69 cc fe ff       	call   0x509a20
51cdb7:	83 c4 04             	add    $0x4,%esp
51cdba:	5d                   	pop    %ebp
51cdbb:	c3                   	ret
51cdbc:	cc                   	int3
51cdbd:	cc                   	int3
51cdbe:	cc                   	int3
51cdbf:	cc                   	int3
51cdc0:	55                   	push   %ebp
51cdc1:	8b ec                	mov    %esp,%ebp
51cdc3:	81 ec 90 00 00 00    	sub    $0x90,%esp
51cdc9:	a1 d4 89 72 00       	mov    0x7289d4,%eax
51cdce:	33 c5                	xor    %ebp,%eax
51cdd0:	89 45 fc             	mov    %eax,-0x4(%ebp)
51cdd3:	8b 45 08             	mov    0x8(%ebp),%eax
51cdd6:	8b 55 14             	mov    0x14(%ebp),%edx
51cdd9:	8b 4d 10             	mov    0x10(%ebp),%ecx
51cddc:	53                   	push   %ebx
51cddd:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
51cde3:	8b 45 0c             	mov    0xc(%ebp),%eax
51cde6:	89 55 88             	mov    %edx,-0x78(%ebp)
51cde9:	33 d2                	xor    %edx,%edx
51cdeb:	89 45 84             	mov    %eax,-0x7c(%ebp)
51cdee:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
51cdf1:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
51cdf7:	89 55 94             	mov    %edx,-0x6c(%ebp)
51cdfa:	56                   	push   %esi
51cdfb:	57                   	push   %edi
51cdfc:	85 c0                	test   %eax,%eax