545d2a:	83 c4 08             	add    $0x8,%esp
545d2d:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545d33:	85 c0                	test   %eax,%eax
545d35:	74 b2                	je     0x545ce9
545d37:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545d3d:	83 f8 65             	cmp    $0x65,%eax
545d40:	0f 85 be 31 00 00    	jne    0x548f04
545d46:	c7 85 94 fe ff ff 00 	movl   $0x0,-0x16c(%ebp)
545d4d:	00 00 00
545d50:	c7 85 38 fe ff ff 01 	movl   $0x1,-0x1c8(%ebp)
545d57:	00 00 00
545d5a:	e9 bd cb ff ff       	jmp    0x54291c
545d5f:	85 c0                	test   %eax,%eax
545d61:	7f 29                	jg     0x545d8c
545d63:	75 05                	jne    0x545d6a
545d65:	83 fb 16             	cmp    $0x16,%ebx
545d68:	74 22                	je     0x545d8c
545d6a:	8b 46 28             	mov    0x28(%esi),%eax
545d6d:	33 c9                	xor    %ecx,%ecx
545d6f:	38 08                	cmp    %cl,(%eax)
545d71:	0f 95 c1             	setne  %cl
545d74:	89 8d 38 fe ff ff    	mov    %ecx,-0x1c8(%ebp)
545d7a:	83 bd 38 fe ff ff 00 	cmpl   $0x0,-0x1c8(%ebp)
545d81:	0f 85 1a 28 00 00    	jne    0x5485a1
545d87:	e9 5d ff ff ff       	jmp    0x545ce9
545d8c:	6a 00                	push   $0x0
545d8e:	ff 76 28             	push   0x28(%esi)
545d91:	c7 85 38 fe ff ff 00 	movl   $0x0,-0x1c8(%ebp)
545d98:	00 00 00
545d9b:	e8 f0 77 fd ff       	call   0x51d590
545da0:	83 c4 08             	add    $0x8,%esp
545da3:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545da9:	85 c0                	test   %eax,%eax
545dab:	0f 84 38 ff ff ff    	je     0x545ce9
545db1:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545db7:	83 f8 65             	cmp    $0x65,%eax
545dba:	0f 85 44 31 00 00    	jne    0x548f04
545dc0:	c7 85 94 fe ff ff 00 	movl   $0x0,-0x16c(%ebp)
545dc7:	00 00 00
545dca:	c7 85 38 fe ff ff 01 	movl   $0x1,-0x1c8(%ebp)
545dd1:	00 00 00
545dd4:	e9 43 cb ff ff       	jmp    0x54291c
545dd9:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
545ddf:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
545de5:	8b 4a 04             	mov    0x4(%edx),%ecx
545de8:	8b 40 60             	mov    0x60(%eax),%eax
545deb:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
545dee:	8b c2                	mov    %edx,%eax
545df0:	8b 40 08             	mov    0x8(%eax),%eax
545df3:	c1 e0 03             	shl    $0x3,%eax
545df6:	33 41 08             	xor    0x8(%ecx),%eax
545df9:	83 e0 08             	and    $0x8,%eax
545dfc:	31 41 08             	xor    %eax,0x8(%ecx)
545dff:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545e05:	8b f2                	mov    %edx,%esi
545e07:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545e0d:	83 c6 14             	add    $0x14,%esi
545e10:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545e16:	e9 99 ca ff ff       	jmp    0x5428b4
545e1b:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
545e21:	8b 4e 04             	mov    0x4(%esi),%ecx
545e24:	8b 40 60             	mov    0x60(%eax),%eax
545e27:	83 3c 88 00          	cmpl   $0x0,(%eax,%ecx,4)
545e2b:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545e31:	0f 84 33 29 00 00    	je     0x54876a
545e37:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545e3d:	83 c6 14             	add    $0x14,%esi
545e40:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545e46:	e9 69 ca ff ff       	jmp    0x5428b4
545e4b:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
545e51:	8b 4e 04             	mov    0x4(%esi),%ecx
545e54:	8b 40 60             	mov    0x60(%eax),%eax
545e57:	8b 04 88             	mov    (%eax,%ecx,4),%eax
545e5a:	f6 40 08 08          	testb  $0x8,0x8(%eax)
545e5e:	0f 85 08 cd ff ff    	jne    0x542b6c
545e64:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
545e6a:	8b 4e 04             	mov    0x4(%esi),%ecx
545e6d:	8b 95 8c fe ff ff    	mov    -0x174(%ebp),%edx
545e73:	8b 40 60             	mov    0x60(%eax),%eax
545e76:	8b 1c 88             	mov    (%eax,%ecx,4),%ebx
545e79:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
545e7f:	89 9d 70 fe ff ff    	mov    %ebx,-0x190(%ebp)
545e85:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
545e89:	8b 41 0c             	mov    0xc(%ecx),%eax
545e8c:	8d 04 80             	lea    (%eax,%eax,4),%eax
545e8f:	8d 34 c2             	lea    (%edx,%eax,8),%esi
545e92:	7e 30                	jle    0x545ec4
545e94:	8b 43 2c             	mov    0x2c(%ebx),%eax
545e97:	8d 9d 38 ff ff ff    	lea    -0xc8(%ebp),%ebx
545e9d:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
545ea3:	66 8b 41 10          	mov    0x10(%ecx),%ax
545ea7:	66 89 85 40 ff ff ff 	mov    %ax,-0xc0(%ebp)
545eae:	33 c0                	xor    %eax,%eax
545eb0:	89 b5 3c ff ff ff    	mov    %esi,-0xc4(%ebp)
545eb6:	8b b5 70 fe ff ff    	mov    -0x190(%ebp),%esi
545ebc:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
545ec2:	eb 55                	jmp    0x545f19
545ec4:	b8 00 40 00 00       	mov    $0x4000,%eax
545ec9:	66 85 46 08          	test   %ax,0x8(%esi)
545ecd:	74 11                	je     0x545ee0
545ecf:	56                   	push   %esi
545ed0:	e8 ab 54 00 00       	call   0x54b380
545ed5:	83 c4 04             	add    $0x4,%esp
545ed8:	85 c0                	test   %eax,%eax
545eda:	0f 85 f4 30 00 00    	jne    0x548fd4
545ee0:	ff 73 2c             	push   0x2c(%ebx)
545ee3:	e8 d8 be ff ff       	call   0x541dc0
545ee8:	8b d8                	mov    %eax,%ebx
545eea:	83 c4 04             	add    $0x4,%esp
545eed:	89 9d 88 fe ff ff    	mov    %ebx,-0x178(%ebp)
545ef3:	85 db                	test   %ebx,%ebx
545ef5:	0f 84 d9 30 00 00    	je     0x548fd4
545efb:	53                   	push   %ebx
545efc:	ff 76 10             	push   0x10(%esi)
545eff:	ff 76 0c             	push   0xc(%esi)
545f02:	8b b5 70 fe ff ff    	mov    -0x190(%ebp),%esi
545f08:	ff 76 2c             	push   0x2c(%esi)
545f0b:	e8 b0 6b 00 00       	call   0x54cac0
545f10:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
545f16:	83 c4 10             	add    $0x10,%esp
545f19:	c6 43 0a 00          	movb   $0x0,0xa(%ebx)
545f1d:	80 39 1c             	cmpb   $0x1c,(%ecx)
545f20:	c7 85 70 fe ff ff 00 	movl   $0x0,-0x190(%ebp)
545f27:	00 00 00
545f2a:	75 2d                	jne    0x545f59
545f2c:	0f b7 53 08          	movzwl 0x8(%ebx),%edx
545f30:	33 c9                	xor    %ecx,%ecx
545f32:	85 d2                	test   %edx,%edx
545f34:	74 23                	je     0x545f59
545f36:	8b 43 04             	mov    0x4(%ebx),%eax
545f39:	83 c0 08             	add    $0x8,%eax
545f3c:	0f 1f 40 00          	nopl   0x0(%eax)
545f40:	f6 00 01             	testb  $0x1,(%eax)
545f43:	75 0a                	jne    0x545f4f
545f45:	41                   	inc    %ecx
545f46:	83 c0 28             	add    $0x28,%eax
545f49:	3b ca                	cmp    %edx,%ecx
545f4b:	7c f3                	jl     0x545f40
545f4d:	eb 0a                	jmp    0x545f59
545f4f:	c7 85 70 fe ff ff 01 	movl   $0x1,-0x190(%ebp)
545f56:	00 00 00
545f59:	8d 85 c4 fd ff ff    	lea    -0x23c(%ebp),%eax
545f5f:	50                   	push   %eax
545f60:	6a 00                	push   $0x0
545f62:	6a 00                	push   $0x0
545f64:	6a 00                	push   $0x0
545f66:	53                   	push   %ebx
545f67:	ff 76 28             	push   0x28(%esi)
545f6a:	e8 51 69 fd ff       	call   0x51c8c0
545f6f:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545f75:	83 c4 18             	add    $0x18,%esp
545f78:	8b 85 88 fe ff ff    	mov    -0x178(%ebp),%eax
545f7e:	85 c0                	test   %eax,%eax
545f80:	74 0a                	je     0x545f8c
545f82:	50                   	push   %eax
545f83:	57                   	push   %edi
545f84:	e8 e7 b3 fd ff       	call   0x521370
545f89:	83 c4 08             	add    $0x8,%esp
545f8c:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
545f92:	85 c0                	test   %eax,%eax
545f94:	0f 85 64 2f 00 00    	jne    0x548efe
545f9a:	8b 85 c4 fd ff ff    	mov    -0x23c(%ebp),%eax
545fa0:	33 c9                	xor    %ecx,%ecx
545fa2:	85 c0                	test   %eax,%eax
545fa4:	89 46 20             	mov    %eax,0x20(%esi)
545fa7:	b0 01                	mov    $0x1,%al
545fa9:	c6 46 03 00          	movb   $0x0,0x3(%esi)
545fad:	0f 94 c1             	sete   %cl
545fb0:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
545fb7:	2a c1                	sub    %cl,%al
545fb9:	88 46 02             	mov    %al,0x2(%esi)
545fbc:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
545fc2:	80 3e 1e             	cmpb   $0x1e,(%esi)
545fc5:	75 22                	jne    0x545fe9
545fc7:	85 c9                	test   %ecx,%ecx
545fc9:	0f 85 d8 25 00 00    	jne    0x5485a7
545fcf:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545fd5:	83 c6 14             	add    $0x14,%esi
545fd8:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545fde:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545fe4:	e9 cb c8 ff ff       	jmp    0x5428b4
545fe9:	83 bd 70 fe ff ff 00 	cmpl   $0x0,-0x190(%ebp)
545ff0:	0f 85 b1 25 00 00    	jne    0x5485a7
545ff6:	85 c9                	test   %ecx,%ecx
545ff8:	0f 84 a9 25 00 00    	je     0x5485a7
545ffe:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
546004:	83 c6 14             	add    $0x14,%esi
546007:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54600d:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
546013:	e9 9c c8 ff ff       	jmp    0x5428b4
546018:	8b 46 0c             	mov    0xc(%esi),%eax
54601b:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
546021:	8d 04 80             	lea    (%eax,%eax,4),%eax
546024:	f6 44 c3 08 24       	testb  $0x24,0x8(%ebx,%eax,8)
546029:	75 6c                	jne    0x546097
54602b:	0f 10 0c c3          	movups (%ebx,%eax,8),%xmm1
54602f:	0f 10 44 c3 10       	movups 0x10(%ebx,%eax,8),%xmm0
546034:	0f 11 4d ac          	movups %xmm1,-0x54(%ebp)
546038:	0f 11 45 bc          	movups %xmm0,-0x44(%ebp)
54603c:	f3 0f 7e 44 c3 20    	movq   0x20(%ebx,%eax,8),%xmm0
546042:	66 0f 73 d9 08       	psrldq $0x8,%xmm1
546047:	66 0f 7e c8          	movd   %xmm1,%eax
54604b:	66 0f d6 45 cc       	movq   %xmm0,-0x34(%ebp)
546050:	a8 04                	test   $0x4,%al
546052:	75 35                	jne    0x546089
546054:	a8 08                	test   $0x8,%al
546056:	75 14                	jne    0x54606c
546058:	a8 02                	test   $0x2,%al
54605a:	74 25                	je     0x546081
54605c:	8d 45 ac             	lea    -0x54(%ebp),%eax
54605f:	6a 01                	push   $0x1
546061:	50                   	push   %eax
546062:	e8 e9 da fa ff       	call   0x4f3b50
546067:	83 c4 08             	add    $0x8,%esp
54606a:	eb 0c                	jmp    0x546078
54606c:	8d 45 ac             	lea    -0x54(%ebp),%eax
54606f:	50                   	push   %eax
546070:	e8 7b 46 00 00       	call   0x54a6f0
546075:	83 c4 04             	add    $0x4,%esp
546078:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54607e:	8a 45 b4             	mov    -0x4c(%ebp),%al
546081:	a8 04                	test   $0x4,%al
546083:	0f 84 99 c8 ff ff    	je     0x542922
546089:	8b 5d ac             	mov    -0x54(%ebp),%ebx
54608c:	8b 55 b0             	mov    -0x50(%ebp),%edx
54608f:	eb 19                	jmp    0x5460aa
546091:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
546097:	8b 46 0c             	mov    0xc(%esi),%eax
54609a:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
5460a0:	8d 04 80             	lea    (%eax,%eax,4),%eax
5460a3:	8b 1c c3             	mov    (%ebx,%eax,8),%ebx
5460a6:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
5460aa:	89 95 70 fe ff ff    	mov    %edx,-0x190(%ebp)
5460b0:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5460b6:	c7 85 fc fd ff ff 00 	movl   $0x0,-0x204(%ebp)
5460bd:	00 00 00
5460c0:	8b 48 04             	mov    0x4(%eax),%ecx
5460c3:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5460c9:	8b 40 60             	mov    0x60(%eax),%eax
5460cc:	8b 34 88             	mov    (%eax,%ecx,4),%esi
5460cf:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
5460d5:	50                   	push   %eax
5460d6:	6a 00                	push   $0x0
5460d8:	52                   	push   %edx
5460d9:	53                   	push   %ebx
5460da:	6a 00                	push   $0x0
5460dc:	ff 76 28             	push   0x28(%esi)
5460df:	e8 dc 67 fd ff       	call   0x51c8c0
5460e4:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5460ea:	83 c4 18             	add    $0x18,%esp
5460ed:	8b 85 70 fe ff ff    	mov    -0x190(%ebp),%eax
5460f3:	89 46 44             	mov    %eax,0x44(%esi)
5460f6:	8b 85 fc fd ff ff    	mov    -0x204(%ebp),%eax
5460fc:	89 5e 40             	mov    %ebx,0x40(%esi)
5460ff:	66 c7 46 02 00 00    	movw   $0x0,0x2(%esi)
546105:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
54610c:	89 46 20             	mov    %eax,0x20(%esi)
54610f:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
546115:	85 c0                	test   %eax,%eax
546117:	0f 84 71 f3 ff ff    	je     0x54548e
54611d:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
546121:	0f 85 80 24 00 00    	jne    0x5485a7
546127:	68 ab 5d 01 00       	push   $0x15dab
54612c:	e8 7f 9c fd ff       	call   0x51fdb0
546131:	83 c4 04             	add    $0x4,%esp
546134:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54613a:	e9 55 f3 ff ff       	jmp    0x545494
54613f:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
546145:	53                   	push   %ebx
546146:	51                   	push   %ecx
546147:	e8 44 5f fc ff       	call   0x50c090
54614c:	8b 53 04             	mov    0x4(%ebx),%edx
54614f:	83 c4 08             	add    $0x8,%esp
546152:	8b 9d 9c fe ff ff    	mov    -0x164(%ebp),%ebx
546158:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54615e:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
546164:	8b 4b 60             	mov    0x60(%ebx),%ecx
546167:	8b 14 91             	mov    (%ecx,%edx,4),%edx
54616a:	8b 4a 10             	mov    0x10(%edx),%ecx
54616d:	89 08                	mov    %ecx,(%eax)
54616f:	8b 4a 14             	mov    0x14(%edx),%ecx
546172:	89 48 04             	mov    %ecx,0x4(%eax)
546175:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
54617b:	8b 48 04             	mov    0x4(%eax),%ecx
54617e:	8b 43 60             	mov    0x60(%ebx),%eax
546181:	8b 04 88             	mov    (%eax,%ecx,4),%eax
546184:	8b cb                	mov    %ebx,%ecx
546186:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54618c:	83 40 10 01          	addl   $0x1,0x10(%eax)
546190:	83 50 14 00          	adcl   $0x0,0x14(%eax)
546194:	83 c6 14             	add    $0x14,%esi
546197:	e9 18 c7 ff ff       	jmp    0x5428b4
54619c:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
5461a2:	0f 57 c0             	xorps  %xmm0,%xmm0
5461a5:	53                   	push   %ebx
5461a6:	51                   	push   %ecx
5461a7:	66 0f 13 45 e8       	movlpd %xmm0,-0x18(%ebp)
5461ac:	c7 85 14 fe ff ff 00 	movl   $0x0,-0x1ec(%ebp)
5461b3:	00 00 00
5461b6:	e8 d5 5e fc ff       	call   0x50c090
5461bb:	8b 53 04             	mov    0x4(%ebx),%edx
5461be:	83 c4 08             	add    $0x8,%esp
5461c1:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
5461c7:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5461cd:	8b 48 60             	mov    0x60(%eax),%ecx
5461d0:	8b 04 91             	mov    (%ecx,%edx,4),%eax
5461d3:	89 85 84 fe ff ff    	mov    %eax,-0x17c(%ebp)
5461d9:	f6 40 08 02          	testb  $0x2,0x8(%eax)
5461dd:	75 7b                	jne    0x54625a
5461df:	8d 8d 14 fe ff ff    	lea    -0x1ec(%ebp),%ecx
5461e5:	51                   	push   %ecx
5461e6:	ff 70 28             	push   0x28(%eax)
5461e9:	e8 72 65 fd ff       	call   0x51c760
5461ee:	83 c4 08             	add    $0x8,%esp
5461f1:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5461f7:	85 c0                	test   %eax,%eax
5461f9:	0f 85 ff 2c 00 00    	jne    0x548efe
5461ff:	39 85 14 fe ff ff    	cmp    %eax,-0x1ec(%ebp)
546205:	74 0f                	je     0x546216
546207:	bb 01 00 00 00       	mov    $0x1,%ebx
54620c:	33 f6                	xor    %esi,%esi
54620e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
546211:	89 75 ec             	mov    %esi,-0x14(%ebp)
546214:	eb 4a                	jmp    0x546260
546216:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
54621c:	ff 70 28             	push   0x28(%eax)
54621f:	e8 8c 5e fd ff       	call   0x51c0b0
546224:	8b f2                	mov    %edx,%esi
546226:	83 c4 04             	add    $0x4,%esp
546229:	89 75 ec             	mov    %esi,-0x14(%ebp)
54622c:	8b d8                	mov    %eax,%ebx
54622e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
546231:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
546237:	7c 13                	jl     0x54624c
546239:	7f 05                	jg     0x546240
54623b:	83 fb ff             	cmp    $0xffffffff,%ebx
54623e:	72 0c                	jb     0x54624c
546240:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
546246:	83 48 08 02          	orl    $0x2,0x8(%eax)
54624a:	eb 14                	jmp    0x546260
54624c:	83 c3 01             	add    $0x1,%ebx
54624f:	89 5d e8             	mov    %ebx,-0x18(%ebp)
546252:	83 d6 00             	adc    $0x0,%esi
546255:	89 75 ec             	mov    %esi,-0x14(%ebp)
546258:	eb 06                	jmp    0x546260
54625a:	8b 75 ec             	mov    -0x14(%ebp),%esi
54625d:	8b 5d e8             	mov    -0x18(%ebp),%ebx
546260:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
546266:	8b 48 0c             	mov    0xc(%eax),%ecx
546269:	85 c9                	test   %ecx,%ecx