51bc25:	c7 46 10 02 00 00 00 	movl   $0x2,0x10(%esi)
51bc2c:	8b 40 14             	mov    0x14(%eax),%eax
51bc2f:	85 c0                	test   %eax,%eax
51bc31:	75 07                	jne    0x51bc3a
51bc33:	b8 01 00 00 00       	mov    $0x1,%eax
51bc38:	5e                   	pop    %esi
51bc39:	c3                   	ret
51bc3a:	56                   	push   %esi
51bc3b:	ff d0                	call   *%eax
51bc3d:	83 c4 04             	add    $0x4,%esp
51bc40:	85 c0                	test   %eax,%eax
51bc42:	7f 29                	jg     0x51bc6d
51bc44:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
51bc4b:	5e                   	pop    %esi
51bc4c:	c3                   	ret
51bc4d:	6a 18                	push   $0x18
51bc4f:	68 14 08 64 00       	push   $0x640814
51bc54:	68 96 00 00 00       	push   $0x96
51bc59:	68 95 00 00 00       	push   $0x95
51bc5e:	6a 06                	push   $0x6
51bc60:	e8 1b d3 fb ff       	call   0x4d8f80
51bc65:	83 c4 14             	add    $0x14,%esp
51bc68:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
51bc6d:	5e                   	pop    %esi
51bc6e:	c3                   	ret
51bc6f:	cc                   	int3
51bc70:	ff 74 24 08          	push   0x8(%esp)
51bc74:	68 90 bc 51 00       	push   $0x51bc90
51bc79:	ff 74 24 0c          	push   0xc(%esp)
51bc7d:	e8 9e d9 fb ff       	call   0x4d9620
51bc82:	83 c4 0c             	add    $0xc,%esp
51bc85:	c3                   	ret
51bc86:	cc                   	int3
51bc87:	cc                   	int3
51bc88:	cc                   	int3
51bc89:	cc                   	int3
51bc8a:	cc                   	int3
51bc8b:	cc                   	int3
51bc8c:	cc                   	int3
51bc8d:	cc                   	int3
51bc8e:	cc                   	int3
51bc8f:	cc                   	int3
51bc90:	ff 74 24 0c          	push   0xc(%esp)
51bc94:	e8 37 d9 fb ff       	call   0x4d95d0
51bc99:	8b 4c 24 08          	mov    0x8(%esp),%ecx
51bc9d:	50                   	push   %eax
51bc9e:	8b 50 20             	mov    0x20(%eax),%edx
51bca1:	89 0a                	mov    %ecx,(%edx)
51bca3:	8b 50 20             	mov    0x20(%eax),%edx
51bca6:	8b 4c 24 10          	mov    0x10(%esp),%ecx
51bcaa:	89 4a 04             	mov    %ecx,0x4(%edx)
51bcad:	8b 40 1c             	mov    0x1c(%eax),%eax
51bcb0:	ff d0                	call   *%eax
51bcb2:	83 c4 08             	add    $0x8,%esp
51bcb5:	c3                   	ret
51bcb6:	cc                   	int3
51bcb7:	cc                   	int3
51bcb8:	cc                   	int3
51bcb9:	cc                   	int3
51bcba:	cc                   	int3
51bcbb:	cc                   	int3
51bcbc:	cc                   	int3
51bcbd:	cc                   	int3
51bcbe:	cc                   	int3
51bcbf:	cc                   	int3
51bcc0:	b8 d8 00 00 00       	mov    $0xd8,%eax
51bcc5:	e8 e6 5a 0b 00       	call   0x5d17b0
51bcca:	a1 c0 14 69 00       	mov    0x6914c0,%eax
51bccf:	33 c4                	xor    %esp,%eax
51bcd1:	89 84 24 d4 00 00 00 	mov    %eax,0xd4(%esp)
51bcd8:	8b 84 24 dc 00 00 00 	mov    0xdc(%esp),%eax
51bcdf:	89 44 24 44          	mov    %eax,0x44(%esp)
51bce3:	8b 84 24 f4 00 00 00 	mov    0xf4(%esp),%eax
51bcea:	53                   	push   %ebx
51bceb:	8b 9c 24 f0 00 00 00 	mov    0xf0(%esp),%ebx
51bcf2:	56                   	push   %esi
51bcf3:	8b b4 24 ec 00 00 00 	mov    0xec(%esp),%esi
51bcfa:	89 44 24 58          	mov    %eax,0x58(%esp)
51bcfe:	8b 84 24 00 01 00 00 	mov    0x100(%esp),%eax
51bd05:	89 44 24 50          	mov    %eax,0x50(%esp)
51bd09:	8b 84 24 04 01 00 00 	mov    0x104(%esp),%eax
51bd10:	c1 ee 03             	shr    $0x3,%esi
51bd13:	89 44 24 54          	mov    %eax,0x54(%esp)
51bd17:	8b 84 24 08 01 00 00 	mov    0x108(%esp),%eax
51bd1e:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
51bd22:	89 44 24 14          	mov    %eax,0x14(%esp)
51bd26:	c7 44 24 40 00 00 00 	movl   $0x0,0x40(%esp)
51bd2d:	00
51bd2e:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
51bd35:	00
51bd36:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
51bd3d:	00
51bd3e:	c7 44 24 3c 02 00 00 	movl   $0x2,0x3c(%esp)
51bd45:	00
51bd46:	57                   	push   %edi
51bd47:	8b bc 24 f4 00 00 00 	mov    0xf4(%esp),%edi
51bd4e:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
51bd52:	83 fe 14             	cmp    $0x14,%esi
51bd55:	74 0e                	je     0x51bd65
51bd57:	83 fe 1c             	cmp    $0x1c,%esi
51bd5a:	74 09                	je     0x51bd65
51bd5c:	83 fe 20             	cmp    $0x20,%esi
51bd5f:	0f 85 82 00 00 00    	jne    0x51bde7
51bd65:	85 ff                	test   %edi,%edi
51bd67:	75 31                	jne    0x51bd9a
51bd69:	83 fe 14             	cmp    $0x14,%esi
51bd6c:	75 0d                	jne    0x51bd7b
51bd6e:	e8 9d a7 ff ff       	call   0x516510
51bd73:	8b f8                	mov    %eax,%edi
51bd75:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
51bd79:	eb 2a                	jmp    0x51bda5
51bd7b:	83 fe 1c             	cmp    $0x1c,%esi
51bd7e:	75 0d                	jne    0x51bd8d
51bd80:	e8 9b a7 ff ff       	call   0x516520
51bd85:	8b f8                	mov    %eax,%edi
51bd87:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
51bd8b:	eb 18                	jmp    0x51bda5
51bd8d:	e8 9e a7 ff ff       	call   0x516530
51bd92:	8b f8                	mov    %eax,%edi
51bd94:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
51bd98:	eb 0b                	jmp    0x51bda5
51bd9a:	57                   	push   %edi
51bd9b:	e8 20 4b fd ff       	call   0x4f08c0
51bda0:	83 c4 04             	add    $0x4,%esp
51bda3:	8b f0                	mov    %eax,%esi
51bda5:	b8 00 02 00 00       	mov    $0x200,%eax
51bdaa:	39 84 24 ec 00 00 00 	cmp    %eax,0xec(%esp)
51bdb1:	0f 43 84 24 ec 00 00 	cmovae 0xec(%esp),%eax
51bdb8:	00
51bdb9:	83 c0 3f             	add    $0x3f,%eax
51bdbc:	83 e0 c0             	and    $0xffffffc0,%eax
51bdbf:	89 44 24 34          	mov    %eax,0x34(%esp)
51bdc3:	85 db                	test   %ebx,%ebx
51bdc5:	74 4f                	je     0x51be16
51bdc7:	8b 84 24 fc 00 00 00 	mov    0xfc(%esp),%eax
51bdce:	3b c6                	cmp    %esi,%eax
51bdd0:	73 2f                	jae    0x51be01
51bdd2:	6a 55                	push   $0x55
51bdd4:	68 30 08 64 00       	push   $0x640830
51bdd9:	6a 6e                	push   $0x6e
51bddb:	6a 7d                	push   $0x7d
51bddd:	6a 0a                	push   $0xa
51bddf:	e8 9c d1 fb ff       	call   0x4d8f80
51bde4:	83 c4 14             	add    $0x14,%esp
51bde7:	5f                   	pop    %edi
51bde8:	5e                   	pop    %esi
51bde9:	33 c0                	xor    %eax,%eax
51bdeb:	5b                   	pop    %ebx
51bdec:	8b 8c 24 d4 00 00 00 	mov    0xd4(%esp),%ecx
51bdf3:	33 cc                	xor    %esp,%ecx
51bdf5:	e8 2c 5c 0b 00       	call   0x5d1a26
51bdfa:	81 c4 d8 00 00 00    	add    $0xd8,%esp
51be00:	c3                   	ret
51be01:	0f 47 c6             	cmova  %esi,%eax
51be04:	50                   	push   %eax
51be05:	8d 84 24 c4 00 00 00 	lea    0xc4(%esp),%eax
51be0c:	53                   	push   %ebx
51be0d:	50                   	push   %eax
51be0e:	e8 bd 6f 0b 00       	call   0x5d2dd0
51be13:	83 c4 0c             	add    $0xc,%esp
51be16:	e8 f5 83 fc ff       	call   0x4e4210
51be1b:	89 44 24 28          	mov    %eax,0x28(%esp)
51be1f:	85 c0                	test   %eax,%eax
51be21:	0f 84 2d 06 00 00    	je     0x51c454
51be27:	e8 f4 be fc ff       	call   0x4e7d20
51be2c:	8b d8                	mov    %eax,%ebx
51be2e:	89 5c 24 14          	mov    %ebx,0x14(%esp)
51be32:	85 db                	test   %ebx,%ebx
51be34:	0f 84 1a 06 00 00    	je     0x51c454
51be3a:	55                   	push   %ebp
51be3b:	53                   	push   %ebx
51be3c:	e8 cf bf fc ff       	call   0x4e7e10
51be41:	53                   	push   %ebx
51be42:	e8 89 bd fc ff       	call   0x4e7bd0
51be47:	53                   	push   %ebx
51be48:	8b e8                	mov    %eax,%ebp
51be4a:	e8 81 bd fc ff       	call   0x4e7bd0
51be4f:	53                   	push   %ebx
51be50:	89 44 24 38          	mov    %eax,0x38(%esp)
51be54:	e8 77 bd fc ff       	call   0x4e7bd0
51be59:	53                   	push   %ebx
51be5a:	89 44 24 50          	mov    %eax,0x50(%esp)
51be5e:	e8 6d bd fc ff       	call   0x4e7bd0
51be63:	53                   	push   %ebx
51be64:	89 44 24 3c          	mov    %eax,0x3c(%esp)
51be68:	e8 63 bd fc ff       	call   0x4e7bd0
51be6d:	53                   	push   %ebx
51be6e:	89 44 24 6c          	mov    %eax,0x6c(%esp)
51be72:	e8 59 bd fc ff       	call   0x4e7bd0
51be77:	53                   	push   %ebx
51be78:	89 44 24 6c          	mov    %eax,0x6c(%esp)
51be7c:	e8 4f bd fc ff       	call   0x4e7bd0
51be81:	53                   	push   %ebx
51be82:	89 44 24 38          	mov    %eax,0x38(%esp)
51be86:	e8 45 bd fc ff       	call   0x4e7bd0
51be8b:	8b d8                	mov    %eax,%ebx
51be8d:	83 c4 24             	add    $0x24,%esp
51be90:	89 5c 24 10          	mov    %ebx,0x10(%esp)
51be94:	85 db                	test   %ebx,%ebx
51be96:	0f 84 b7 05 00 00    	je     0x51c453
51be9c:	8b 44 24 38          	mov    0x38(%esp),%eax
51bea0:	48                   	dec    %eax
51bea1:	50                   	push   %eax
51bea2:	e8 e9 e2 fb ff       	call   0x4da190
51bea7:	50                   	push   %eax
51bea8:	53                   	push   %ebx
51bea9:	e8 32 eb fc ff       	call   0x4ea9e0
51beae:	83 c4 0c             	add    $0xc,%esp
51beb1:	85 c0                	test   %eax,%eax
51beb3:	0f 84 9a 05 00 00    	je     0x51c453
51beb9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
51bec0:	ff 74 24 30          	push   0x30(%esp)
51bec4:	33 db                	xor    %ebx,%ebx
51bec6:	39 5c 24 38          	cmp    %ebx,0x38(%esp)
51beca:	6a 00                	push   $0x0
51becc:	ff 74 24 24          	push   0x24(%esp)
51bed0:	0f 94 c3             	sete   %bl
51bed3:	e8 88 da fc ff       	call   0x4e9960
51bed8:	ff 44 24 3c          	incl   0x3c(%esp)
51bedc:	83 c4 0c             	add    $0xc,%esp
51bedf:	85 c0                	test   %eax,%eax
51bee1:	0f 84 6c 05 00 00    	je     0x51c453
51bee7:	83 7c 24 34 00       	cmpl   $0x0,0x34(%esp)
51beec:	75 1b                	jne    0x51bf09
51beee:	8d 84 24 c4 00 00 00 	lea    0xc4(%esp),%eax
51bef5:	56                   	push   %esi
51bef6:	50                   	push   %eax
51bef7:	e8 54 53 fc ff       	call   0x4e1250
51befc:	83 c4 08             	add    $0x8,%esp
51beff:	85 c0                	test   %eax,%eax
51bf01:	0f 8e 4c 05 00 00    	jle    0x51c453
51bf07:	eb 08                	jmp    0x51bf11
51bf09:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
51bf10:	00
51bf11:	56                   	push   %esi
51bf12:	8d 84 24 c8 00 00 00 	lea    0xc8(%esp),%eax
51bf19:	50                   	push   %eax
51bf1a:	8d 84 24 ac 00 00 00 	lea    0xac(%esp),%eax
51bf21:	50                   	push   %eax
51bf22:	e8 a9 6e 0b 00       	call   0x5d2dd0
51bf27:	56                   	push   %esi
51bf28:	8d 84 24 d4 00 00 00 	lea    0xd4(%esp),%eax
51bf2f:	50                   	push   %eax
51bf30:	8d 84 24 98 00 00 00 	lea    0x98(%esp),%eax
51bf37:	50                   	push   %eax
51bf38:	e8 93 6e 0b 00       	call   0x5d2dd0
51bf3d:	8d 46 ff             	lea    -0x1(%esi),%eax
51bf40:	83 c4 18             	add    $0x18,%esp
51bf43:	85 c0                	test   %eax,%eax
51bf45:	78 18                	js     0x51bf5f
51bf47:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
51bf4e:	00 00
51bf50:	80 84 04 a4 00 00 00 	addb   $0x1,0xa4(%esp,%eax,1)
51bf57:	01
51bf58:	75 05                	jne    0x51bf5f
51bf5a:	83 e8 01             	sub    $0x1,%eax
51bf5d:	79 f1                	jns    0x51bf50
51bf5f:	6a 00                	push   $0x0
51bf61:	57                   	push   %edi
51bf62:	6a 00                	push   $0x0
51bf64:	8d 44 24 70          	lea    0x70(%esp),%eax
51bf68:	50                   	push   %eax
51bf69:	8d 84 24 d4 00 00 00 	lea    0xd4(%esp),%eax
51bf70:	56                   	push   %esi
51bf71:	50                   	push   %eax
51bf72:	e8 69 ea ff ff       	call   0x51a9e0
51bf77:	83 c4 18             	add    $0x18,%esp
51bf7a:	85 c0                	test   %eax,%eax
51bf7c:	0f 84 d1 04 00 00    	je     0x51c453
51bf82:	6a 00                	push   $0x0
51bf84:	57                   	push   %edi
51bf85:	6a 00                	push   $0x0
51bf87:	8d 84 24 90 00 00 00 	lea    0x90(%esp),%eax
51bf8e:	50                   	push   %eax
51bf8f:	8d 84 24 b4 00 00 00 	lea    0xb4(%esp),%eax
51bf96:	56                   	push   %esi
51bf97:	50                   	push   %eax
51bf98:	e8 43 ea ff ff       	call   0x51a9e0
51bf9d:	83 c4 18             	add    $0x18,%esp
51bfa0:	85 c0                	test   %eax,%eax
51bfa2:	0f 84 ab 04 00 00    	je     0x51c453
51bfa8:	33 c9                	xor    %ecx,%ecx
51bfaa:	85 f6                	test   %esi,%esi
51bfac:	0f 8e 9e 00 00 00    	jle    0x51c050
51bfb2:	83 fe 40             	cmp    $0x40,%esi
51bfb5:	0f 82 85 00 00 00    	jb     0x51c040
51bfbb:	8b c6                	mov    %esi,%eax
51bfbd:	25 3f 00 00 80       	and    $0x8000003f,%eax
51bfc2:	79 05                	jns    0x51bfc9
51bfc4:	48                   	dec    %eax
51bfc5:	83 c8 c0             	or     $0xffffffc0,%eax
51bfc8:	40                   	inc    %eax
51bfc9:	8b d6                	mov    %esi,%edx
51bfcb:	2b d0                	sub    %eax,%edx
51bfcd:	0f 1f 00             	nopl   (%eax)
51bfd0:	0f 10 44 0c 64       	movups 0x64(%esp,%ecx,1),%xmm0
51bfd5:	0f 10 8c 0c 84 00 00 	movups 0x84(%esp,%ecx,1),%xmm1
51bfdc:	00
51bfdd:	66 0f ef c8          	pxor   %xmm0,%xmm1
51bfe1:	0f 11 4c 0c 64       	movups %xmm1,0x64(%esp,%ecx,1)
51bfe6:	0f 10 44 0c 74       	movups 0x74(%esp,%ecx,1),%xmm0
51bfeb:	0f 10 8c 0c 94 00 00 	movups 0x94(%esp,%ecx,1),%xmm1
51bff2:	00
51bff3:	66 0f ef c8          	pxor   %xmm0,%xmm1
51bff7:	0f 11 4c 0c 74       	movups %xmm1,0x74(%esp,%ecx,1)
51bffc:	0f 10 84 0c 84 00 00 	movups 0x84(%esp,%ecx,1),%xmm0
51c003:	00
51c004:	0f 10 8c 0c a4 00 00 	movups 0xa4(%esp,%ecx,1),%xmm1
51c00b:	00
51c00c:	66 0f ef c8          	pxor   %xmm0,%xmm1
51c010:	0f 11 8c 0c 84 00 00 	movups %xmm1,0x84(%esp,%ecx,1)
51c017:	00
51c018:	0f 10 84 0c 94 00 00 	movups 0x94(%esp,%ecx,1),%xmm0
51c01f:	00
51c020:	0f 10 8c 0c b4 00 00 	movups 0xb4(%esp,%ecx,1),%xmm1
51c027:	00
51c028:	66 0f ef c8          	pxor   %xmm0,%xmm1
51c02c:	0f 11 8c 0c 94 00 00 	movups %xmm1,0x94(%esp,%ecx,1)
51c033:	00
51c034:	83 c1 40             	add    $0x40,%ecx
51c037:	3b ca                	cmp    %edx,%ecx
51c039:	7c 95                	jl     0x51bfd0
51c03b:	3b ce                	cmp    %esi,%ecx
51c03d:	7d 11                	jge    0x51c050
51c03f:	90                   	nop
51c040:	8a 84 0c 84 00 00 00 	mov    0x84(%esp,%ecx,1),%al
51c047:	30 44 0c 64          	xor    %al,0x64(%esp,%ecx,1)
51c04b:	41                   	inc    %ecx
51c04c:	3b ce                	cmp    %esi,%ecx
51c04e:	7c f0                	jl     0x51c040
51c050:	ff 74 24 24          	push   0x24(%esp)
51c054:	80 4c 24 68 80       	orb    $0x80,0x68(%esp)
51c059:	8d 44 24 68          	lea    0x68(%esp),%eax
51c05d:	80 4c 34 67 01       	orb    $0x1,0x67(%esp,%esi,1)
51c062:	56                   	push   %esi
51c063:	50                   	push   %eax
51c064:	e8 07 d6 fb ff       	call   0x4d9670
51c069:	83 c4 0c             	add    $0xc,%esp
51c06c:	85 c0                	test   %eax,%eax
51c06e:	0f 84 df 03 00 00    	je     0x51c453
51c074:	ff 74 24 1c          	push   0x1c(%esp)
51c078:	53                   	push   %ebx
51c079:	ff 74 24 20          	push   0x20(%esp)
51c07d:	6a 40                	push   $0x40
51c07f:	ff 74 24 34          	push   0x34(%esp)
51c083:	e8 b8 dd fc ff       	call   0x4e9e40
51c088:	83 c4 14             	add    $0x14,%esp
51c08b:	85 c0                	test   %eax,%eax
51c08d:	7f 0b                	jg     0x51c09a
51c08f:	0f 84 2b fe ff ff    	je     0x51bec0