51be30:	80 78 11 00          	cmpb   $0x0,0x11(%eax)
51be34:	74 0c                	je     0x51be42
51be36:	0f b7 43 10          	movzwl 0x10(%ebx),%eax
51be3a:	3b d0                	cmp    %eax,%edx
51be3c:	0f 8d 50 01 00 00    	jge    0x51bf92
51be42:	0f b6 4b 09          	movzbl 0x9(%ebx),%ecx
51be46:	8b 43 38             	mov    0x38(%ebx),%eax
51be49:	83 c1 0a             	add    $0xa,%ecx
51be4c:	03 c1                	add    %ecx,%eax
51be4e:	8b 4d bc             	mov    -0x44(%ebp),%ecx
51be51:	3b c8                	cmp    %eax,%ecx
51be53:	0f 83 f3 00 00 00    	jae    0x51bf4c
51be59:	68 c4 1c 01 00       	push   $0x11cc4
51be5e:	e8 4d 3f 00 00       	call   0x51fdb0
51be63:	83 c4 04             	add    $0x4,%esp
51be66:	5f                   	pop    %edi
51be67:	5e                   	pop    %esi
51be68:	5b                   	pop    %ebx
51be69:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51be6c:	33 cd                	xor    %ebp,%ecx
51be6e:	e8 67 56 0c 00       	call   0x5e14da
51be73:	8b e5                	mov    %ebp,%esp
51be75:	5d                   	pop    %ebp
51be76:	c3                   	ret
51be77:	85 c0                	test   %eax,%eax
51be79:	0f 85 ed fe ff ff    	jne    0x51bd6c
51be7f:	f6 45 10 02          	testb  $0x2,0x10(%ebp)
51be83:	75 76                	jne    0x51befb
51be85:	0f b7 4f 18          	movzwl 0x18(%edi),%ecx
51be89:	66 85 c9             	test   %cx,%cx
51be8c:	74 37                	je     0x51bec5
51be8e:	8b 47 14             	mov    0x14(%edi),%eax
51be91:	89 45 f0             	mov    %eax,-0x10(%ebp)
51be94:	8d 45 d0             	lea    -0x30(%ebp),%eax
51be97:	50                   	push   %eax
51be98:	33 c0                	xor    %eax,%eax
51be9a:	66 89 4d f4          	mov    %cx,-0xc(%ebp)
51be9e:	8b 4d 10             	mov    0x10(%ebp),%ecx
51bea1:	85 c9                	test   %ecx,%ecx
51bea3:	89 55 ec             	mov    %edx,-0x14(%ebp)
51bea6:	0f 95 c0             	setne  %al
51bea9:	c7 45 f6 00 00 00 00 	movl   $0x0,-0xa(%ebp)
51beb0:	50                   	push   %eax
51beb1:	6a 00                	push   $0x0
51beb3:	6a 00                	push   $0x0
51beb5:	8d 45 ec             	lea    -0x14(%ebp),%eax
51beb8:	c6 45 fa 00          	movb   $0x0,-0x6(%ebp)
51bebc:	50                   	push   %eax
51bebd:	56                   	push   %esi
51bebe:	e8 fd 09 00 00       	call   0x51c8c0
51bec3:	eb 1d                	jmp    0x51bee2
51bec5:	8b 4d 10             	mov    0x10(%ebp),%ecx
51bec8:	8d 45 d0             	lea    -0x30(%ebp),%eax
51becb:	50                   	push   %eax
51becc:	33 c0                	xor    %eax,%eax
51bece:	85 c9                	test   %ecx,%ecx
51bed0:	0f 95 c0             	setne  %al
51bed3:	50                   	push   %eax
51bed4:	ff 77 0c             	push   0xc(%edi)
51bed7:	ff 77 08             	push   0x8(%edi)
51beda:	ff 37                	push   (%edi)
51bedc:	56                   	push   %esi
51bedd:	e8 9e b1 fd ff       	call   0x4f7080
51bee2:	83 c4 18             	add    $0x18,%esp
51bee5:	85 c0                	test   %eax,%eax
51bee7:	0f 85 af 01 00 00    	jne    0x51c09c
51beed:	8b 45 d0             	mov    -0x30(%ebp),%eax
51bef0:	89 45 14             	mov    %eax,0x14(%ebp)
51bef3:	85 c0                	test   %eax,%eax
51bef5:	0f 85 71 fe ff ff    	jne    0x51bd6c
51befb:	56                   	push   %esi
51befc:	e8 af 9c fe ff       	call   0x505bb0
51bf01:	8b 46 20             	mov    0x20(%esi),%eax
51bf04:	83 c4 04             	add    $0x4,%esp
51bf07:	3b 47 08             	cmp    0x8(%edi),%eax
51bf0a:	0f 85 5c fe ff ff    	jne    0x51bd6c
51bf10:	8b 46 24             	mov    0x24(%esi),%eax
51bf13:	3b 47 0c             	cmp    0xc(%edi),%eax
51bf16:	0f 85 50 fe ff ff    	jne    0x51bd6c
51bf1c:	8b 07                	mov    (%edi),%eax
51bf1e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
51bf21:	8b 47 08             	mov    0x8(%edi),%eax
51bf24:	89 45 f0             	mov    %eax,-0x10(%ebp)
51bf27:	8d 45 d4             	lea    -0x2c(%ebp),%eax
51bf2a:	50                   	push   %eax
51bf2b:	56                   	push   %esi
51bf2c:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
51bf33:	e8 08 b3 fd ff       	call   0x4f7240
51bf38:	83 c4 08             	add    $0x8,%esp
51bf3b:	5f                   	pop    %edi
51bf3c:	5e                   	pop    %esi
51bf3d:	5b                   	pop    %ebx
51bf3e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51bf41:	33 cd                	xor    %ebp,%ecx
51bf43:	e8 92 55 0c 00       	call   0x5e14da
51bf48:	8b e5                	mov    %ebp,%esp
51bf4a:	5d                   	pop    %ebp
51bf4b:	c3                   	ret
51bf4c:	8d 04 11             	lea    (%ecx,%edx,1),%eax
51bf4f:	3b 43 3c             	cmp    0x3c(%ebx),%eax
51bf52:	76 1e                	jbe    0x51bf72
51bf54:	68 c7 1c 01 00       	push   $0x11cc7
51bf59:	e8 52 3e 00 00       	call   0x51fdb0
51bf5e:	83 c4 04             	add    $0x4,%esp
51bf61:	5f                   	pop    %edi
51bf62:	5e                   	pop    %esi
51bf63:	5b                   	pop    %ebx
51bf64:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51bf67:	33 cd                	xor    %ebp,%ecx
51bf69:	e8 6c 55 0c 00       	call   0x5e14da
51bf6e:	8b e5                	mov    %ebp,%esp
51bf70:	5d                   	pop    %ebp
51bf71:	c3                   	ret
51bf72:	52                   	push   %edx
51bf73:	ff 75 c0             	push   -0x40(%ebp)
51bf76:	51                   	push   %ecx
51bf77:	e8 84 6f 0c 00       	call   0x5e2f00
51bf7c:	83 c4 0c             	add    $0xc,%esp
51bf7f:	33 c0                	xor    %eax,%eax
51bf81:	5f                   	pop    %edi
51bf82:	5e                   	pop    %esi
51bf83:	5b                   	pop    %ebx
51bf84:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51bf87:	33 cd                	xor    %ebp,%ecx
51bf89:	e8 4c 55 0c 00       	call   0x5e14da
51bf8e:	8b e5                	mov    %ebp,%esp
51bf90:	5d                   	pop    %ebp
51bf91:	c3                   	ret
51bf92:	8d 45 cc             	lea    -0x34(%ebp),%eax
51bf95:	50                   	push   %eax
51bf96:	51                   	push   %ecx
51bf97:	ff 75 d0             	push   -0x30(%ebp)
51bf9a:	53                   	push   %ebx
51bf9b:	e8 30 25 fe ff       	call   0x4fe4d0
51bfa0:	8b 4d cc             	mov    -0x34(%ebp),%ecx
51bfa3:	83 c4 10             	add    $0x10,%esp
51bfa6:	85 c9                	test   %ecx,%ecx
51bfa8:	0f 85 ec 00 00 00    	jne    0x51c09a
51bfae:	8b 4d d0             	mov    -0x30(%ebp),%ecx
51bfb1:	eb 17                	jmp    0x51bfca
51bfb3:	79 15                	jns    0x51bfca
51bfb5:	66 83 7b 18 00       	cmpw   $0x0,0x18(%ebx)
51bfba:	76 0e                	jbe    0x51bfca
51bfbc:	80 66 01 fd          	andb   $0xfd,0x1(%esi)
51bfc0:	8d 41 01             	lea    0x1(%ecx),%eax
51bfc3:	66 89 46 46          	mov    %ax,0x46(%esi)
51bfc7:	0f b7 c8             	movzwl %ax,%ecx
51bfca:	8d 45 cc             	lea    -0x34(%ebp),%eax
51bfcd:	50                   	push   %eax
51bfce:	6a 00                	push   $0x0
51bfd0:	6a 00                	push   $0x0
51bfd2:	ff 75 c4             	push   -0x3c(%ebp)
51bfd5:	ff 75 c0             	push   -0x40(%ebp)
51bfd8:	51                   	push   %ecx
51bfd9:	53                   	push   %ebx
51bfda:	e8 51 b1 fe ff       	call   0x507130
51bfdf:	33 c0                	xor    %eax,%eax
51bfe1:	83 c4 1c             	add    $0x1c,%esp
51bfe4:	66 89 46 32          	mov    %ax,0x32(%esi)
51bfe8:	38 43 0c             	cmp    %al,0xc(%ebx)
51bfeb:	0f 84 a6 00 00 00    	je     0x51c097
51bff1:	80 66 01 fd          	andb   $0xfd,0x1(%esi)
51bff5:	56                   	push   %esi
51bff6:	e8 55 82 fd ff       	call   0x4f4250
51bffb:	8b c8                	mov    %eax,%ecx
51bffd:	83 c4 04             	add    $0x4,%esp
51c000:	f6 45 10 02          	testb  $0x2,0x10(%ebp)
51c004:	8b 46 74             	mov    0x74(%esi),%eax
51c007:	89 4d c8             	mov    %ecx,-0x38(%ebp)
51c00a:	c6 40 0c 00          	movb   $0x0,0xc(%eax)
51c00e:	c6 06 01             	movb   $0x1,(%esi)
51c011:	0f 84 83 00 00 00    	je     0x51c09a
51c017:	85 c9                	test   %ecx,%ecx
51c019:	75 7f                	jne    0x51c09a
51c01b:	56                   	push   %esi
51c01c:	e8 df b8 fd ff       	call   0x4f7900
51c021:	83 c4 04             	add    $0x4,%esp
51c024:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
51c028:	74 48                	je     0x51c072
51c02a:	ff 77 0c             	push   0xc(%edi)
51c02d:	ff 77 08             	push   0x8(%edi)
51c030:	e8 2b 4f 01 00       	call   0x530f60
51c035:	83 c4 08             	add    $0x8,%esp
51c038:	89 46 10             	mov    %eax,0x10(%esi)
51c03b:	85 c0                	test   %eax,%eax
51c03d:	75 25                	jne    0x51c064
51c03f:	8d 48 07             	lea    0x7(%eax),%ecx
51c042:	c6 06 03             	movb   $0x3,(%esi)
51c045:	8b 47 08             	mov    0x8(%edi),%eax
51c048:	89 46 38             	mov    %eax,0x38(%esi)
51c04b:	8b 47 0c             	mov    0xc(%edi),%eax
51c04e:	5f                   	pop    %edi
51c04f:	89 46 3c             	mov    %eax,0x3c(%esi)
51c052:	8b c1                	mov    %ecx,%eax
51c054:	5e                   	pop    %esi
51c055:	5b                   	pop    %ebx
51c056:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51c059:	33 cd                	xor    %ebp,%ecx
51c05b:	e8 7a 54 0c 00       	call   0x5e14da
51c060:	8b e5                	mov    %ebp,%esp
51c062:	5d                   	pop    %ebp
51c063:	c3                   	ret
51c064:	ff 77 08             	push   0x8(%edi)
51c067:	ff 37                	push   (%edi)
51c069:	50                   	push   %eax
51c06a:	e8 91 6e 0c 00       	call   0x5e2f00
51c06f:	83 c4 0c             	add    $0xc,%esp
51c072:	8b 4d c8             	mov    -0x38(%ebp),%ecx
51c075:	c6 06 03             	movb   $0x3,(%esi)
51c078:	8b 47 08             	mov    0x8(%edi),%eax
51c07b:	89 46 38             	mov    %eax,0x38(%esi)
51c07e:	8b 47 0c             	mov    0xc(%edi),%eax
51c081:	5f                   	pop    %edi
51c082:	89 46 3c             	mov    %eax,0x3c(%esi)
51c085:	8b c1                	mov    %ecx,%eax
51c087:	5e                   	pop    %esi
51c088:	5b                   	pop    %ebx
51c089:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51c08c:	33 cd                	xor    %ebp,%ecx
51c08e:	e8 47 54 0c 00       	call   0x5e14da
51c093:	8b e5                	mov    %ebp,%esp
51c095:	5d                   	pop    %ebp
51c096:	c3                   	ret
51c097:	8b 4d cc             	mov    -0x34(%ebp),%ecx
51c09a:	8b c1                	mov    %ecx,%eax
51c09c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51c09f:	5f                   	pop    %edi
51c0a0:	5e                   	pop    %esi
51c0a1:	33 cd                	xor    %ebp,%ecx
51c0a3:	5b                   	pop    %ebx
51c0a4:	e8 31 54 0c 00       	call   0x5e14da
51c0a9:	8b e5                	mov    %ebp,%esp
51c0ab:	5d                   	pop    %ebp
51c0ac:	c3                   	ret
51c0ad:	cc                   	int3
51c0ae:	cc                   	int3
51c0af:	cc                   	int3
51c0b0:	55                   	push   %ebp
51c0b1:	8b ec                	mov    %esp,%ebp
51c0b3:	56                   	push   %esi
51c0b4:	8b 75 08             	mov    0x8(%ebp),%esi
51c0b7:	56                   	push   %esi
51c0b8:	e8 f3 9a fe ff       	call   0x505bb0
51c0bd:	8b 46 20             	mov    0x20(%esi),%eax
51c0c0:	83 c4 04             	add    $0x4,%esp
51c0c3:	8b 56 24             	mov    0x24(%esi),%edx
51c0c6:	5e                   	pop    %esi
51c0c7:	5d                   	pop    %ebp
51c0c8:	c3                   	ret
51c0c9:	cc                   	int3
51c0ca:	cc                   	int3
51c0cb:	cc                   	int3
51c0cc:	cc                   	int3
51c0cd:	cc                   	int3
51c0ce:	cc                   	int3
51c0cf:	cc                   	int3
51c0d0:	55                   	push   %ebp
51c0d1:	8b ec                	mov    %esp,%ebp
51c0d3:	81 ec cc 00 00 00    	sub    $0xcc,%esp
51c0d9:	a1 d4 89 72 00       	mov    0x7289d4,%eax
51c0de:	33 c5                	xor    %ebp,%eax
51c0e0:	89 45 fc             	mov    %eax,-0x4(%ebp)
51c0e3:	8b 45 10             	mov    0x10(%ebp),%eax
51c0e6:	53                   	push   %ebx
51c0e7:	56                   	push   %esi
51c0e8:	8b 75 08             	mov    0x8(%ebp),%esi
51c0eb:	57                   	push   %edi
51c0ec:	8b 7d 0c             	mov    0xc(%ebp),%edi
51c0ef:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
51c0f5:	8b 45 1c             	mov    0x1c(%ebp),%eax
51c0f8:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
51c0fe:	80 7f 09 00          	cmpb   $0x0,0x9(%edi)
51c102:	8b 5f 04             	mov    0x4(%edi),%ebx
51c105:	89 bd 48 ff ff ff    	mov    %edi,-0xb8(%ebp)
51c10b:	8b 43 04             	mov    0x4(%ebx),%eax
51c10e:	8b 48 20             	mov    0x20(%eax),%ecx
51c111:	8b 40 24             	mov    0x24(%eax),%eax
51c114:	89 8d 44 ff ff ff    	mov    %ecx,-0xbc(%ebp)
51c11a:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
51c120:	74 12                	je     0x51c134
51c122:	ff 47 0c             	incl   0xc(%edi)
51c125:	80 7f 0a 00          	cmpb   $0x0,0xa(%edi)
51c129:	75 09                	jne    0x51c134
51c12b:	57                   	push   %edi
51c12c:	e8 9f ae fd ff       	call   0x4f6fd0
51c131:	83 c4 04             	add    $0x4,%esp
51c134:	89 75 94             	mov    %esi,-0x6c(%ebp)
51c137:	8d 4d 98             	lea    -0x68(%ebp),%ecx
51c13a:	89 9d 50 ff ff ff    	mov    %ebx,-0xb0(%ebp)
51c140:	0f 57 c0             	xorps  %xmm0,%xmm0
51c143:	8b 03                	mov    (%ebx),%eax
51c145:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
51c14b:	8b 73 2c             	mov    0x2c(%ebx),%esi
51c14e:	8b 45 18             	mov    0x18(%ebp),%eax
51c151:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
51c157:	33 c0                	xor    %eax,%eax
51c159:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
51c15f:	c7 85 74 ff ff ff 00 	movl   $0x0,-0x8c(%ebp)
51c166:	00 00 00
51c169:	c7 85 58 ff ff ff 00 	movl   $0x0,-0xa8(%ebp)
51c170:	00 00 00
51c173:	89 45 90             	mov    %eax,-0x70(%ebp)
51c176:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
51c17c:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
51c182:	c7 45 80 64 00 00 00 	movl   $0x64,-0x80(%ebp)
51c189:	c7 45 84 00 ca 9a 3b 	movl   $0x3b9aca00,-0x7c(%ebp)
51c190:	89 45 88             	mov    %eax,-0x78(%ebp)
51c193:	66 c7 45 8c 00 01    	movw   $0x100,-0x74(%ebp)
51c199:	0f 11 85 64 ff ff ff 	movups %xmm0,-0x9c(%ebp)
51c1a0:	85 f6                	test   %esi,%esi
51c1a2:	0f 84 e8 02 00 00    	je     0x51c490
51c1a8:	c1 ee 03             	shr    $0x3,%esi
51c1ab:	50                   	push   %eax
51c1ac:	46                   	inc    %esi
51c1ad:	56                   	push   %esi
51c1ae:	e8 ad 4d 01 00       	call   0x530f60
51c1b3:	8b f8                	mov    %eax,%edi
51c1b5:	83 c4 08             	add    $0x8,%esp
51c1b8:	85 ff                	test   %edi,%edi
51c1ba:	74 0c                	je     0x51c1c8
51c1bc:	56                   	push   %esi
51c1bd:	6a 00                	push   $0x0
51c1bf:	57                   	push   %edi
51c1c0:	e8 3b 78 0c 00       	call   0x5e3a00
51c1c5:	83 c4 0c             	add    $0xc,%esp
51c1c8:	89 bd 58 ff ff ff    	mov    %edi,-0xa8(%ebp)
51c1ce:	85 ff                	test   %edi,%edi
51c1d0:	75 0f                	jne    0x51c1e1
51c1d2:	c7 85 68 ff ff ff 01 	movl   $0x1,-0x98(%ebp)
51c1d9:	00 00 00
51c1dc:	e9 a6 02 00 00       	jmp    0x51c487
51c1e1:	ff 73 20             	push   0x20(%ebx)
51c1e4:	e8 47 38 ff ff       	call   0x50fa30
51c1e9:	83 c4 04             	add    $0x4,%esp
51c1ec:	89 45 90             	mov    %eax,-0x70(%ebp)
51c1ef:	85 c0                	test   %eax,%eax
51c1f1:	75 0f                	jne    0x51c202
51c1f3:	c7 85 68 ff ff ff 01 	movl   $0x1,-0x98(%ebp)
51c1fa:	00 00 00
51c1fd:	e9 88 02 00 00       	jmp    0x51c48a
51c202:	a1 18 19 72 00       	mov    0x721918,%eax
51c207:	33 d2                	xor    %edx,%edx
51c209:	f7 73 20             	divl   0x20(%ebx)
51c20c:	8d 70 01             	lea    0x1(%eax),%esi
51c20f:	3b b5 5c ff ff ff    	cmp    -0xa4(%ebp),%esi
51c215:	77 18                	ja     0x51c22f
51c217:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
51c21d:	8b d6                	mov    %esi,%edx
51c21f:	c1 ea 03             	shr    $0x3,%edx
51c222:	83 e6 07             	and    $0x7,%esi